aws-cdk-lib 2.164.1__py3-none-any.whl → 2.166.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of aws-cdk-lib might be problematic. Click here for more details.

Files changed (52) hide show
  1. aws_cdk/__init__.py +20 -0
  2. aws_cdk/_jsii/__init__.py +1 -1
  3. aws_cdk/_jsii/{aws-cdk-lib@2.164.1.jsii.tgz → aws-cdk-lib@2.166.0.jsii.tgz} +0 -0
  4. aws_cdk/aws_appsync/__init__.py +2163 -375
  5. aws_cdk/aws_autoscaling/__init__.py +145 -8
  6. aws_cdk/aws_backup/__init__.py +627 -3
  7. aws_cdk/aws_bedrock/__init__.py +982 -191
  8. aws_cdk/aws_codebuild/__init__.py +88 -33
  9. aws_cdk/aws_codepipeline/__init__.py +98 -5
  10. aws_cdk/aws_codestar/__init__.py +1 -1
  11. aws_cdk/aws_cognito/__init__.py +656 -102
  12. aws_cdk/aws_connect/__init__.py +1 -1
  13. aws_cdk/aws_datasync/__init__.py +9 -7
  14. aws_cdk/aws_devopsguru/__init__.py +2 -2
  15. aws_cdk/aws_dms/__init__.py +762 -0
  16. aws_cdk/aws_dynamodb/__init__.py +13 -8
  17. aws_cdk/aws_ec2/__init__.py +134 -35
  18. aws_cdk/aws_ecs/__init__.py +41 -31
  19. aws_cdk/aws_eks/__init__.py +10 -12
  20. aws_cdk/aws_elasticache/__init__.py +52 -6
  21. aws_cdk/aws_emrserverless/__init__.py +35 -33
  22. aws_cdk/aws_events/__init__.py +25 -30
  23. aws_cdk/aws_imagebuilder/__init__.py +183 -0
  24. aws_cdk/aws_iot/__init__.py +37 -43
  25. aws_cdk/aws_iotwireless/__init__.py +2 -2
  26. aws_cdk/aws_kinesis/__init__.py +297 -1
  27. aws_cdk/aws_lambda/__init__.py +3 -3
  28. aws_cdk/aws_m2/__init__.py +58 -58
  29. aws_cdk/aws_mediapackagev2/__init__.py +191 -0
  30. aws_cdk/aws_memorydb/__init__.py +41 -0
  31. aws_cdk/aws_networkfirewall/__init__.py +14 -5
  32. aws_cdk/aws_opensearchservice/__init__.py +969 -0
  33. aws_cdk/aws_pipes/__init__.py +1 -1
  34. aws_cdk/aws_qbusiness/__init__.py +23 -14
  35. aws_cdk/aws_rds/__init__.py +187 -48
  36. aws_cdk/aws_redshift/__init__.py +23 -23
  37. aws_cdk/aws_refactorspaces/__init__.py +56 -61
  38. aws_cdk/aws_resiliencehub/__init__.py +4 -4
  39. aws_cdk/aws_route53/__init__.py +37 -9
  40. aws_cdk/aws_s3_deployment/__init__.py +13 -7
  41. aws_cdk/aws_sagemaker/__init__.py +128 -23
  42. aws_cdk/aws_secretsmanager/__init__.py +2 -1
  43. aws_cdk/aws_ses/__init__.py +19 -0
  44. aws_cdk/aws_synthetics/__init__.py +121 -0
  45. aws_cdk/aws_timestream/__init__.py +41 -0
  46. aws_cdk/aws_wisdom/__init__.py +2035 -61
  47. {aws_cdk_lib-2.164.1.dist-info → aws_cdk_lib-2.166.0.dist-info}/METADATA +6 -6
  48. {aws_cdk_lib-2.164.1.dist-info → aws_cdk_lib-2.166.0.dist-info}/RECORD +52 -52
  49. {aws_cdk_lib-2.164.1.dist-info → aws_cdk_lib-2.166.0.dist-info}/LICENSE +0 -0
  50. {aws_cdk_lib-2.164.1.dist-info → aws_cdk_lib-2.166.0.dist-info}/NOTICE +0 -0
  51. {aws_cdk_lib-2.164.1.dist-info → aws_cdk_lib-2.166.0.dist-info}/WHEEL +0 -0
  52. {aws_cdk_lib-2.164.1.dist-info → aws_cdk_lib-2.166.0.dist-info}/top_level.txt +0 -0
