Class CfnAutoScalingGroup

java.lang.Object
software.amazon.jsii.JsiiObject
software.constructs.Construct
All Implemented Interfaces:
IInspectable, ITaggable, software.amazon.jsii.JsiiSerializable, software.constructs.IConstruct, software.constructs.IDependable

@Generated(value="jsii-pacmak/1.104.0 (build e79254c)", date="2024-11-06T23:25:04.595Z") @Stability(Stable) public class CfnAutoScalingGroup extends CfnResource implements IInspectable, ITaggable
The AWS::AutoScaling::AutoScalingGroup resource defines an Amazon EC2 Auto Scaling group, which is a collection of Amazon EC2 instances that are treated as a logical grouping for the purposes of automatic scaling and management.

For more information about Amazon EC2 Auto Scaling, see the Amazon EC2 Auto Scaling User Guide .

Amazon EC2 Auto Scaling configures instances launched as part of an Auto Scaling group using either a launch template or a launch configuration. We strongly recommend that you do not use launch configurations. For more information, see Launch configurations in the Amazon EC2 Auto Scaling User Guide .

For help migrating from launch configurations to launch templates, see Migrate AWS CloudFormation stacks from launch configurations to launch templates in the Amazon EC2 Auto Scaling User Guide .

Example:

 // The code below shows an example of how to instantiate this type.
 // The values are placeholders you should change.
 import software.amazon.awscdk.services.autoscaling.*;
 CfnAutoScalingGroup cfnAutoScalingGroup = CfnAutoScalingGroup.Builder.create(this, "MyCfnAutoScalingGroup")
         .maxSize("maxSize")
         .minSize("minSize")
         // the properties below are optional
         .autoScalingGroupName("autoScalingGroupName")
         .availabilityZoneDistribution(AvailabilityZoneDistributionProperty.builder()
                 .capacityDistributionStrategy("capacityDistributionStrategy")
                 .build())
         .availabilityZones(List.of("availabilityZones"))
         .capacityRebalance(false)
         .context("context")
         .cooldown("cooldown")
         .defaultInstanceWarmup(123)
         .desiredCapacity("desiredCapacity")
         .desiredCapacityType("desiredCapacityType")
         .healthCheckGracePeriod(123)
         .healthCheckType("healthCheckType")
         .instanceId("instanceId")
         .instanceMaintenancePolicy(InstanceMaintenancePolicyProperty.builder()
                 .maxHealthyPercentage(123)
                 .minHealthyPercentage(123)
                 .build())
         .launchConfigurationName("launchConfigurationName")
         .launchTemplate(LaunchTemplateSpecificationProperty.builder()
                 .version("version")
                 // the properties below are optional
                 .launchTemplateId("launchTemplateId")
                 .launchTemplateName("launchTemplateName")
                 .build())
         .lifecycleHookSpecificationList(List.of(LifecycleHookSpecificationProperty.builder()
                 .lifecycleHookName("lifecycleHookName")
                 .lifecycleTransition("lifecycleTransition")
                 // the properties below are optional
                 .defaultResult("defaultResult")
                 .heartbeatTimeout(123)
                 .notificationMetadata("notificationMetadata")
                 .notificationTargetArn("notificationTargetArn")
                 .roleArn("roleArn")
                 .build()))
         .loadBalancerNames(List.of("loadBalancerNames"))
         .maxInstanceLifetime(123)
         .metricsCollection(List.of(MetricsCollectionProperty.builder()
                 .granularity("granularity")
                 // the properties below are optional
                 .metrics(List.of("metrics"))
                 .build()))
         .mixedInstancesPolicy(MixedInstancesPolicyProperty.builder()
                 .launchTemplate(LaunchTemplateProperty.builder()
                         .launchTemplateSpecification(LaunchTemplateSpecificationProperty.builder()
                                 .version("version")
                                 // the properties below are optional
                                 .launchTemplateId("launchTemplateId")
                                 .launchTemplateName("launchTemplateName")
                                 .build())
                         // the properties below are optional
                         .overrides(List.of(LaunchTemplateOverridesProperty.builder()
                                 .instanceRequirements(InstanceRequirementsProperty.builder()
                                         .memoryMiB(MemoryMiBRequestProperty.builder()
                                                 .max(123)
                                                 .min(123)
                                                 .build())
                                         .vCpuCount(VCpuCountRequestProperty.builder()
                                                 .max(123)
                                                 .min(123)
                                                 .build())
                                         // the properties below are optional
                                         .acceleratorCount(AcceleratorCountRequestProperty.builder()
                                                 .max(123)
                                                 .min(123)
                                                 .build())
                                         .acceleratorManufacturers(List.of("acceleratorManufacturers"))
                                         .acceleratorNames(List.of("acceleratorNames"))
                                         .acceleratorTotalMemoryMiB(AcceleratorTotalMemoryMiBRequestProperty.builder()
                                                 .max(123)
                                                 .min(123)
                                                 .build())
                                         .acceleratorTypes(List.of("acceleratorTypes"))
                                         .allowedInstanceTypes(List.of("allowedInstanceTypes"))
                                         .bareMetal("bareMetal")
                                         .baselineEbsBandwidthMbps(BaselineEbsBandwidthMbpsRequestProperty.builder()
                                                 .max(123)
                                                 .min(123)
                                                 .build())
                                         .burstablePerformance("burstablePerformance")
                                         .cpuManufacturers(List.of("cpuManufacturers"))
                                         .excludedInstanceTypes(List.of("excludedInstanceTypes"))
                                         .instanceGenerations(List.of("instanceGenerations"))
                                         .localStorage("localStorage")
                                         .localStorageTypes(List.of("localStorageTypes"))
                                         .maxSpotPriceAsPercentageOfOptimalOnDemandPrice(123)
                                         .memoryGiBPerVCpu(MemoryGiBPerVCpuRequestProperty.builder()
                                                 .max(123)
                                                 .min(123)
                                                 .build())
                                         .networkBandwidthGbps(NetworkBandwidthGbpsRequestProperty.builder()
                                                 .max(123)
                                                 .min(123)
                                                 .build())
                                         .networkInterfaceCount(NetworkInterfaceCountRequestProperty.builder()
                                                 .max(123)
                                                 .min(123)
                                                 .build())
                                         .onDemandMaxPricePercentageOverLowestPrice(123)
                                         .requireHibernateSupport(false)
                                         .spotMaxPricePercentageOverLowestPrice(123)
                                         .totalLocalStorageGb(TotalLocalStorageGBRequestProperty.builder()
                                                 .max(123)
                                                 .min(123)
                                                 .build())
                                         .build())
                                 .instanceType("instanceType")
                                 .launchTemplateSpecification(LaunchTemplateSpecificationProperty.builder()
                                         .version("version")
                                         // the properties below are optional
                                         .launchTemplateId("launchTemplateId")
                                         .launchTemplateName("launchTemplateName")
                                         .build())
                                 .weightedCapacity("weightedCapacity")
                                 .build()))
                         .build())
                 // the properties below are optional
                 .instancesDistribution(InstancesDistributionProperty.builder()
                         .onDemandAllocationStrategy("onDemandAllocationStrategy")
                         .onDemandBaseCapacity(123)
                         .onDemandPercentageAboveBaseCapacity(123)
                         .spotAllocationStrategy("spotAllocationStrategy")
                         .spotInstancePools(123)
                         .spotMaxPrice("spotMaxPrice")
                         .build())
                 .build())
         .newInstancesProtectedFromScaleIn(false)
         .notificationConfiguration(NotificationConfigurationProperty.builder()
                 .topicArn("topicArn")
                 // the properties below are optional
                 .notificationTypes(List.of("notificationTypes"))
                 .build())
         .notificationConfigurations(List.of(NotificationConfigurationProperty.builder()
                 .topicArn("topicArn")
                 // the properties below are optional
                 .notificationTypes(List.of("notificationTypes"))
                 .build()))
         .placementGroup("placementGroup")
         .serviceLinkedRoleArn("serviceLinkedRoleArn")
         .tags(List.of(TagPropertyProperty.builder()
                 .key("key")
                 .propagateAtLaunch(false)
                 .value("value")
                 .build()))
         .targetGroupArns(List.of("targetGroupArns"))
         .terminationPolicies(List.of("terminationPolicies"))
         .trafficSources(List.of(TrafficSourceIdentifierProperty.builder()
                 .identifier("identifier")
                 .type("type")
                 .build()))
         .vpcZoneIdentifier(List.of("vpcZoneIdentifier"))
         .build();
 