@@ -2372,6 +2372,9 @@ class CfnAutoScalingGroup(
2372
2372
 
2373
2373
  # the properties below are optional
2374
2374
  auto_scaling_group_name="autoScalingGroupName",
2375
+ availability_zone_distribution=autoscaling.CfnAutoScalingGroup.AvailabilityZoneDistributionProperty(
2376
+ capacity_distribution_strategy="capacityDistributionStrategy"
2377
+ ),
2375
2378
  availability_zones=["availabilityZones"],
2376
2379
  capacity_rebalance=False,
2377
2380
  context="context",
@@ -2540,6 +2543,7 @@ class CfnAutoScalingGroup(
2540
2543
  max_size: builtins.str,
2541
2544
  min_size: builtins.str,
2542
2545
  auto_scaling_group_name: typing.Optional[builtins.str] = None,
2546
+ availability_zone_distribution: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union["CfnAutoScalingGroup.AvailabilityZoneDistributionProperty", typing.Dict[builtins.str, typing.Any]]]] = None,
2543
2547
  availability_zones: typing.Optional[typing.Sequence[builtins.str]] = None,
2544
2548
  capacity_rebalance: typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]] = None,
2545
2549
  context: typing.Optional[builtins.str] = None,
@@ -2575,6 +2579,7 @@ class CfnAutoScalingGroup(
2575
2579
  :param max_size: The maximum size of the group. .. epigraph:: With a mixed instances policy that uses instance weighting, Amazon EC2 Auto Scaling may need to go above ``MaxSize`` to meet your capacity requirements. In this event, Amazon EC2 Auto Scaling will never go above ``MaxSize`` by more than your largest instance weight (weights that define how many units each instance contributes to the desired capacity of the group).
2576
2580
  :param min_size: The minimum size of the group.
2577
2581
  :param auto_scaling_group_name: The name of the Auto Scaling group. This name must be unique per Region per account. The name can contain any ASCII character 33 to 126 including most punctuation characters, digits, and upper and lowercased letters. .. epigraph:: You cannot use a colon (:) in the name.
2582
+ :param availability_zone_distribution:
2578
2583
  :param availability_zones: A list of Availability Zones where instances in the Auto Scaling group can be created. Used for launching into the default VPC subnet in each Availability Zone when not using the ``VPCZoneIdentifier`` property, or for attaching a network interface when an existing network interface ID is specified in a launch template.
2579
2584
  :param capacity_rebalance: Indicates whether Capacity Rebalancing is enabled. Otherwise, Capacity Rebalancing is disabled. When you turn on Capacity Rebalancing, Amazon EC2 Auto Scaling attempts to launch a Spot Instance whenever Amazon EC2 notifies that a Spot Instance is at an elevated risk of interruption. After launching a new instance, it then terminates an old instance. For more information, see `Use Capacity Rebalancing to handle Amazon EC2 Spot Interruptions <https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-capacity-rebalancing.html>`_ in the in the *Amazon EC2 Auto Scaling User Guide* .
2580
2585
  :param context: Reserved.
@@ -2601,7 +2606,7 @@ class CfnAutoScalingGroup(
2601
2606
  :param tags: One or more tags. You can tag your Auto Scaling group and propagate the tags to the Amazon EC2 instances it launches. Tags are not propagated to Amazon EBS volumes. To add tags to Amazon EBS volumes, specify the tags in a launch template but use caution. If the launch template specifies an instance tag with a key that is also specified for the Auto Scaling group, Amazon EC2 Auto Scaling overrides the value of that instance tag with the value specified by the Auto Scaling group. For more information, see `Tag Auto Scaling groups and instances <https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-tagging.html>`_ in the *Amazon EC2 Auto Scaling User Guide* .
2602
2607
  :param target_group_arns: The Amazon Resource Names (ARN) of the Elastic Load Balancing target groups to associate with the Auto Scaling group. Instances are registered as targets with the target groups. The target groups receive incoming traffic and route requests to one or more registered targets. For more information, see `Use Elastic Load Balancing to distribute traffic across the instances in your Auto Scaling group <https://docs.aws.amazon.com/autoscaling/ec2/userguide/autoscaling-load-balancer.html>`_ in the *Amazon EC2 Auto Scaling User Guide* .
2603
2608
  :param termination_policies: A policy or a list of policies that are used to select the instance to terminate. These policies are executed in the order that you list them. For more information, see `Configure termination policies for Amazon EC2 Auto Scaling <https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-termination-policies.html>`_ in the *Amazon EC2 Auto Scaling User Guide* . Valid values: ``Default`` | ``AllocationStrategy`` | ``ClosestToNextInstanceHour`` | ``NewestInstance`` | ``OldestInstance`` | ``OldestLaunchConfiguration`` | ``OldestLaunchTemplate`` | ``arn:aws:lambda:region:account-id:function:my-function:my-alias``
2604
- :param traffic_sources:
2609
+ :param traffic_sources: The traffic sources associated with this Auto Scaling group.
2605
2610
  :param vpc_zone_identifier: A list of subnet IDs for a virtual private cloud (VPC) where instances in the Auto Scaling group can be created. If this resource specifies public subnets and is also in a VPC that is defined in the same stack template, you must use the `DependsOn attribute <https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html>`_ to declare a dependency on the `VPC-gateway attachment <https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpc-gateway-attachment.html>`_ . .. epigraph:: When you update ``VPCZoneIdentifier`` , this retains the same Auto Scaling group and replaces old instances with new ones, according to the specified subnets. You can optionally specify how CloudFormation handles these updates by using an `UpdatePolicy attribute <https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-updatepolicy.html>`_ . Required to launch instances into a nondefault VPC. If you specify ``VPCZoneIdentifier`` with ``AvailabilityZones`` , the subnets that you specify for this property must reside in those Availability Zones.
2606
2611
  '''
2607
2612
  if __debug__:
@@ -2612,6 +2617,7 @@ class CfnAutoScalingGroup(
2612
2617
  max_size=max_size,
2613
2618
  min_size=min_size,
2614
2619
  auto_scaling_group_name=auto_scaling_group_name,
2620
+ availability_zone_distribution=availability_zone_distribution,
2615
2621
  availability_zones=availability_zones,
2616
2622
  capacity_rebalance=capacity_rebalance,
2617
2623
  context=context,
@@ -2727,6 +2733,23 @@ class CfnAutoScalingGroup(
2727
2733
  check_type(argname="argument value", value=value, expected_type=type_hints["value"])
2728
2734
  jsii.set(self, "autoScalingGroupName", value) # pyright: ignore[reportArgumentType]
2729
2735
 
2736
+ @builtins.property
2737
+ @jsii.member(jsii_name="availabilityZoneDistribution")
2738
+ def availability_zone_distribution(
2739
+ self,
2740
+ ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnAutoScalingGroup.AvailabilityZoneDistributionProperty"]]:
2741
+ return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnAutoScalingGroup.AvailabilityZoneDistributionProperty"]], jsii.get(self, "availabilityZoneDistribution"))
2742
+
2743
+ @availability_zone_distribution.setter
2744
+ def availability_zone_distribution(
2745
+ self,
2746
+ value: typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnAutoScalingGroup.AvailabilityZoneDistributionProperty"]],
2747
+ ) -> None:
2748
+ if __debug__:
2749
+ type_hints = typing.get_type_hints(_typecheckingstub__d5e9ae536cfa6650d411381d31454774f7e8c68d105e3c7f7476fcbdbc86ab9f)
2750
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
2751
+ jsii.set(self, "availabilityZoneDistribution", value) # pyright: ignore[reportArgumentType]
2752
+
2730
2753
  @builtins.property
2731
2754
  @jsii.member(jsii_name="availabilityZones")
2732
2755
  def availability_zones(self) -> typing.Optional[typing.List[builtins.str]]:
@@ -3137,6 +3160,7 @@ class CfnAutoScalingGroup(
3137
3160
  def traffic_sources(
3138
3161
  self,
3139
3162
  ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, "CfnAutoScalingGroup.TrafficSourceIdentifierProperty"]]]]:
3163
+ '''The traffic sources associated with this Auto Scaling group.'''
3140
3164
  return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, "CfnAutoScalingGroup.TrafficSourceIdentifierProperty"]]]], jsii.get(self, "trafficSources"))
3141
3165
 
3142
3166
  @traffic_sources.setter
@@ -3305,6 +3329,61 @@ class CfnAutoScalingGroup(
3305
3329
  k + "=" + repr(v) for k, v in self._values.items()
3306
3330
  )
3307
3331
 
3332
+ @jsii.data_type(
3333
+ jsii_type="aws-cdk-lib.aws_autoscaling.CfnAutoScalingGroup.AvailabilityZoneDistributionProperty",
3334
+ jsii_struct_bases=[],
3335
+ name_mapping={
3336
+ "capacity_distribution_strategy": "capacityDistributionStrategy",
3337
+ },
3338
+ )
3339
+ class AvailabilityZoneDistributionProperty:
3340
+ def __init__(
3341
+ self,
3342
+ *,
3343
+ capacity_distribution_strategy: typing.Optional[builtins.str] = None,
3344
+ ) -> None:
3345
+ '''
3346
+ :param capacity_distribution_strategy:
3347
+
3348
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-autoscalinggroup-availabilityzonedistribution.html
3349
+ :exampleMetadata: fixture=_generated
3350
+
3351
+ Example::
3352
+
3353
+ # The code below shows an example of how to instantiate this type.
3354
+ # The values are placeholders you should change.
3355
+ from aws_cdk import aws_autoscaling as autoscaling
3356
+
3357
+ availability_zone_distribution_property = autoscaling.CfnAutoScalingGroup.AvailabilityZoneDistributionProperty(
3358
+ capacity_distribution_strategy="capacityDistributionStrategy"
3359
+ )
3360
+ '''
3361
+ if __debug__:
3362
+ type_hints = typing.get_type_hints(_typecheckingstub__d355d9c2c42bbc544e31b115eb7cc171b2e1dc63696c81872c62b9256833af8a)
3363
+ check_type(argname="argument capacity_distribution_strategy", value=capacity_distribution_strategy, expected_type=type_hints["capacity_distribution_strategy"])
3364
+ self._values: typing.Dict[builtins.str, typing.Any] = {}
3365
+ if capacity_distribution_strategy is not None:
3366
+ self._values["capacity_distribution_strategy"] = capacity_distribution_strategy
3367
+
3368
+ @builtins.property
3369
+ def capacity_distribution_strategy(self) -> typing.Optional[builtins.str]:
3370
+ '''
3371
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-autoscalinggroup-availabilityzonedistribution.html#cfn-autoscaling-autoscalinggroup-availabilityzonedistribution-capacitydistributionstrategy
3372
+ '''
3373
+ result = self._values.get("capacity_distribution_strategy")
3374
+ return typing.cast(typing.Optional[builtins.str], result)
3375
+
3376
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
3377
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
3378
+
3379
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
3380
+ return not (rhs == self)
3381
+
3382
+ def __repr__(self) -> str:
3383
+ return "AvailabilityZoneDistributionProperty(%s)" % ", ".join(
3384
+ k + "=" + repr(v) for k, v in self._values.items()
3385
+ )
3386
+
3308
3387
  @jsii.data_type(
3309
3388
  jsii_type="aws-cdk-lib.aws_autoscaling.CfnAutoScalingGroup.BaselineEbsBandwidthMbpsRequestProperty",
3310
3389
  jsii_struct_bases=[],
@@ -5690,9 +5769,10 @@ class CfnAutoScalingGroup(
5690
5769
  )
5691
5770
  class TrafficSourceIdentifierProperty:
5692
5771
  def __init__(self, *, identifier: builtins.str, type: builtins.str) -> None:
5693
- '''
5694
- :param identifier:
5695
- :param type:
5772
+ '''Identifying information for a traffic source.
5773
+
5774
+ :param identifier: Identifies the traffic source. For Application Load Balancers, Gateway Load Balancers, Network Load Balancers, and VPC Lattice, this will be the Amazon Resource Name (ARN) for a target group in this account and Region. For Classic Load Balancers, this will be the name of the Classic Load Balancer in this account and Region. For example: - Application Load Balancer ARN: ``arn:aws:elasticloadbalancing:us-west-2:123456789012:targetgroup/my-targets/1234567890123456`` - Classic Load Balancer name: ``my-classic-load-balancer`` - VPC Lattice ARN: ``arn:aws:vpc-lattice:us-west-2:123456789012:targetgroup/tg-1234567890123456`` To get the ARN of a target group for a Application Load Balancer, Gateway Load Balancer, or Network Load Balancer, or the name of a Classic Load Balancer, use the Elastic Load Balancing `DescribeTargetGroups <https://docs.aws.amazon.com/elasticloadbalancing/latest/APIReference/API_DescribeTargetGroups.html>`_ and `DescribeLoadBalancers <https://docs.aws.amazon.com/elasticloadbalancing/latest/APIReference/API_DescribeLoadBalancers.html>`_ API operations. To get the ARN of a target group for VPC Lattice, use the VPC Lattice `GetTargetGroup <https://docs.aws.amazon.com/vpc-lattice/latest/APIReference/API_GetTargetGroup.html>`_ API operation.
5775
+ :param type: Provides additional context for the value of ``Identifier`` . The following lists the valid values: - ``elb`` if ``Identifier`` is the name of a Classic Load Balancer. - ``elbv2`` if ``Identifier`` is the ARN of an Application Load Balancer, Gateway Load Balancer, or Network Load Balancer target group. - ``vpc-lattice`` if ``Identifier`` is the ARN of a VPC Lattice target group. Required if the identifier is the name of a Classic Load Balancer.
5696
5776
 
5697
5777
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-autoscalinggroup-trafficsourceidentifier.html
5698
5778
  :exampleMetadata: fixture=_generated
@@ -5719,7 +5799,20 @@ class CfnAutoScalingGroup(
5719
5799
 
5720
5800
  @builtins.property
5721
5801
  def identifier(self) -> builtins.str:
5722
- '''
5802
+ '''Identifies the traffic source.
5803
+
5804
+ For Application Load Balancers, Gateway Load Balancers, Network Load Balancers, and VPC Lattice, this will be the Amazon Resource Name (ARN) for a target group in this account and Region. For Classic Load Balancers, this will be the name of the Classic Load Balancer in this account and Region.
5805
+
5806
+ For example:
5807
+
5808
+ - Application Load Balancer ARN: ``arn:aws:elasticloadbalancing:us-west-2:123456789012:targetgroup/my-targets/1234567890123456``
5809
+ - Classic Load Balancer name: ``my-classic-load-balancer``
5810
+ - VPC Lattice ARN: ``arn:aws:vpc-lattice:us-west-2:123456789012:targetgroup/tg-1234567890123456``
5811
+
5812
+ To get the ARN of a target group for a Application Load Balancer, Gateway Load Balancer, or Network Load Balancer, or the name of a Classic Load Balancer, use the Elastic Load Balancing `DescribeTargetGroups <https://docs.aws.amazon.com/elasticloadbalancing/latest/APIReference/API_DescribeTargetGroups.html>`_ and `DescribeLoadBalancers <https://docs.aws.amazon.com/elasticloadbalancing/latest/APIReference/API_DescribeLoadBalancers.html>`_ API operations.
5813
+
5814
+ To get the ARN of a target group for VPC Lattice, use the VPC Lattice `GetTargetGroup <https://docs.aws.amazon.com/vpc-lattice/latest/APIReference/API_GetTargetGroup.html>`_ API operation.
5815
+
5723
5816
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-autoscalinggroup-trafficsourceidentifier.html#cfn-autoscaling-autoscalinggroup-trafficsourceidentifier-identifier
5724
5817
  '''
5725
5818
  result = self._values.get("identifier")
@@ -5728,7 +5821,16 @@ class CfnAutoScalingGroup(
5728
5821
 
5729
5822
  @builtins.property
5730
5823
  def type(self) -> builtins.str:
5731
- '''
5824
+ '''Provides additional context for the value of ``Identifier`` .
5825
+
5826
+ The following lists the valid values:
5827
+
5828
+ - ``elb`` if ``Identifier`` is the name of a Classic Load Balancer.
5829
+ - ``elbv2`` if ``Identifier`` is the ARN of an Application Load Balancer, Gateway Load Balancer, or Network Load Balancer target group.
5830
+ - ``vpc-lattice`` if ``Identifier`` is the ARN of a VPC Lattice target group.
5831
+
5832
+ Required if the identifier is the name of a Classic Load Balancer.
5833
+
5732
5834
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-autoscalinggroup-trafficsourceidentifier.html#cfn-autoscaling-autoscalinggroup-trafficsourceidentifier-type
5733
5835
  '''
5734
5836
  result = self._values.get("type")
@@ -5824,6 +5926,7 @@ class CfnAutoScalingGroup(
5824
5926
  "max_size": "maxSize",
5825
5927
  "min_size": "minSize",
5826
5928
  "auto_scaling_group_name": "autoScalingGroupName",
5929
+ "availability_zone_distribution": "availabilityZoneDistribution",
5827
5930
  "availability_zones": "availabilityZones",
5828
5931
  "capacity_rebalance": "capacityRebalance",
5829
5932
  "context": "context",
@@ -5861,6 +5964,7 @@ class CfnAutoScalingGroupProps:
5861
5964
  max_size: builtins.str,
5862
5965
  min_size: builtins.str,
5863
5966
  auto_scaling_group_name: typing.Optional[builtins.str] = None,
5967
+ availability_zone_distribution: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnAutoScalingGroup.AvailabilityZoneDistributionProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
5864
5968
  availability_zones: typing.Optional[typing.Sequence[builtins.str]] = None,
5865
5969
  capacity_rebalance: typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]] = None,
5866
5970
  context: typing.Optional[builtins.str] = None,
@@ -5895,6 +5999,7 @@ class CfnAutoScalingGroupProps:
5895
5999
  :param max_size: The maximum size of the group. .. epigraph:: With a mixed instances policy that uses instance weighting, Amazon EC2 Auto Scaling may need to go above ``MaxSize`` to meet your capacity requirements. In this event, Amazon EC2 Auto Scaling will never go above ``MaxSize`` by more than your largest instance weight (weights that define how many units each instance contributes to the desired capacity of the group).
5896
6000
  :param min_size: The minimum size of the group.
5897
6001
  :param auto_scaling_group_name: The name of the Auto Scaling group. This name must be unique per Region per account. The name can contain any ASCII character 33 to 126 including most punctuation characters, digits, and upper and lowercased letters. .. epigraph:: You cannot use a colon (:) in the name.
6002
+ :param availability_zone_distribution:
5898
6003
  :param availability_zones: A list of Availability Zones where instances in the Auto Scaling group can be created. Used for launching into the default VPC subnet in each Availability Zone when not using the ``VPCZoneIdentifier`` property, or for attaching a network interface when an existing network interface ID is specified in a launch template.
5899
6004
  :param capacity_rebalance: Indicates whether Capacity Rebalancing is enabled. Otherwise, Capacity Rebalancing is disabled. When you turn on Capacity Rebalancing, Amazon EC2 Auto Scaling attempts to launch a Spot Instance whenever Amazon EC2 notifies that a Spot Instance is at an elevated risk of interruption. After launching a new instance, it then terminates an old instance. For more information, see `Use Capacity Rebalancing to handle Amazon EC2 Spot Interruptions <https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-capacity-rebalancing.html>`_ in the in the *Amazon EC2 Auto Scaling User Guide* .
5900
6005
  :param context: Reserved.
@@ -5921,7 +6026,7 @@ class CfnAutoScalingGroupProps:
5921
6026
  :param tags: One or more tags. You can tag your Auto Scaling group and propagate the tags to the Amazon EC2 instances it launches. Tags are not propagated to Amazon EBS volumes. To add tags to Amazon EBS volumes, specify the tags in a launch template but use caution. If the launch template specifies an instance tag with a key that is also specified for the Auto Scaling group, Amazon EC2 Auto Scaling overrides the value of that instance tag with the value specified by the Auto Scaling group. For more information, see `Tag Auto Scaling groups and instances <https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-tagging.html>`_ in the *Amazon EC2 Auto Scaling User Guide* .
5922
6027
  :param target_group_arns: The Amazon Resource Names (ARN) of the Elastic Load Balancing target groups to associate with the Auto Scaling group. Instances are registered as targets with the target groups. The target groups receive incoming traffic and route requests to one or more registered targets. For more information, see `Use Elastic Load Balancing to distribute traffic across the instances in your Auto Scaling group <https://docs.aws.amazon.com/autoscaling/ec2/userguide/autoscaling-load-balancer.html>`_ in the *Amazon EC2 Auto Scaling User Guide* .
5923
6028
  :param termination_policies: A policy or a list of policies that are used to select the instance to terminate. These policies are executed in the order that you list them. For more information, see `Configure termination policies for Amazon EC2 Auto Scaling <https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-termination-policies.html>`_ in the *Amazon EC2 Auto Scaling User Guide* . Valid values: ``Default`` | ``AllocationStrategy`` | ``ClosestToNextInstanceHour`` | ``NewestInstance`` | ``OldestInstance`` | ``OldestLaunchConfiguration`` | ``OldestLaunchTemplate`` | ``arn:aws:lambda:region:account-id:function:my-function:my-alias``
5924
- :param traffic_sources:
6029
+ :param traffic_sources: The traffic sources associated with this Auto Scaling group.
5925
6030
  :param vpc_zone_identifier: A list of subnet IDs for a virtual private cloud (VPC) where instances in the Auto Scaling group can be created. If this resource specifies public subnets and is also in a VPC that is defined in the same stack template, you must use the `DependsOn attribute <https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html>`_ to declare a dependency on the `VPC-gateway attachment <https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpc-gateway-attachment.html>`_ . .. epigraph:: When you update ``VPCZoneIdentifier`` , this retains the same Auto Scaling group and replaces old instances with new ones, according to the specified subnets. You can optionally specify how CloudFormation handles these updates by using an `UpdatePolicy attribute <https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-updatepolicy.html>`_ . Required to launch instances into a nondefault VPC. If you specify ``VPCZoneIdentifier`` with ``AvailabilityZones`` , the subnets that you specify for this property must reside in those Availability Zones.
5926
6031
 
5927
6032
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-autoscaling-autoscalinggroup.html
@@ -5939,6 +6044,9 @@ class CfnAutoScalingGroupProps:
5939
6044
 
5940
6045
  # the properties below are optional
5941
6046
  auto_scaling_group_name="autoScalingGroupName",
6047
+ availability_zone_distribution=autoscaling.CfnAutoScalingGroup.AvailabilityZoneDistributionProperty(
6048
+ capacity_distribution_strategy="capacityDistributionStrategy"
6049
+ ),
5942
6050
  availability_zones=["availabilityZones"],
5943
6051
  capacity_rebalance=False,
5944
6052
  context="context",
@@ -6103,6 +6211,7 @@ class CfnAutoScalingGroupProps:
6103
6211
  check_type(argname="argument max_size", value=max_size, expected_type=type_hints["max_size"])
6104
6212
  check_type(argname="argument min_size", value=min_size, expected_type=type_hints["min_size"])
6105
6213
  check_type(argname="argument auto_scaling_group_name", value=auto_scaling_group_name, expected_type=type_hints["auto_scaling_group_name"])
6214
+ check_type(argname="argument availability_zone_distribution", value=availability_zone_distribution, expected_type=type_hints["availability_zone_distribution"])
6106
6215
  check_type(argname="argument availability_zones", value=availability_zones, expected_type=type_hints["availability_zones"])
6107
6216
  check_type(argname="argument capacity_rebalance", value=capacity_rebalance, expected_type=type_hints["capacity_rebalance"])
6108
6217
  check_type(argname="argument context", value=context, expected_type=type_hints["context"])
@@ -6137,6 +6246,8 @@ class CfnAutoScalingGroupProps:
6137
6246
  }
6138
6247
  if auto_scaling_group_name is not None:
6139
6248
  self._values["auto_scaling_group_name"] = auto_scaling_group_name
6249
+ if availability_zone_distribution is not None:
6250
+ self._values["availability_zone_distribution"] = availability_zone_distribution
6140
6251
  if availability_zones is not None:
6141
6252
  self._values["availability_zones"] = availability_zones
6142
6253
  if capacity_rebalance is not None:
@@ -6232,6 +6343,16 @@ class CfnAutoScalingGroupProps:
6232
6343
  result = self._values.get("auto_scaling_group_name")
6233
6344
  return typing.cast(typing.Optional[builtins.str], result)
6234
6345
 
6346
+ @builtins.property
6347
+ def availability_zone_distribution(
6348
+ self,
6349
+ ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, CfnAutoScalingGroup.AvailabilityZoneDistributionProperty]]:
6350
+ '''
6351
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-autoscaling-autoscalinggroup.html#cfn-autoscaling-autoscalinggroup-availabilityzonedistribution
6352
+ '''
6353
+ result = self._values.get("availability_zone_distribution")
6354
+ return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, CfnAutoScalingGroup.AvailabilityZoneDistributionProperty]], result)
6355
+
6235
6356
  @builtins.property
6236
6357
  def availability_zones(self) -> typing.Optional[typing.List[builtins.str]]:
6237
6358
  '''A list of Availability Zones where instances in the Auto Scaling group can be created.
@@ -6567,7 +6688,8 @@ class CfnAutoScalingGroupProps:
6567
6688
  def traffic_sources(
6568
6689
  self,
6569
6690
  ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, CfnAutoScalingGroup.TrafficSourceIdentifierProperty]]]]:
6570
- '''
6691
+ '''The traffic sources associated with this Auto Scaling group.
6692
+
6571
6693
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-autoscaling-autoscalinggroup.html#cfn-autoscaling-autoscalinggroup-trafficsources
6572
6694
  '''
6573
6695
  result = self._values.get("traffic_sources")
@@ -20266,6 +20388,7 @@ def _typecheckingstub__d8ba2cee6007161ce4ac8e6f271353563746b8194e9da3c4517351b35
20266
20388
  max_size: builtins.str,
20267
20389
  min_size: builtins.str,
20268
20390
  auto_scaling_group_name: typing.Optional[builtins.str] = None,
20391
+ availability_zone_distribution: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnAutoScalingGroup.AvailabilityZoneDistributionProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
20269
20392
  availability_zones: typing.Optional[typing.Sequence[builtins.str]] = None,
20270
20393
  capacity_rebalance: typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]] = None,
20271
20394
  context: typing.Optional[builtins.str] = None,
@@ -20328,6 +20451,12 @@ def _typecheckingstub__40e8fdc97369d7f8797e7a890acf4c16f1c2a2166b1ca6d1644eaba12
20328
20451
  """Type checking stubs"""
20329
20452
  pass
20330
20453
 
20454
+ def _typecheckingstub__d5e9ae536cfa6650d411381d31454774f7e8c68d105e3c7f7476fcbdbc86ab9f(
20455
+ value: typing.Optional[typing.Union[_IResolvable_da3f097b, CfnAutoScalingGroup.AvailabilityZoneDistributionProperty]],
20456
+ ) -> None:
20457
+ """Type checking stubs"""
20458
+ pass
20459
+
20331
20460
  def _typecheckingstub__ba79ccc6a2a627119d2b42e5f2c3b0c8a81580a2589535c8255f0eb95acbdad6(
20332
20461
  value: typing.Optional[typing.List[builtins.str]],
20333
20462
  ) -> None:
@@ -20512,6 +20641,13 @@ def _typecheckingstub__3e3d46345becc8f13c0ef14e2ac1b4f8c14d13995594052f0a83d66d9
20512
20641
  """Type checking stubs"""
20513
20642
  pass
20514
20643
 
20644
+ def _typecheckingstub__d355d9c2c42bbc544e31b115eb7cc171b2e1dc63696c81872c62b9256833af8a(
20645
+ *,
20646
+ capacity_distribution_strategy: typing.Optional[builtins.str] = None,
20647
+ ) -> None:
20648
+ """Type checking stubs"""
20649
+ pass
20650
+
20515
20651
  def _typecheckingstub__36b0ab4a571aa009a65070b38b6f4e5ef64fa1f94d861b2083c70c2cae437f53(
20516
20652
  *,
20517
20653
  max: typing.Optional[jsii.Number] = None,
@@ -20704,6 +20840,7 @@ def _typecheckingstub__63de692030eb0bc729681a791501e2edd744cab3141e27cc9c9c8def2
20704
20840
  max_size: builtins.str,
20705
20841
  min_size: builtins.str,
20706
20842
  auto_scaling_group_name: typing.Optional[builtins.str] = None,
20843
+ availability_zone_distribution: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnAutoScalingGroup.AvailabilityZoneDistributionProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
20707
20844
  availability_zones: typing.Optional[typing.Sequence[builtins.str]] = None,
20708
20845
  capacity_rebalance: typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]] = None,
20709
20846
  context: typing.Optional[builtins.str] = None,