See Also:
  • Field Details

    • CFN_RESOURCE_TYPE_NAME

      @Stability(Stable) public static final String CFN_RESOURCE_TYPE_NAME
      The CloudFormation resource type name for this resource class.
  • Constructor Details

    • CfnAutoScalingGroup

      protected CfnAutoScalingGroup(software.amazon.jsii.JsiiObjectRef objRef)
    • CfnAutoScalingGroup

      protected CfnAutoScalingGroup(software.amazon.jsii.JsiiObject.InitializationMode initializationMode)
    • CfnAutoScalingGroup

      @Stability(Stable) public CfnAutoScalingGroup(@NotNull software.constructs.Construct scope, @NotNull String id, @NotNull CfnAutoScalingGroupProps props)
      Parameters:
      scope - Scope in which this resource is defined. This parameter is required.
      id - Construct identifier for this resource (unique in its scope). This parameter is required.
      props - Resource properties. This parameter is required.
  • Method Details

    • inspect

      @Stability(Stable) public void inspect(@NotNull TreeInspector inspector)
      Examines the CloudFormation resource and discloses attributes.

      Specified by:
      inspect in interface IInspectable
      Parameters:
      inspector - tree inspector to collect and process attributes. This parameter is required.
    • renderProperties

      @Stability(Stable) @NotNull protected Map<String,Object> renderProperties(@NotNull Map<String,Object> props)
      Overrides:
      renderProperties in class CfnResource
      Parameters:
      props - This parameter is required.
    • getCfnProperties

      @Stability(Stable) @NotNull protected Map<String,Object> getCfnProperties()
      Overrides:
      getCfnProperties in class CfnResource
    • getTags

      @Stability(Stable) @NotNull public TagManager getTags()
      Tag Manager which manages the tags for this resource.
      Specified by:
      getTags in interface ITaggable
    • getMaxSize

      @Stability(Stable) @NotNull public String getMaxSize()
      The maximum size of the group.
    • setMaxSize

      @Stability(Stable) public void setMaxSize(@NotNull String value)
      The maximum size of the group.
    • getMinSize

      @Stability(Stable) @NotNull public String getMinSize()
      The minimum size of the group.
    • setMinSize

      @Stability(Stable) public void setMinSize(@NotNull String value)
      The minimum size of the group.
    • getAutoScalingGroupName

      @Stability(Stable) @Nullable public String getAutoScalingGroupName()
      The name of the Auto Scaling group.

      This name must be unique per Region per account.

    • setAutoScalingGroupName

      @Stability(Stable) public void setAutoScalingGroupName(@Nullable String value)
      The name of the Auto Scaling group.

      This name must be unique per Region per account.

    • getAvailabilityZoneDistribution

      @Stability(Stable) @Nullable public Object getAvailabilityZoneDistribution()
    • setAvailabilityZoneDistribution

      @Stability(Stable) public void setAvailabilityZoneDistribution(@Nullable IResolvable value)
    • setAvailabilityZoneDistribution

      @Stability(Stable) public void setAvailabilityZoneDistribution(@Nullable CfnAutoScalingGroup.AvailabilityZoneDistributionProperty value)
    • getAvailabilityZones

      @Stability(Stable) @Nullable public List<String> getAvailabilityZones()
      A list of Availability Zones where instances in the Auto Scaling group can be created.
    • setAvailabilityZones

      @Stability(Stable) public void setAvailabilityZones(@Nullable List<String> value)
      A list of Availability Zones where instances in the Auto Scaling group can be created.
    • getCapacityRebalance

      @Stability(Stable) @Nullable public Object getCapacityRebalance()
      Indicates whether Capacity Rebalancing is enabled.
    • setCapacityRebalance

      @Stability(Stable) public void setCapacityRebalance(@Nullable Boolean value)
      Indicates whether Capacity Rebalancing is enabled.
    • setCapacityRebalance

      @Stability(Stable) public void setCapacityRebalance(@Nullable IResolvable value)
      Indicates whether Capacity Rebalancing is enabled.
    • getContext

      @Stability(Stable) @Nullable public String getContext()
      Reserved.
    • setContext

      @Stability(Stable) public void setContext(@Nullable String value)
      Reserved.
    • getCooldown

      @Stability(Stable) @Nullable public String getCooldown()
      Only needed if you use simple scaling policies..
    • setCooldown

      @Stability(Stable) public void setCooldown(@Nullable String value)
      Only needed if you use simple scaling policies..
    • getDefaultInstanceWarmup

      @Stability(Stable) @Nullable public Number getDefaultInstanceWarmup()
      The amount of time, in seconds, until a new instance is considered to have finished initializing and resource consumption to become stable after it enters the InService state.
    • setDefaultInstanceWarmup

      @Stability(Stable) public void setDefaultInstanceWarmup(@Nullable Number value)
      The amount of time, in seconds, until a new instance is considered to have finished initializing and resource consumption to become stable after it enters the InService state.
    • getDesiredCapacity

      @Stability(Stable) @Nullable public String getDesiredCapacity()
      The desired capacity is the initial capacity of the Auto Scaling group at the time of its creation and the capacity it attempts to maintain.
    • setDesiredCapacity

      @Stability(Stable) public void setDesiredCapacity(@Nullable String value)
      The desired capacity is the initial capacity of the Auto Scaling group at the time of its creation and the capacity it attempts to maintain.
    • getDesiredCapacityType

      @Stability(Stable) @Nullable public String getDesiredCapacityType()
      The unit of measurement for the value specified for desired capacity.
    • setDesiredCapacityType

      @Stability(Stable) public void setDesiredCapacityType(@Nullable String value)
      The unit of measurement for the value specified for desired capacity.
    • getHealthCheckGracePeriod

      @Stability(Stable) @Nullable public Number getHealthCheckGracePeriod()
      The amount of time, in seconds, that Amazon EC2 Auto Scaling waits before checking the health status of an EC2 instance that has come into service and marking it unhealthy due to a failed health check.
    • setHealthCheckGracePeriod

      @Stability(Stable) public void setHealthCheckGracePeriod(@Nullable Number value)
      The amount of time, in seconds, that Amazon EC2 Auto Scaling waits before checking the health status of an EC2 instance that has come into service and marking it unhealthy due to a failed health check.
    • getHealthCheckType

      @Stability(Stable) @Nullable public String getHealthCheckType()
      A comma-separated value string of one or more health check types.
    • setHealthCheckType

      @Stability(Stable) public void setHealthCheckType(@Nullable String value)
      A comma-separated value string of one or more health check types.
    • getInstanceId

      @Stability(Stable) @Nullable public String getInstanceId()
      The ID of the instance used to base the launch configuration on.
    • setInstanceId

      @Stability(Stable) public void setInstanceId(@Nullable String value)
      The ID of the instance used to base the launch configuration on.
    • getInstanceMaintenancePolicy

      @Stability(Stable) @Nullable public Object getInstanceMaintenancePolicy()
      An instance maintenance policy.
    • setInstanceMaintenancePolicy

      @Stability(Stable) public void setInstanceMaintenancePolicy(@Nullable IResolvable value)
      An instance maintenance policy.
    • setInstanceMaintenancePolicy

      @Stability(Stable) public void setInstanceMaintenancePolicy(@Nullable CfnAutoScalingGroup.InstanceMaintenancePolicyProperty value)
      An instance maintenance policy.
    • getLaunchConfigurationName

      @Stability(Stable) @Nullable public String getLaunchConfigurationName()
      The name of the launch configuration to use to launch instances.
    • setLaunchConfigurationName

      @Stability(Stable) public void setLaunchConfigurationName(@Nullable String value)
      The name of the launch configuration to use to launch instances.
    • getLaunchTemplate

      @Stability(Stable) @Nullable public Object getLaunchTemplate()
      Information used to specify the launch template and version to use to launch instances.
    • setLaunchTemplate

      @Stability(Stable) public void setLaunchTemplate(@Nullable IResolvable value)
      Information used to specify the launch template and version to use to launch instances.
    • setLaunchTemplate

      @Stability(Stable) public void setLaunchTemplate(@Nullable CfnAutoScalingGroup.LaunchTemplateSpecificationProperty value)
      Information used to specify the launch template and version to use to launch instances.
    • getLifecycleHookSpecificationList

      @Stability(Stable) @Nullable public Object getLifecycleHookSpecificationList()
      One or more lifecycle hooks to add to the Auto Scaling group before instances are launched.
    • setLifecycleHookSpecificationList

      @Stability(Stable) public void setLifecycleHookSpecificationList(@Nullable IResolvable value)
      One or more lifecycle hooks to add to the Auto Scaling group before instances are launched.
    • setLifecycleHookSpecificationList

      @Stability(Stable) public void setLifecycleHookSpecificationList(@Nullable List<Object> value)
      One or more lifecycle hooks to add to the Auto Scaling group before instances are launched.
    • getLoadBalancerNames

      @Stability(Stable) @Nullable public List<String> getLoadBalancerNames()
      A list of Classic Load Balancers associated with this Auto Scaling group.
    • setLoadBalancerNames

      @Stability(Stable) public void setLoadBalancerNames(@Nullable List<String> value)
      A list of Classic Load Balancers associated with this Auto Scaling group.
    • getMaxInstanceLifetime

      @Stability(Stable) @Nullable public Number getMaxInstanceLifetime()
      The maximum amount of time, in seconds, that an instance can be in service.
    • setMaxInstanceLifetime

      @Stability(Stable) public void setMaxInstanceLifetime(@Nullable Number value)
      The maximum amount of time, in seconds, that an instance can be in service.
    • getMetricsCollection

      @Stability(Stable) @Nullable public Object getMetricsCollection()
      Enables the monitoring of group metrics of an Auto Scaling group.
    • setMetricsCollection

      @Stability(Stable) public void setMetricsCollection(@Nullable IResolvable value)
      Enables the monitoring of group metrics of an Auto Scaling group.
    • setMetricsCollection

      @Stability(Stable) public void setMetricsCollection(@Nullable List<Object> value)
      Enables the monitoring of group metrics of an Auto Scaling group.
    • getMixedInstancesPolicy

      @Stability(Stable) @Nullable public Object getMixedInstancesPolicy()
      An embedded object that specifies a mixed instances policy.
    • setMixedInstancesPolicy

      @Stability(Stable) public void setMixedInstancesPolicy(@Nullable IResolvable value)
      An embedded object that specifies a mixed instances policy.
    • setMixedInstancesPolicy

      @Stability(Stable) public void setMixedInstancesPolicy(@Nullable CfnAutoScalingGroup.MixedInstancesPolicyProperty value)
      An embedded object that specifies a mixed instances policy.
    • getNewInstancesProtectedFromScaleIn

      @Stability(Stable) @Nullable public Object getNewInstancesProtectedFromScaleIn()
      Indicates whether newly launched instances are protected from termination by Amazon EC2 Auto Scaling when scaling in.
    • setNewInstancesProtectedFromScaleIn

      @Stability(Stable) public void setNewInstancesProtectedFromScaleIn(@Nullable Boolean value)
      Indicates whether newly launched instances are protected from termination by Amazon EC2 Auto Scaling when scaling in.
    • setNewInstancesProtectedFromScaleIn

      @Stability(Stable) public void setNewInstancesProtectedFromScaleIn(@Nullable IResolvable value)
      Indicates whether newly launched instances are protected from termination by Amazon EC2 Auto Scaling when scaling in.
    • getNotificationConfiguration

      @Stability(Deprecated) @Deprecated @Nullable public Object getNotificationConfiguration()
      Deprecated.
      this property has been deprecated
      (deprecated) A structure that specifies an Amazon SNS notification configuration for the NotificationConfigurations property of the AWS::AutoScaling::AutoScalingGroup resource. For an example template snippet, see Configure Amazon EC2 Auto Scaling resources. For more information, see Get Amazon SNS notifications when your Auto Scaling group scales in the Amazon EC2 Auto Scaling User Guide.

    • setNotificationConfiguration

      @Stability(Deprecated) @Deprecated public void setNotificationConfiguration(@Nullable IResolvable value)
      Deprecated.
      this property has been deprecated
      (deprecated) A structure that specifies an Amazon SNS notification configuration for the NotificationConfigurations property of the AWS::AutoScaling::AutoScalingGroup resource. For an example template snippet, see Configure Amazon EC2 Auto Scaling resources. For more information, see Get Amazon SNS notifications when your Auto Scaling group scales in the Amazon EC2 Auto Scaling User Guide.

    • setNotificationConfiguration

      @Stability(Deprecated) @Deprecated public void setNotificationConfiguration(@Nullable CfnAutoScalingGroup.NotificationConfigurationProperty value)
      Deprecated.
      this property has been deprecated
      (deprecated) A structure that specifies an Amazon SNS notification configuration for the NotificationConfigurations property of the AWS::AutoScaling::AutoScalingGroup resource. For an example template snippet, see Configure Amazon EC2 Auto Scaling resources. For more information, see Get Amazon SNS notifications when your Auto Scaling group scales in the Amazon EC2 Auto Scaling User Guide.

    • getNotificationConfigurations

      @Stability(Stable) @Nullable public Object getNotificationConfigurations()
      Configures an Auto Scaling group to send notifications when specified events take place.
    • setNotificationConfigurations

      @Stability(Stable) public void setNotificationConfigurations(@Nullable IResolvable value)
      Configures an Auto Scaling group to send notifications when specified events take place.
    • setNotificationConfigurations

      @Stability(Stable) public void setNotificationConfigurations(@Nullable List<Object> value)
      Configures an Auto Scaling group to send notifications when specified events take place.
    • getPlacementGroup

      @Stability(Stable) @Nullable public String getPlacementGroup()
      The name of the placement group into which to launch your instances.
    • setPlacementGroup

      @Stability(Stable) public void setPlacementGroup(@Nullable String value)
      The name of the placement group into which to launch your instances.
    • getServiceLinkedRoleArn

      @Stability(Stable) @Nullable public String getServiceLinkedRoleArn()
      The Amazon Resource Name (ARN) of the service-linked role that the Auto Scaling group uses to call other AWS service on your behalf.
    • setServiceLinkedRoleArn

      @Stability(Stable) public void setServiceLinkedRoleArn(@Nullable String value)
      The Amazon Resource Name (ARN) of the service-linked role that the Auto Scaling group uses to call other AWS service on your behalf.
    • getTagsRaw

      @Stability(Stable) @Nullable public List<CfnAutoScalingGroup.TagPropertyProperty> getTagsRaw()
      One or more tags.
    • setTagsRaw

      @Stability(Stable) public void setTagsRaw(@Nullable List<CfnAutoScalingGroup.TagPropertyProperty> value)
      One or more tags.
    • getTargetGroupArns

      @Stability(Stable) @Nullable public List<String> getTargetGroupArns()
      The Amazon Resource Names (ARN) of the Elastic Load Balancing target groups to associate with the Auto Scaling group.
    • setTargetGroupArns

      @Stability(Stable) public void setTargetGroupArns(@Nullable List<String> value)
      The Amazon Resource Names (ARN) of the Elastic Load Balancing target groups to associate with the Auto Scaling group.
    • getTerminationPolicies

      @Stability(Stable) @Nullable public List<String> getTerminationPolicies()
      A policy or a list of policies that are used to select the instance to terminate.
    • setTerminationPolicies

      @Stability(Stable) public void setTerminationPolicies(@Nullable List<String> value)
      A policy or a list of policies that are used to select the instance to terminate.
    • getTrafficSources

      @Stability(Stable) @Nullable public Object getTrafficSources()
      The traffic sources associated with this Auto Scaling group.
    • setTrafficSources

      @Stability(Stable) public void setTrafficSources(@Nullable IResolvable value)
      The traffic sources associated with this Auto Scaling group.
    • setTrafficSources

      @Stability(Stable) public void setTrafficSources(@Nullable List<Object> value)
      The traffic sources associated with this Auto Scaling group.
    • getVpcZoneIdentifier

      @Stability(Stable) @Nullable public List<String> getVpcZoneIdentifier()
      A list of subnet IDs for a virtual private cloud (VPC) where instances in the Auto Scaling group can be created.
    • setVpcZoneIdentifier

      @Stability(Stable) public void setVpcZoneIdentifier(@Nullable List<String> value)
      A list of subnet IDs for a virtual private cloud (VPC) where instances in the Auto Scaling group can be created.