aws-cdk-lib 2.96.2__py3-none-any.whl → 2.97.1__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 (53) hide show
  1. aws_cdk/__init__.py +246 -62
  2. aws_cdk/_jsii/__init__.py +1 -1
  3. aws_cdk/_jsii/{aws-cdk-lib@2.96.2.jsii.tgz → aws-cdk-lib@2.97.1.jsii.tgz} +0 -0
  4. aws_cdk/aws_apigatewayv2/__init__.py +1 -1
  5. aws_cdk/aws_appflow/__init__.py +205 -7
  6. aws_cdk/aws_appstream/__init__.py +33 -28
  7. aws_cdk/aws_appsync/__init__.py +555 -71
  8. aws_cdk/aws_autoscaling/__init__.py +5 -11
  9. aws_cdk/aws_billingconductor/__init__.py +145 -1
  10. aws_cdk/aws_cleanrooms/__init__.py +1198 -86
  11. aws_cdk/aws_cloudformation/__init__.py +221 -55
  12. aws_cdk/aws_cloudwatch/__init__.py +325 -2
  13. aws_cdk/aws_cognito/__init__.py +9 -13
  14. aws_cdk/aws_config/__init__.py +68 -73
  15. aws_cdk/aws_connect/__init__.py +909 -164
  16. aws_cdk/aws_customerprofiles/__init__.py +44 -0
  17. aws_cdk/aws_dms/__init__.py +198 -0
  18. aws_cdk/aws_ec2/__init__.py +593 -73
  19. aws_cdk/aws_ecr/__init__.py +7 -2
  20. aws_cdk/aws_ecs/__init__.py +2 -2
  21. aws_cdk/aws_efs/__init__.py +237 -0
  22. aws_cdk/aws_emr/__init__.py +232 -0
  23. aws_cdk/aws_entityresolution/__init__.py +1702 -0
  24. aws_cdk/aws_events/__init__.py +13 -18
  25. aws_cdk/aws_fms/__init__.py +3 -3
  26. aws_cdk/aws_gamelift/__init__.py +10 -15
  27. aws_cdk/aws_grafana/__init__.py +9 -5
  28. aws_cdk/aws_guardduty/__init__.py +272 -205
  29. aws_cdk/aws_iam/__init__.py +20 -18
  30. aws_cdk/aws_iotwireless/__init__.py +38 -54
  31. aws_cdk/aws_lakeformation/__init__.py +18 -6
  32. aws_cdk/aws_lambda/__init__.py +1 -1
  33. aws_cdk/aws_lightsail/__init__.py +225 -0
  34. aws_cdk/aws_lookoutequipment/__init__.py +4 -4
  35. aws_cdk/aws_macie/__init__.py +5 -3
  36. aws_cdk/aws_mediapackagev2/__init__.py +3227 -0
  37. aws_cdk/aws_pcaconnectorad/__init__.py +6785 -0
  38. aws_cdk/aws_quicksight/__init__.py +189 -116
  39. aws_cdk/aws_rds/__init__.py +316 -9
  40. aws_cdk/aws_resiliencehub/__init__.py +38 -21
  41. aws_cdk/aws_route53resolver/__init__.py +429 -0
  42. aws_cdk/aws_sagemaker/__init__.py +34 -34
  43. aws_cdk/aws_stepfunctions/__init__.py +111 -14
  44. aws_cdk/aws_transfer/__init__.py +2 -2
  45. aws_cdk/aws_vpclattice/__init__.py +128 -120
  46. aws_cdk/aws_workspacesweb/__init__.py +3790 -0
  47. aws_cdk/region_info/__init__.py +49 -0
  48. {aws_cdk_lib-2.96.2.dist-info → aws_cdk_lib-2.97.1.dist-info}/METADATA +2 -2
  49. {aws_cdk_lib-2.96.2.dist-info → aws_cdk_lib-2.97.1.dist-info}/RECORD +53 -49
  50. {aws_cdk_lib-2.96.2.dist-info → aws_cdk_lib-2.97.1.dist-info}/LICENSE +0 -0
  51. {aws_cdk_lib-2.96.2.dist-info → aws_cdk_lib-2.97.1.dist-info}/NOTICE +0 -0
  52. {aws_cdk_lib-2.96.2.dist-info → aws_cdk_lib-2.97.1.dist-info}/WHEEL +0 -0
  53. {aws_cdk_lib-2.96.2.dist-info → aws_cdk_lib-2.97.1.dist-info}/top_level.txt +0 -0
@@ -3259,25 +3259,29 @@ class AmazonLinuxEdition(enum.Enum):
3259
3259
  class AmazonLinuxGeneration(enum.Enum):
3260
3260
  '''What generation of Amazon Linux to use.
3261
3261
 
3262
- :exampleMetadata: infused
3262
+ :exampleMetadata: lit=aws-autoscaling/test/example.images.lit.ts infused
3263
3263
 
3264
3264
  Example::
3265
3265
 
3266
- # vpc: ec2.Vpc
3267
-
3266
+ # Pick a Windows edition to use
3267
+ windows = ec2.WindowsImage(ec2.WindowsVersion.WINDOWS_SERVER_2019_ENGLISH_FULL_BASE)
3268
3268
 
3269
- autoscaling.AutoScalingGroup(self, "ASG",
3270
- vpc=vpc,
3271
- instance_type=ec2.InstanceType.of(ec2.InstanceClass.T3, ec2.InstanceSize.MICRO),
3269
+ # Pick the right Amazon Linux edition. All arguments shown are optional
3270
+ # and will default to these values when omitted.
3271
+ amzn_linux = ec2.AmazonLinuxImage(
3272
+ generation=ec2.AmazonLinuxGeneration.AMAZON_LINUX,
3273
+ edition=ec2.AmazonLinuxEdition.STANDARD,
3274
+ virtualization=ec2.AmazonLinuxVirt.HVM,
3275
+ storage=ec2.AmazonLinuxStorage.GENERAL_PURPOSE
3276
+ )
3272
3277
 
3273
- # Amazon Linux 2 comes with SSM Agent by default
3274
- machine_image=ec2.MachineImage.latest_amazon_linux(
3275
- generation=ec2.AmazonLinuxGeneration.AMAZON_LINUX_2
3276
- ),
3278
+ # For other custom (Linux) images, instantiate a `GenericLinuxImage` with
3279
+ # a map giving the AMI to in for each region:
3277
3280
 
3278
- # Turn on SSM
3279
- ssm_session_permissions=True
3280
- )
3281
+ linux = ec2.GenericLinuxImage({
3282
+ "us-east-1": "ami-97785bed",
3283
+ "eu-west-1": "ami-12345678"
3284
+ })
3281
3285
  '''
3282
3286
 
3283
3287
  AMAZON_LINUX = "AMAZON_LINUX"
@@ -9701,7 +9705,7 @@ class CfnEC2Fleet(
9701
9705
  :param on_demand_options: Describes the configuration of On-Demand Instances in an EC2 Fleet.
9702
9706
  :param replace_unhealthy_instances: Indicates whether EC2 Fleet should replace unhealthy Spot Instances. Supported only for fleets of type ``maintain`` . For more information, see `EC2 Fleet health checks <https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/manage-ec2-fleet.html#ec2-fleet-health-checks>`_ in the *Amazon EC2 User Guide* .
9703
9707
  :param spot_options: Describes the configuration of Spot Instances in an EC2 Fleet.
9704
- :param tag_specifications: The key-value pair for tagging the EC2 Fleet request on creation. For more information, see `Tagging your resources <https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Using_Tags.html#tag-resources>`_ . If the fleet type is ``instant`` , specify a resource type of ``fleet`` to tag the fleet or ``instance`` to tag the instances at launch. If the fleet type is ``maintain`` or ``request`` , specify a resource type of ``fleet`` to tag the fleet. You cannot specify a resource type of ``instance`` . To tag instances at launch, specify the tags in a `launch template <https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-launch-templates.html#create-launch-template>`_ .
9708
+ :param tag_specifications: The key-value pair for tagging the EC2 Fleet request on creation. For more information, see `Tag your resources <https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Using_Tags.html#tag-resources>`_ . If the fleet type is ``instant`` , specify a resource type of ``fleet`` to tag the fleet or ``instance`` to tag the instances at launch. If the fleet type is ``maintain`` or ``request`` , specify a resource type of ``fleet`` to tag the fleet. You cannot specify a resource type of ``instance`` . To tag instances at launch, specify the tags in a `launch template <https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-launch-templates.html#create-launch-template>`_ .
9705
9709
  :param terminate_instances_with_expiration: Indicates whether running instances should be terminated when the EC2 Fleet expires.
9706
9710
  :param type: The fleet type. The default value is ``maintain`` . - ``maintain`` - The EC2 Fleet places an asynchronous request for your desired capacity, and continues to maintain your desired Spot capacity by replenishing interrupted Spot Instances. - ``request`` - The EC2 Fleet places an asynchronous one-time request for your desired capacity, but does submit Spot requests in alternative capacity pools if Spot capacity is unavailable, and does not maintain Spot capacity if Spot Instances are interrupted. - ``instant`` - The EC2 Fleet places a synchronous one-time request for your desired capacity, and returns errors for any instances that could not be launched. For more information, see `EC2 Fleet request types <https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-fleet-request-type.html>`_ in the *Amazon EC2 User Guide* .
9707
9711
  :param valid_from: The start date and time of the request, in UTC format (for example, *YYYY* - *MM* - *DD* T *HH* : *MM* : *SS* Z). The default is to start fulfilling the request immediately.
@@ -9898,7 +9902,7 @@ class CfnEC2Fleet(
9898
9902
  ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, "CfnEC2Fleet.TagSpecificationProperty"]]]]:
9899
9903
  '''The key-value pair for tagging the EC2 Fleet request on creation.
9900
9904
 
9901
- For more information, see `Tagging your resources <https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Using_Tags.html#tag-resources>`_ .
9905
+ For more information, see `Tag your resources <https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Using_Tags.html#tag-resources>`_ .
9902
9906
  '''
9903
9907
  return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, "CfnEC2Fleet.TagSpecificationProperty"]]]], jsii.get(self, "tagSpecifications"))
9904
9908
 
@@ -11885,7 +11889,7 @@ class CfnEC2Fleet(
11885
11889
 
11886
11890
  :param allocation_strategy: The strategy that determines the order of the launch template overrides to use in fulfilling On-Demand capacity. ``lowest-price`` - EC2 Fleet uses price to determine the order, launching the lowest price first. ``prioritized`` - EC2 Fleet uses the priority that you assigned to each launch template override, launching the highest priority first. Default: ``lowest-price``
11887
11891
  :param capacity_reservation_options: The strategy for using unused Capacity Reservations for fulfilling On-Demand capacity. Supported only for fleets of type ``instant`` .
11888
- :param max_total_price: The maximum amount per hour for On-Demand Instances that you're willing to pay.
11892
+ :param max_total_price: The maximum amount per hour for On-Demand Instances that you're willing to pay. .. epigraph:: If your fleet includes T instances that are configured as ``unlimited`` , and if their average CPU usage exceeds the baseline utilization, you will incur a charge for surplus credits. The ``MaxTotalPrice`` does not account for surplus credits, and, if you use surplus credits, your final cost might be higher than what you specified for ``MaxTotalPrice`` . For more information, see `Surplus credits can incur charges <https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/burstable-performance-instances-unlimited-mode-concepts.html#unlimited-mode-surplus-credits>`_ in the *EC2 User Guide* .
11889
11893
  :param min_target_capacity: The minimum target capacity for On-Demand Instances in the fleet. If the minimum target capacity is not reached, the fleet launches no instances. Supported only for fleets of type ``instant`` . At least one of the following must be specified: ``SingleAvailabilityZone`` | ``SingleInstanceType``
11890
11894
  :param single_availability_zone: Indicates that the fleet launches all On-Demand Instances into a single Availability Zone. Supported only for fleets of type ``instant`` .
11891
11895
  :param single_instance_type: Indicates that the fleet uses a single instance type to launch all On-Demand Instances in the fleet. Supported only for fleets of type ``instant`` .
@@ -11964,6 +11968,10 @@ class CfnEC2Fleet(
11964
11968
  def max_total_price(self) -> typing.Optional[builtins.str]:
11965
11969
  '''The maximum amount per hour for On-Demand Instances that you're willing to pay.
11966
11970
 
11971
+ .. epigraph::
11972
+
11973
+ If your fleet includes T instances that are configured as ``unlimited`` , and if their average CPU usage exceeds the baseline utilization, you will incur a charge for surplus credits. The ``MaxTotalPrice`` does not account for surplus credits, and, if you use surplus credits, your final cost might be higher than what you specified for ``MaxTotalPrice`` . For more information, see `Surplus credits can incur charges <https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/burstable-performance-instances-unlimited-mode-concepts.html#unlimited-mode-surplus-credits>`_ in the *EC2 User Guide* .
11974
+
11967
11975
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ec2fleet-ondemandoptionsrequest.html#cfn-ec2-ec2fleet-ondemandoptionsrequest-maxtotalprice
11968
11976
  '''
11969
11977
  result = self._values.get("max_total_price")
@@ -12245,7 +12253,7 @@ class CfnEC2Fleet(
12245
12253
  :param instance_interruption_behavior: The behavior when a Spot Instance is interrupted. Default: ``terminate``
12246
12254
  :param instance_pools_to_use_count: The number of Spot pools across which to allocate your target Spot capacity. Supported only when Spot ``AllocationStrategy`` is set to ``lowest-price`` . EC2 Fleet selects the cheapest Spot pools and evenly allocates your target Spot capacity across the number of Spot pools that you specify. Note that EC2 Fleet attempts to draw Spot Instances from the number of pools that you specify on a best effort basis. If a pool runs out of Spot capacity before fulfilling your target capacity, EC2 Fleet will continue to fulfill your request by drawing from the next cheapest pool. To ensure that your target capacity is met, you might receive Spot Instances from more than the number of pools that you specified. Similarly, if most of the pools have no Spot capacity, you might receive your full target capacity from fewer than the number of pools that you specified.
12247
12255
  :param maintenance_strategies: The strategies for managing your Spot Instances that are at an elevated risk of being interrupted.
12248
- :param max_total_price: The maximum amount per hour for Spot Instances that you're willing to pay. We do not recommend using this parameter because it can lead to increased interruptions. If you do not specify this parameter, you will pay the current Spot price. .. epigraph:: If you specify a maximum price, your Spot Instances will be interrupted more frequently than if you do not specify this parameter.
12256
+ :param max_total_price: The maximum amount per hour for Spot Instances that you're willing to pay. We do not recommend using this parameter because it can lead to increased interruptions. If you do not specify this parameter, you will pay the current Spot price. .. epigraph:: If you specify a maximum price, your Spot Instances will be interrupted more frequently than if you do not specify this parameter. > If your fleet includes T instances that are configured as ``unlimited`` , and if their average CPU usage exceeds the baseline utilization, you will incur a charge for surplus credits. The ``MaxTotalPrice`` does not account for surplus credits, and, if you use surplus credits, your final cost might be higher than what you specified for ``MaxTotalPrice`` . For more information, see `Surplus credits can incur charges <https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/burstable-performance-instances-unlimited-mode-concepts.html#unlimited-mode-surplus-credits>`_ in the *EC2 User Guide* .
12249
12257
  :param min_target_capacity: The minimum target capacity for Spot Instances in the fleet. If the minimum target capacity is not reached, the fleet launches no instances. Supported only for fleets of type ``instant`` . At least one of the following must be specified: ``SingleAvailabilityZone`` | ``SingleInstanceType``
12250
12258
  :param single_availability_zone: Indicates that the fleet launches all Spot Instances into a single Availability Zone. Supported only for fleets of type ``instant`` .
12251
12259
  :param single_instance_type: Indicates that the fleet uses a single instance type to launch all Spot Instances in the fleet. Supported only for fleets of type ``instant`` .
@@ -12362,7 +12370,7 @@ class CfnEC2Fleet(
12362
12370
  We do not recommend using this parameter because it can lead to increased interruptions. If you do not specify this parameter, you will pay the current Spot price.
12363
12371
  .. epigraph::
12364
12372
 
12365
- If you specify a maximum price, your Spot Instances will be interrupted more frequently than if you do not specify this parameter.
12373
+ If you specify a maximum price, your Spot Instances will be interrupted more frequently than if you do not specify this parameter. > If your fleet includes T instances that are configured as ``unlimited`` , and if their average CPU usage exceeds the baseline utilization, you will incur a charge for surplus credits. The ``MaxTotalPrice`` does not account for surplus credits, and, if you use surplus credits, your final cost might be higher than what you specified for ``MaxTotalPrice`` . For more information, see `Surplus credits can incur charges <https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/burstable-performance-instances-unlimited-mode-concepts.html#unlimited-mode-surplus-credits>`_ in the *EC2 User Guide* .
12366
12374
 
12367
12375
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ec2fleet-spotoptionsrequest.html#cfn-ec2-ec2fleet-spotoptionsrequest-maxtotalprice
12368
12376
  '''
@@ -12819,7 +12827,7 @@ class CfnEC2FleetProps:
12819
12827
  :param on_demand_options: Describes the configuration of On-Demand Instances in an EC2 Fleet.
12820
12828
  :param replace_unhealthy_instances: Indicates whether EC2 Fleet should replace unhealthy Spot Instances. Supported only for fleets of type ``maintain`` . For more information, see `EC2 Fleet health checks <https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/manage-ec2-fleet.html#ec2-fleet-health-checks>`_ in the *Amazon EC2 User Guide* .
12821
12829
  :param spot_options: Describes the configuration of Spot Instances in an EC2 Fleet.
12822
- :param tag_specifications: The key-value pair for tagging the EC2 Fleet request on creation. For more information, see `Tagging your resources <https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Using_Tags.html#tag-resources>`_ . If the fleet type is ``instant`` , specify a resource type of ``fleet`` to tag the fleet or ``instance`` to tag the instances at launch. If the fleet type is ``maintain`` or ``request`` , specify a resource type of ``fleet`` to tag the fleet. You cannot specify a resource type of ``instance`` . To tag instances at launch, specify the tags in a `launch template <https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-launch-templates.html#create-launch-template>`_ .
12830
+ :param tag_specifications: The key-value pair for tagging the EC2 Fleet request on creation. For more information, see `Tag your resources <https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Using_Tags.html#tag-resources>`_ . If the fleet type is ``instant`` , specify a resource type of ``fleet`` to tag the fleet or ``instance`` to tag the instances at launch. If the fleet type is ``maintain`` or ``request`` , specify a resource type of ``fleet`` to tag the fleet. You cannot specify a resource type of ``instance`` . To tag instances at launch, specify the tags in a `launch template <https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-launch-templates.html#create-launch-template>`_ .
12823
12831
  :param terminate_instances_with_expiration: Indicates whether running instances should be terminated when the EC2 Fleet expires.
12824
12832
  :param type: The fleet type. The default value is ``maintain`` . - ``maintain`` - The EC2 Fleet places an asynchronous request for your desired capacity, and continues to maintain your desired Spot capacity by replenishing interrupted Spot Instances. - ``request`` - The EC2 Fleet places an asynchronous one-time request for your desired capacity, but does submit Spot requests in alternative capacity pools if Spot capacity is unavailable, and does not maintain Spot capacity if Spot Instances are interrupted. - ``instant`` - The EC2 Fleet places a synchronous one-time request for your desired capacity, and returns errors for any instances that could not be launched. For more information, see `EC2 Fleet request types <https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-fleet-request-type.html>`_ in the *Amazon EC2 User Guide* .
12825
12833
  :param valid_from: The start date and time of the request, in UTC format (for example, *YYYY* - *MM* - *DD* T *HH* : *MM* : *SS* Z). The default is to start fulfilling the request immediately.
@@ -13088,7 +13096,7 @@ class CfnEC2FleetProps:
13088
13096
  def tag_specifications(
13089
13097
  self,
13090
13098
  ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, CfnEC2Fleet.TagSpecificationProperty]]]]:
13091
- '''The key-value pair for tagging the EC2 Fleet request on creation. For more information, see `Tagging your resources <https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Using_Tags.html#tag-resources>`_ .
13099
+ '''The key-value pair for tagging the EC2 Fleet request on creation. For more information, see `Tag your resources <https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Using_Tags.html#tag-resources>`_ .
13092
13100
 
13093
13101
  If the fleet type is ``instant`` , specify a resource type of ``fleet`` to tag the fleet or ``instance`` to tag the instances at launch.
13094
13102
 
@@ -13206,7 +13214,7 @@ class CfnEIP(
13206
13214
  :param id: Construct identifier for this resource (unique in its scope).
13207
13215
  :param domain: The network ( ``vpc`` ). If you define an Elastic IP address and associate it with a VPC that is defined in the same template, you must declare a dependency on the VPC-gateway attachment by using the `DependsOn Attribute <https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html>`_ on this resource.
13208
13216
  :param instance_id: The ID of the instance. .. epigraph:: Updates to the ``InstanceId`` property may require *some interruptions* . Updates on an EIP reassociates the address on its associated resource.
13209
- :param network_border_group: A unique set of Availability Zones, Local Zones, or Wavelength Zones from which AWS advertises IP addresses. Use this parameter to limit the IP address to this location. IP addresses cannot move between network border groups. Use `DescribeAvailabilityZones <https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeAvailabilityZones.html>`_ to view the network border groups. You cannot use a network border group with EC2 Classic. If you attempt this operation on EC2 Classic, you receive an ``InvalidParameterCombination`` error.
13217
+ :param network_border_group: A unique set of Availability Zones, Local Zones, or Wavelength Zones from which AWS advertises IP addresses. Use this parameter to limit the IP address to this location. IP addresses cannot move between network border groups. Use `DescribeAvailabilityZones <https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeAvailabilityZones.html>`_ to view the network border groups.
13210
13218
  :param public_ipv4_pool: The ID of an address pool that you own. Use this parameter to let Amazon EC2 select an address from the address pool. .. epigraph:: Updates to the ``PublicIpv4Pool`` property may require *some interruptions* . Updates on an EIP reassociates the address on its associated resource.
13211
13219
  :param tags: Any tags assigned to the Elastic IP address. .. epigraph:: Updates to the ``Tags`` property may require *some interruptions* . Updates on an EIP reassociates the address on its associated resource.
13212
13220
  :param transfer_address: The Elastic IP address you are accepting for transfer. You can only accept one transferred address. For more information on Elastic IP address transfers, see `Transfer Elastic IP addresses <https://docs.aws.amazon.com/vpc/latest/userguide/vpc-eips.html#transfer-EIPs-intro>`_ in the *Amazon Virtual Private Cloud User Guide* .
@@ -13411,7 +13419,7 @@ class CfnEIPAssociation(
13411
13419
  :param scope: Scope in which this resource is defined.
13412
13420
  :param id: Construct identifier for this resource (unique in its scope).
13413
13421
  :param allocation_id: The allocation ID. This is required.
13414
- :param eip:
13422
+ :param eip: (deprecated) The Elastic IP address to associate with the instance.
13415
13423
  :param instance_id: The ID of the instance. The instance must have exactly one attached network interface. You can specify either the instance ID or the network interface ID, but not both.
13416
13424
  :param network_interface_id: The ID of the network interface. If the instance has more than one network interface, you must specify a network interface ID. You can specify either the instance ID or the network interface ID, but not both.
13417
13425
  :param private_ip_address: The primary or secondary private IP address to associate with the Elastic IP address. If no private IP address is specified, the Elastic IP address is associated with the primary private IP address.
@@ -13463,7 +13471,8 @@ class CfnEIPAssociation(
13463
13471
  @builtins.property
13464
13472
  @jsii.member(jsii_name="attrId")
13465
13473
  def attr_id(self) -> builtins.str:
13466
- '''
13474
+ '''The ID of the association.
13475
+
13467
13476
  :cloudformationAttribute: Id
13468
13477
  '''
13469
13478
  return typing.cast(builtins.str, jsii.get(self, "attrId"))
@@ -13489,6 +13498,12 @@ class CfnEIPAssociation(
13489
13498
  @builtins.property
13490
13499
  @jsii.member(jsii_name="eip")
13491
13500
  def eip(self) -> typing.Optional[builtins.str]:
13501
+ '''(deprecated) The Elastic IP address to associate with the instance.
13502
+
13503
+ :deprecated: this property has been deprecated
13504
+
13505
+ :stability: deprecated
13506
+ '''
13492
13507
  return typing.cast(typing.Optional[builtins.str], jsii.get(self, "eip"))
13493
13508
 
13494
13509
  @eip.setter
@@ -13562,7 +13577,7 @@ class CfnEIPAssociationProps:
13562
13577
  '''Properties for defining a ``CfnEIPAssociation``.
13563
13578
 
13564
13579
  :param allocation_id: The allocation ID. This is required.
13565
- :param eip:
13580
+ :param eip: (deprecated) The Elastic IP address to associate with the instance.
13566
13581
  :param instance_id: The ID of the instance. The instance must have exactly one attached network interface. You can specify either the instance ID or the network interface ID, but not both.
13567
13582
  :param network_interface_id: The ID of the network interface. If the instance has more than one network interface, you must specify a network interface ID. You can specify either the instance ID or the network interface ID, but not both.
13568
13583
  :param private_ip_address: The primary or secondary private IP address to associate with the Elastic IP address. If no private IP address is specified, the Elastic IP address is associated with the primary private IP address.
@@ -13616,8 +13631,12 @@ class CfnEIPAssociationProps:
13616
13631
 
13617
13632
  @builtins.property
13618
13633
  def eip(self) -> typing.Optional[builtins.str]:
13619
- '''
13634
+ '''(deprecated) The Elastic IP address to associate with the instance.
13635
+
13636
+ :deprecated: this property has been deprecated
13637
+
13620
13638
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-eipassociation.html#cfn-ec2-eipassociation-eip
13639
+ :stability: deprecated
13621
13640
  '''
13622
13641
  result = self._values.get("eip")
13623
13642
  return typing.cast(typing.Optional[builtins.str], result)
@@ -13696,7 +13715,7 @@ class CfnEIPProps:
13696
13715
 
13697
13716
  :param domain: The network ( ``vpc`` ). If you define an Elastic IP address and associate it with a VPC that is defined in the same template, you must declare a dependency on the VPC-gateway attachment by using the `DependsOn Attribute <https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html>`_ on this resource.
13698
13717
  :param instance_id: The ID of the instance. .. epigraph:: Updates to the ``InstanceId`` property may require *some interruptions* . Updates on an EIP reassociates the address on its associated resource.
13699
- :param network_border_group: A unique set of Availability Zones, Local Zones, or Wavelength Zones from which AWS advertises IP addresses. Use this parameter to limit the IP address to this location. IP addresses cannot move between network border groups. Use `DescribeAvailabilityZones <https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeAvailabilityZones.html>`_ to view the network border groups. You cannot use a network border group with EC2 Classic. If you attempt this operation on EC2 Classic, you receive an ``InvalidParameterCombination`` error.
13718
+ :param network_border_group: A unique set of Availability Zones, Local Zones, or Wavelength Zones from which AWS advertises IP addresses. Use this parameter to limit the IP address to this location. IP addresses cannot move between network border groups. Use `DescribeAvailabilityZones <https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeAvailabilityZones.html>`_ to view the network border groups.
13700
13719
  :param public_ipv4_pool: The ID of an address pool that you own. Use this parameter to let Amazon EC2 select an address from the address pool. .. epigraph:: Updates to the ``PublicIpv4Pool`` property may require *some interruptions* . Updates on an EIP reassociates the address on its associated resource.
13701
13720
  :param tags: Any tags assigned to the Elastic IP address. .. epigraph:: Updates to the ``Tags`` property may require *some interruptions* . Updates on an EIP reassociates the address on its associated resource.
13702
13721
  :param transfer_address: The Elastic IP address you are accepting for transfer. You can only accept one transferred address. For more information on Elastic IP address transfers, see `Transfer Elastic IP addresses <https://docs.aws.amazon.com/vpc/latest/userguide/vpc-eips.html#transfer-EIPs-intro>`_ in the *Amazon Virtual Private Cloud User Guide* .
@@ -13774,8 +13793,6 @@ class CfnEIPProps:
13774
13793
 
13775
13794
  Use `DescribeAvailabilityZones <https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeAvailabilityZones.html>`_ to view the network border groups.
13776
13795
 
13777
- You cannot use a network border group with EC2 Classic. If you attempt this operation on EC2 Classic, you receive an ``InvalidParameterCombination`` error.
13778
-
13779
13796
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-eip.html#cfn-ec2-eip-networkbordergroup
13780
13797
  '''
13781
13798
  result = self._values.get("network_border_group")
@@ -14230,6 +14247,7 @@ class CfnFlowLog(
14230
14247
  resource_type="resourceType",
14231
14248
 
14232
14249
  # the properties below are optional
14250
+ deliver_cross_account_role="deliverCrossAccountRole",
14233
14251
  deliver_logs_permission_arn="deliverLogsPermissionArn",
14234
14252
  destination_options=destination_options,
14235
14253
  log_destination="logDestination",
@@ -14252,6 +14270,7 @@ class CfnFlowLog(
14252
14270
  *,
14253
14271
  resource_id: builtins.str,
14254
14272
  resource_type: builtins.str,
14273
+ deliver_cross_account_role: typing.Optional[builtins.str] = None,
14255
14274
  deliver_logs_permission_arn: typing.Optional[builtins.str] = None,
14256
14275
  destination_options: typing.Any = None,
14257
14276
  log_destination: typing.Optional[builtins.str] = None,
@@ -14267,6 +14286,7 @@ class CfnFlowLog(
14267
14286
  :param id: Construct identifier for this resource (unique in its scope).
14268
14287
  :param resource_id: The ID of the resource to monitor. For example, if the resource type is ``VPC`` , specify the ID of the VPC.
14269
14288
  :param resource_type: The type of resource to monitor.
14289
+ :param deliver_cross_account_role: The ARN of the IAM role that allows the service to publish flow logs across accounts.
14270
14290
  :param deliver_logs_permission_arn: The ARN of the IAM role that allows Amazon EC2 to publish flow logs to a CloudWatch Logs log group in your account. This parameter is required if the destination type is ``cloud-watch-logs`` and unsupported otherwise.
14271
14291
  :param destination_options: The destination options. The following options are supported:. - ``FileFormat`` - The format for the flow log ( ``plain-text`` | ``parquet`` ). The default is ``plain-text`` . - ``HiveCompatiblePartitions`` - Indicates whether to use Hive-compatible prefixes for flow logs stored in Amazon S3 ( ``true`` | ``false`` ). The default is ``false`` . - ``PerHourPartition`` - Indicates whether to partition the flow log per hour ( ``true`` | ``false`` ). The default is ``false`` .
14272
14292
  :param log_destination: The destination for the flow log data. The meaning of this parameter depends on the destination type. - If the destination type is ``cloud-watch-logs`` , specify the ARN of a CloudWatch Logs log group. For example: arn:aws:logs: *region* : *account_id* :log-group: *my_group* Alternatively, use the ``LogGroupName`` parameter. - If the destination type is ``s3`` , specify the ARN of an S3 bucket. For example: arn:aws:s3::: *my_bucket* / *my_subfolder* / The subfolder is optional. Note that you can't use ``AWSLogs`` as a subfolder name. - If the destination type is ``kinesis-data-firehose`` , specify the ARN of a Kinesis Data Firehose delivery stream. For example: arn:aws:firehose: *region* : *account_id* :deliverystream: *my_stream*
@@ -14284,6 +14304,7 @@ class CfnFlowLog(
14284
14304
  props = CfnFlowLogProps(
14285
14305
  resource_id=resource_id,
14286
14306
  resource_type=resource_type,
14307
+ deliver_cross_account_role=deliver_cross_account_role,
14287
14308
  deliver_logs_permission_arn=deliver_logs_permission_arn,
14288
14309
  destination_options=destination_options,
14289
14310
  log_destination=log_destination,
@@ -14375,6 +14396,19 @@ class CfnFlowLog(
14375
14396
  check_type(argname="argument value", value=value, expected_type=type_hints["value"])
14376
14397
  jsii.set(self, "resourceType", value)
14377
14398
 
14399
+ @builtins.property
14400
+ @jsii.member(jsii_name="deliverCrossAccountRole")
14401
+ def deliver_cross_account_role(self) -> typing.Optional[builtins.str]:
14402
+ '''The ARN of the IAM role that allows the service to publish flow logs across accounts.'''
14403
+ return typing.cast(typing.Optional[builtins.str], jsii.get(self, "deliverCrossAccountRole"))
14404
+
14405
+ @deliver_cross_account_role.setter
14406
+ def deliver_cross_account_role(self, value: typing.Optional[builtins.str]) -> None:
14407
+ if __debug__:
14408
+ type_hints = typing.get_type_hints(_typecheckingstub__69de10af6e71879a605a8ff40c4836ff6e89ad4220088a0599668acc26625a53)
14409
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
14410
+ jsii.set(self, "deliverCrossAccountRole", value)
14411
+
14378
14412
  @builtins.property
14379
14413
  @jsii.member(jsii_name="deliverLogsPermissionArn")
14380
14414
  def deliver_logs_permission_arn(self) -> typing.Optional[builtins.str]:
@@ -14605,6 +14639,7 @@ class CfnFlowLog(
14605
14639
  name_mapping={
14606
14640
  "resource_id": "resourceId",
14607
14641
  "resource_type": "resourceType",
14642
+ "deliver_cross_account_role": "deliverCrossAccountRole",
14608
14643
  "deliver_logs_permission_arn": "deliverLogsPermissionArn",
14609
14644
  "destination_options": "destinationOptions",
14610
14645
  "log_destination": "logDestination",
@@ -14622,6 +14657,7 @@ class CfnFlowLogProps:
14622
14657
  *,
14623
14658
  resource_id: builtins.str,
14624
14659
  resource_type: builtins.str,
14660
+ deliver_cross_account_role: typing.Optional[builtins.str] = None,
14625
14661
  deliver_logs_permission_arn: typing.Optional[builtins.str] = None,
14626
14662
  destination_options: typing.Any = None,
14627
14663
  log_destination: typing.Optional[builtins.str] = None,
@@ -14636,6 +14672,7 @@ class CfnFlowLogProps:
14636
14672
 
14637
14673
  :param resource_id: The ID of the resource to monitor. For example, if the resource type is ``VPC`` , specify the ID of the VPC.
14638
14674
  :param resource_type: The type of resource to monitor.
14675
+ :param deliver_cross_account_role: The ARN of the IAM role that allows the service to publish flow logs across accounts.
14639
14676
  :param deliver_logs_permission_arn: The ARN of the IAM role that allows Amazon EC2 to publish flow logs to a CloudWatch Logs log group in your account. This parameter is required if the destination type is ``cloud-watch-logs`` and unsupported otherwise.
14640
14677
  :param destination_options: The destination options. The following options are supported:. - ``FileFormat`` - The format for the flow log ( ``plain-text`` | ``parquet`` ). The default is ``plain-text`` . - ``HiveCompatiblePartitions`` - Indicates whether to use Hive-compatible prefixes for flow logs stored in Amazon S3 ( ``true`` | ``false`` ). The default is ``false`` . - ``PerHourPartition`` - Indicates whether to partition the flow log per hour ( ``true`` | ``false`` ). The default is ``false`` .
14641
14678
  :param log_destination: The destination for the flow log data. The meaning of this parameter depends on the destination type. - If the destination type is ``cloud-watch-logs`` , specify the ARN of a CloudWatch Logs log group. For example: arn:aws:logs: *region* : *account_id* :log-group: *my_group* Alternatively, use the ``LogGroupName`` parameter. - If the destination type is ``s3`` , specify the ARN of an S3 bucket. For example: arn:aws:s3::: *my_bucket* / *my_subfolder* / The subfolder is optional. Note that you can't use ``AWSLogs`` as a subfolder name. - If the destination type is ``kinesis-data-firehose`` , specify the ARN of a Kinesis Data Firehose delivery stream. For example: arn:aws:firehose: *region* : *account_id* :deliverystream: *my_stream*
@@ -14662,6 +14699,7 @@ class CfnFlowLogProps:
14662
14699
  resource_type="resourceType",
14663
14700
 
14664
14701
  # the properties below are optional
14702
+ deliver_cross_account_role="deliverCrossAccountRole",
14665
14703
  deliver_logs_permission_arn="deliverLogsPermissionArn",
14666
14704
  destination_options=destination_options,
14667
14705
  log_destination="logDestination",
@@ -14680,6 +14718,7 @@ class CfnFlowLogProps:
14680
14718
  type_hints = typing.get_type_hints(_typecheckingstub__b70808589b9adfc66e939b8c87268607775dc0e479da5f4bed72c3ba8e3afef5)
14681
14719
  check_type(argname="argument resource_id", value=resource_id, expected_type=type_hints["resource_id"])
14682
14720
  check_type(argname="argument resource_type", value=resource_type, expected_type=type_hints["resource_type"])
14721
+ check_type(argname="argument deliver_cross_account_role", value=deliver_cross_account_role, expected_type=type_hints["deliver_cross_account_role"])
14683
14722
  check_type(argname="argument deliver_logs_permission_arn", value=deliver_logs_permission_arn, expected_type=type_hints["deliver_logs_permission_arn"])
14684
14723
  check_type(argname="argument destination_options", value=destination_options, expected_type=type_hints["destination_options"])
14685
14724
  check_type(argname="argument log_destination", value=log_destination, expected_type=type_hints["log_destination"])
@@ -14693,6 +14732,8 @@ class CfnFlowLogProps:
14693
14732
  "resource_id": resource_id,
14694
14733
  "resource_type": resource_type,
14695
14734
  }
14735
+ if deliver_cross_account_role is not None:
14736
+ self._values["deliver_cross_account_role"] = deliver_cross_account_role
14696
14737
  if deliver_logs_permission_arn is not None:
14697
14738
  self._values["deliver_logs_permission_arn"] = deliver_logs_permission_arn
14698
14739
  if destination_options is not None:
@@ -14734,6 +14775,15 @@ class CfnFlowLogProps:
14734
14775
  assert result is not None, "Required property 'resource_type' is missing"
14735
14776
  return typing.cast(builtins.str, result)
14736
14777
 
14778
+ @builtins.property
14779
+ def deliver_cross_account_role(self) -> typing.Optional[builtins.str]:
14780
+ '''The ARN of the IAM role that allows the service to publish flow logs across accounts.
14781
+
14782
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-flowlog.html#cfn-ec2-flowlog-delivercrossaccountrole
14783
+ '''
14784
+ result = self._values.get("deliver_cross_account_role")
14785
+ return typing.cast(typing.Optional[builtins.str], result)
14786
+
14737
14787
  @builtins.property
14738
14788
  def deliver_logs_permission_arn(self) -> typing.Optional[builtins.str]:
14739
14789
  '''The ARN of the IAM role that allows Amazon EC2 to publish flow logs to a CloudWatch Logs log group in your account.
@@ -20977,6 +21027,331 @@ class CfnInstance(
20977
21027
  )
20978
21028
 
20979
21029
 
21030
+ @jsii.implements(_IInspectable_c2943556)
21031
+ class CfnInstanceConnectEndpoint(
21032
+ _CfnResource_9df397a6,
21033
+ metaclass=jsii.JSIIMeta,
21034
+ jsii_type="aws-cdk-lib.aws_ec2.CfnInstanceConnectEndpoint",
21035
+ ):
21036
+ '''Creates an EC2 Instance Connect Endpoint.
21037
+
21038
+ An EC2 Instance Connect Endpoint allows you to connect to an instance, without requiring the instance to have a public IPv4 address. For more information, see `Connect to your instances without requiring a public IPv4 address using EC2 Instance Connect Endpoint <https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Connect-using-EC2-Instance-Connect-Endpoint.html>`_ in the *Amazon EC2 User Guide* .
21039
+
21040
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-instanceconnectendpoint.html
21041
+ :exampleMetadata: fixture=_generated
21042
+
21043
+ Example::
21044
+
21045
+ # The code below shows an example of how to instantiate this type.
21046
+ # The values are placeholders you should change.
21047
+ from aws_cdk import aws_ec2 as ec2
21048
+
21049
+ cfn_instance_connect_endpoint = ec2.CfnInstanceConnectEndpoint(self, "MyCfnInstanceConnectEndpoint",
21050
+ subnet_id="subnetId",
21051
+
21052
+ # the properties below are optional
21053
+ client_token="clientToken",
21054
+ preserve_client_ip=False,
21055
+ security_group_ids=["securityGroupIds"],
21056
+ tags=[CfnTag(
21057
+ key="key",
21058
+ value="value"
21059
+ )]
21060
+ )
21061
+ '''
21062
+
21063
+ def __init__(
21064
+ self,
21065
+ scope: _constructs_77d1e7e8.Construct,
21066
+ id: builtins.str,
21067
+ *,
21068
+ subnet_id: builtins.str,
21069
+ client_token: typing.Optional[builtins.str] = None,
21070
+ preserve_client_ip: typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]] = None,
21071
+ security_group_ids: typing.Optional[typing.Sequence[builtins.str]] = None,
21072
+ tags: typing.Optional[typing.Sequence[typing.Union[_CfnTag_f6864754, typing.Dict[builtins.str, typing.Any]]]] = None,
21073
+ ) -> None:
21074
+ '''
21075
+ :param scope: Scope in which this resource is defined.
21076
+ :param id: Construct identifier for this resource (unique in its scope).
21077
+ :param subnet_id: The ID of the subnet in which to create the EC2 Instance Connect Endpoint.
21078
+ :param client_token: Unique, case-sensitive identifier that you provide to ensure the idempotency of the request.
21079
+ :param preserve_client_ip: Indicates whether your client's IP address is preserved as the source. The value is ``true`` or ``false`` . - If ``true`` , your client's IP address is used when you connect to a resource. - If ``false`` , the elastic network interface IP address is used when you connect to a resource. Default: ``true``
21080
+ :param security_group_ids: One or more security groups to associate with the endpoint. If you don't specify a security group, the default security group for your VPC will be associated with the endpoint.
21081
+ :param tags: The tags to apply to the EC2 Instance Connect Endpoint during creation.
21082
+ '''
21083
+ if __debug__:
21084
+ type_hints = typing.get_type_hints(_typecheckingstub__5dd25848f0ceb23edd764d8f4a076cf8f9d22793b6ca99db922a9c410f58ba1f)
21085
+ check_type(argname="argument scope", value=scope, expected_type=type_hints["scope"])
21086
+ check_type(argname="argument id", value=id, expected_type=type_hints["id"])
21087
+ props = CfnInstanceConnectEndpointProps(
21088
+ subnet_id=subnet_id,
21089
+ client_token=client_token,
21090
+ preserve_client_ip=preserve_client_ip,
21091
+ security_group_ids=security_group_ids,
21092
+ tags=tags,
21093
+ )
21094
+
21095
+ jsii.create(self.__class__, self, [scope, id, props])
21096
+
21097
+ @jsii.member(jsii_name="inspect")
21098
+ def inspect(self, inspector: _TreeInspector_488e0dd5) -> None:
21099
+ '''Examines the CloudFormation resource and discloses attributes.
21100
+
21101
+ :param inspector: tree inspector to collect and process attributes.
21102
+ '''
21103
+ if __debug__:
21104
+ type_hints = typing.get_type_hints(_typecheckingstub__5891536cec39a3051ee1e1e6cad74074ab2e104448cf33448a891defadf16b6e)
21105
+ check_type(argname="argument inspector", value=inspector, expected_type=type_hints["inspector"])
21106
+ return typing.cast(None, jsii.invoke(self, "inspect", [inspector]))
21107
+
21108
+ @jsii.member(jsii_name="renderProperties")
21109
+ def _render_properties(
21110
+ self,
21111
+ props: typing.Mapping[builtins.str, typing.Any],
21112
+ ) -> typing.Mapping[builtins.str, typing.Any]:
21113
+ '''
21114
+ :param props: -
21115
+ '''
21116
+ if __debug__:
21117
+ type_hints = typing.get_type_hints(_typecheckingstub__08af6017181d75f497ef7453c702f6e6ac3f87faf252f7dae4c9797af2382847)
21118
+ check_type(argname="argument props", value=props, expected_type=type_hints["props"])
21119
+ return typing.cast(typing.Mapping[builtins.str, typing.Any], jsii.invoke(self, "renderProperties", [props]))
21120
+
21121
+ @jsii.python.classproperty
21122
+ @jsii.member(jsii_name="CFN_RESOURCE_TYPE_NAME")
21123
+ def CFN_RESOURCE_TYPE_NAME(cls) -> builtins.str:
21124
+ '''The CloudFormation resource type name for this resource class.'''
21125
+ return typing.cast(builtins.str, jsii.sget(cls, "CFN_RESOURCE_TYPE_NAME"))
21126
+
21127
+ @builtins.property
21128
+ @jsii.member(jsii_name="attrId")
21129
+ def attr_id(self) -> builtins.str:
21130
+ '''The ID of the EC2 Instance Connect Endpoint.
21131
+
21132
+ :cloudformationAttribute: Id
21133
+ '''
21134
+ return typing.cast(builtins.str, jsii.get(self, "attrId"))
21135
+
21136
+ @builtins.property
21137
+ @jsii.member(jsii_name="cfnProperties")
21138
+ def _cfn_properties(self) -> typing.Mapping[builtins.str, typing.Any]:
21139
+ return typing.cast(typing.Mapping[builtins.str, typing.Any], jsii.get(self, "cfnProperties"))
21140
+
21141
+ @builtins.property
21142
+ @jsii.member(jsii_name="subnetId")
21143
+ def subnet_id(self) -> builtins.str:
21144
+ '''The ID of the subnet in which to create the EC2 Instance Connect Endpoint.'''
21145
+ return typing.cast(builtins.str, jsii.get(self, "subnetId"))
21146
+
21147
+ @subnet_id.setter
21148
+ def subnet_id(self, value: builtins.str) -> None:
21149
+ if __debug__:
21150
+ type_hints = typing.get_type_hints(_typecheckingstub__18fe6754ba2f44060c4a7a2127a488b7e626c5c1761f524fdb756846a1b48e44)
21151
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
21152
+ jsii.set(self, "subnetId", value)
21153
+
21154
+ @builtins.property
21155
+ @jsii.member(jsii_name="clientToken")
21156
+ def client_token(self) -> typing.Optional[builtins.str]:
21157
+ '''Unique, case-sensitive identifier that you provide to ensure the idempotency of the request.'''
21158
+ return typing.cast(typing.Optional[builtins.str], jsii.get(self, "clientToken"))
21159
+
21160
+ @client_token.setter
21161
+ def client_token(self, value: typing.Optional[builtins.str]) -> None:
21162
+ if __debug__:
21163
+ type_hints = typing.get_type_hints(_typecheckingstub__a075309e51f465140660c0455acd101077c2364e286033707a8d1e11f4cc3a6a)
21164
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
21165
+ jsii.set(self, "clientToken", value)
21166
+
21167
+ @builtins.property
21168
+ @jsii.member(jsii_name="preserveClientIp")
21169
+ def preserve_client_ip(
21170
+ self,
21171
+ ) -> typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]]:
21172
+ '''Indicates whether your client's IP address is preserved as the source.
21173
+
21174
+ The value is ``true`` or ``false`` .
21175
+ '''
21176
+ return typing.cast(typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]], jsii.get(self, "preserveClientIp"))
21177
+
21178
+ @preserve_client_ip.setter
21179
+ def preserve_client_ip(
21180
+ self,
21181
+ value: typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]],
21182
+ ) -> None:
21183
+ if __debug__:
21184
+ type_hints = typing.get_type_hints(_typecheckingstub__a3c9af51a15924a206fae71c0b2615bf7be3e42b8bb7722c9e794e13a40973a7)
21185
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
21186
+ jsii.set(self, "preserveClientIp", value)
21187
+
21188
+ @builtins.property
21189
+ @jsii.member(jsii_name="securityGroupIds")
21190
+ def security_group_ids(self) -> typing.Optional[typing.List[builtins.str]]:
21191
+ '''One or more security groups to associate with the endpoint.'''
21192
+ return typing.cast(typing.Optional[typing.List[builtins.str]], jsii.get(self, "securityGroupIds"))
21193
+
21194
+ @security_group_ids.setter
21195
+ def security_group_ids(
21196
+ self,
21197
+ value: typing.Optional[typing.List[builtins.str]],
21198
+ ) -> None:
21199
+ if __debug__:
21200
+ type_hints = typing.get_type_hints(_typecheckingstub__a9a795e386e76f7e1445d90e3d1e800e540f41237f0e797a5e2058cb7b78553e)
21201
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
21202
+ jsii.set(self, "securityGroupIds", value)
21203
+
21204
+ @builtins.property
21205
+ @jsii.member(jsii_name="tags")
21206
+ def tags(self) -> typing.Optional[typing.List[_CfnTag_f6864754]]:
21207
+ '''The tags to apply to the EC2 Instance Connect Endpoint during creation.'''
21208
+ return typing.cast(typing.Optional[typing.List[_CfnTag_f6864754]], jsii.get(self, "tags"))
21209
+
21210
+ @tags.setter
21211
+ def tags(self, value: typing.Optional[typing.List[_CfnTag_f6864754]]) -> None:
21212
+ if __debug__:
21213
+ type_hints = typing.get_type_hints(_typecheckingstub__3dd5921daaa37553fc9b30d074bd3ef6cfc6e9a796db9530140935d020cd87ae)
21214
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
21215
+ jsii.set(self, "tags", value)
21216
+
21217
+
21218
+ @jsii.data_type(
21219
+ jsii_type="aws-cdk-lib.aws_ec2.CfnInstanceConnectEndpointProps",
21220
+ jsii_struct_bases=[],
21221
+ name_mapping={
21222
+ "subnet_id": "subnetId",
21223
+ "client_token": "clientToken",
21224
+ "preserve_client_ip": "preserveClientIp",
21225
+ "security_group_ids": "securityGroupIds",
21226
+ "tags": "tags",
21227
+ },
21228
+ )
21229
+ class CfnInstanceConnectEndpointProps:
21230
+ def __init__(
21231
+ self,
21232
+ *,
21233
+ subnet_id: builtins.str,
21234
+ client_token: typing.Optional[builtins.str] = None,
21235
+ preserve_client_ip: typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]] = None,
21236
+ security_group_ids: typing.Optional[typing.Sequence[builtins.str]] = None,
21237
+ tags: typing.Optional[typing.Sequence[typing.Union[_CfnTag_f6864754, typing.Dict[builtins.str, typing.Any]]]] = None,
21238
+ ) -> None:
21239
+ '''Properties for defining a ``CfnInstanceConnectEndpoint``.
21240
+
21241
+ :param subnet_id: The ID of the subnet in which to create the EC2 Instance Connect Endpoint.
21242
+ :param client_token: Unique, case-sensitive identifier that you provide to ensure the idempotency of the request.
21243
+ :param preserve_client_ip: Indicates whether your client's IP address is preserved as the source. The value is ``true`` or ``false`` . - If ``true`` , your client's IP address is used when you connect to a resource. - If ``false`` , the elastic network interface IP address is used when you connect to a resource. Default: ``true``
21244
+ :param security_group_ids: One or more security groups to associate with the endpoint. If you don't specify a security group, the default security group for your VPC will be associated with the endpoint.
21245
+ :param tags: The tags to apply to the EC2 Instance Connect Endpoint during creation.
21246
+
21247
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-instanceconnectendpoint.html
21248
+ :exampleMetadata: fixture=_generated
21249
+
21250
+ Example::
21251
+
21252
+ # The code below shows an example of how to instantiate this type.
21253
+ # The values are placeholders you should change.
21254
+ from aws_cdk import aws_ec2 as ec2
21255
+
21256
+ cfn_instance_connect_endpoint_props = ec2.CfnInstanceConnectEndpointProps(
21257
+ subnet_id="subnetId",
21258
+
21259
+ # the properties below are optional
21260
+ client_token="clientToken",
21261
+ preserve_client_ip=False,
21262
+ security_group_ids=["securityGroupIds"],
21263
+ tags=[CfnTag(
21264
+ key="key",
21265
+ value="value"
21266
+ )]
21267
+ )
21268
+ '''
21269
+ if __debug__:
21270
+ type_hints = typing.get_type_hints(_typecheckingstub__78086551229af23659e2463ffd3801975d2b07247065af08d90eebf9e7f66ef8)
21271
+ check_type(argname="argument subnet_id", value=subnet_id, expected_type=type_hints["subnet_id"])
21272
+ check_type(argname="argument client_token", value=client_token, expected_type=type_hints["client_token"])
21273
+ check_type(argname="argument preserve_client_ip", value=preserve_client_ip, expected_type=type_hints["preserve_client_ip"])
21274
+ check_type(argname="argument security_group_ids", value=security_group_ids, expected_type=type_hints["security_group_ids"])
21275
+ check_type(argname="argument tags", value=tags, expected_type=type_hints["tags"])
21276
+ self._values: typing.Dict[builtins.str, typing.Any] = {
21277
+ "subnet_id": subnet_id,
21278
+ }
21279
+ if client_token is not None:
21280
+ self._values["client_token"] = client_token
21281
+ if preserve_client_ip is not None:
21282
+ self._values["preserve_client_ip"] = preserve_client_ip
21283
+ if security_group_ids is not None:
21284
+ self._values["security_group_ids"] = security_group_ids
21285
+ if tags is not None:
21286
+ self._values["tags"] = tags
21287
+
21288
+ @builtins.property
21289
+ def subnet_id(self) -> builtins.str:
21290
+ '''The ID of the subnet in which to create the EC2 Instance Connect Endpoint.
21291
+
21292
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-instanceconnectendpoint.html#cfn-ec2-instanceconnectendpoint-subnetid
21293
+ '''
21294
+ result = self._values.get("subnet_id")
21295
+ assert result is not None, "Required property 'subnet_id' is missing"
21296
+ return typing.cast(builtins.str, result)
21297
+
21298
+ @builtins.property
21299
+ def client_token(self) -> typing.Optional[builtins.str]:
21300
+ '''Unique, case-sensitive identifier that you provide to ensure the idempotency of the request.
21301
+
21302
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-instanceconnectendpoint.html#cfn-ec2-instanceconnectendpoint-clienttoken
21303
+ '''
21304
+ result = self._values.get("client_token")
21305
+ return typing.cast(typing.Optional[builtins.str], result)
21306
+
21307
+ @builtins.property
21308
+ def preserve_client_ip(
21309
+ self,
21310
+ ) -> typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]]:
21311
+ '''Indicates whether your client's IP address is preserved as the source. The value is ``true`` or ``false`` .
21312
+
21313
+ - If ``true`` , your client's IP address is used when you connect to a resource.
21314
+ - If ``false`` , the elastic network interface IP address is used when you connect to a resource.
21315
+
21316
+ Default: ``true``
21317
+
21318
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-instanceconnectendpoint.html#cfn-ec2-instanceconnectendpoint-preserveclientip
21319
+ '''
21320
+ result = self._values.get("preserve_client_ip")
21321
+ return typing.cast(typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]], result)
21322
+
21323
+ @builtins.property
21324
+ def security_group_ids(self) -> typing.Optional[typing.List[builtins.str]]:
21325
+ '''One or more security groups to associate with the endpoint.
21326
+
21327
+ If you don't specify a security group, the default security group for your VPC will be associated with the endpoint.
21328
+
21329
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-instanceconnectendpoint.html#cfn-ec2-instanceconnectendpoint-securitygroupids
21330
+ '''
21331
+ result = self._values.get("security_group_ids")
21332
+ return typing.cast(typing.Optional[typing.List[builtins.str]], result)
21333
+
21334
+ @builtins.property
21335
+ def tags(self) -> typing.Optional[typing.List[_CfnTag_f6864754]]:
21336
+ '''The tags to apply to the EC2 Instance Connect Endpoint during creation.
21337
+
21338
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-instanceconnectendpoint.html#cfn-ec2-instanceconnectendpoint-tags
21339
+ '''
21340
+ result = self._values.get("tags")
21341
+ return typing.cast(typing.Optional[typing.List[_CfnTag_f6864754]], result)
21342
+
21343
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
21344
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
21345
+
21346
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
21347
+ return not (rhs == self)
21348
+
21349
+ def __repr__(self) -> str:
21350
+ return "CfnInstanceConnectEndpointProps(%s)" % ", ".join(
21351
+ k + "=" + repr(v) for k, v in self._values.items()
21352
+ )
21353
+
21354
+
20980
21355
  @jsii.data_type(
20981
21356
  jsii_type="aws-cdk-lib.aws_ec2.CfnInstanceProps",
20982
21357
  jsii_struct_bases=[],
@@ -24887,6 +25262,7 @@ class CfnLaunchTemplate(
24887
25262
  )],
24888
25263
  network_card_index=123,
24889
25264
  network_interface_id="networkInterfaceId",
25265
+ primary_ipv6=False,
24890
25266
  private_ip_address="privateIpAddress",
24891
25267
  private_ip_addresses=[ec2.CfnLaunchTemplate.PrivateIpAddProperty(
24892
25268
  primary=False,
@@ -26247,6 +26623,7 @@ class CfnLaunchTemplate(
26247
26623
  "ipv6_prefixes": "ipv6Prefixes",
26248
26624
  "network_card_index": "networkCardIndex",
26249
26625
  "network_interface_id": "networkInterfaceId",
26626
+ "primary_ipv6": "primaryIpv6",
26250
26627
  "private_ip_address": "privateIpAddress",
26251
26628
  "private_ip_addresses": "privateIpAddresses",
26252
26629
  "secondary_private_ip_address_count": "secondaryPrivateIpAddressCount",
@@ -26272,6 +26649,7 @@ class CfnLaunchTemplate(
26272
26649
  ipv6_prefixes: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union["CfnLaunchTemplate.Ipv6PrefixSpecificationProperty", typing.Dict[builtins.str, typing.Any]]]]]] = None,
26273
26650
  network_card_index: typing.Optional[jsii.Number] = None,
26274
26651
  network_interface_id: typing.Optional[builtins.str] = None,
26652
+ primary_ipv6: typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]] = None,
26275
26653
  private_ip_address: typing.Optional[builtins.str] = None,
26276
26654
  private_ip_addresses: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union["CfnLaunchTemplate.PrivateIpAddProperty", typing.Dict[builtins.str, typing.Any]]]]]] = None,
26277
26655
  secondary_private_ip_address_count: typing.Optional[jsii.Number] = None,
@@ -26296,6 +26674,7 @@ class CfnLaunchTemplate(
26296
26674
  :param ipv6_prefixes: One or more IPv6 prefixes to be assigned to the network interface. You cannot use this option if you use the ``Ipv6PrefixCount`` option.
26297
26675
  :param network_card_index: The index of the network card. Some instance types support multiple network cards. The primary network interface must be assigned to network card index 0. The default is network card index 0.
26298
26676
  :param network_interface_id: The ID of the network interface.
26677
+ :param primary_ipv6: The primary IPv6 address of the network interface. When you enable an IPv6 GUA address to be a primary IPv6, the first IPv6 GUA will be made the primary IPv6 address until the instance is terminated or the network interface is detached. For more information about primary IPv6 addresses, see `RunInstances <https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_RunInstances.html>`_ .
26299
26678
  :param private_ip_address: The primary private IPv4 address of the network interface.
26300
26679
  :param private_ip_addresses: One or more private IPv4 addresses.
26301
26680
  :param secondary_private_ip_address_count: The number of secondary private IPv4 addresses to assign to a network interface.
@@ -26332,6 +26711,7 @@ class CfnLaunchTemplate(
26332
26711
  )],
26333
26712
  network_card_index=123,
26334
26713
  network_interface_id="networkInterfaceId",
26714
+ primary_ipv6=False,
26335
26715
  private_ip_address="privateIpAddress",
26336
26716
  private_ip_addresses=[ec2.CfnLaunchTemplate.PrivateIpAddProperty(
26337
26717
  primary=False,
@@ -26358,6 +26738,7 @@ class CfnLaunchTemplate(
26358
26738
  check_type(argname="argument ipv6_prefixes", value=ipv6_prefixes, expected_type=type_hints["ipv6_prefixes"])
26359
26739
  check_type(argname="argument network_card_index", value=network_card_index, expected_type=type_hints["network_card_index"])
26360
26740
  check_type(argname="argument network_interface_id", value=network_interface_id, expected_type=type_hints["network_interface_id"])
26741
+ check_type(argname="argument primary_ipv6", value=primary_ipv6, expected_type=type_hints["primary_ipv6"])
26361
26742
  check_type(argname="argument private_ip_address", value=private_ip_address, expected_type=type_hints["private_ip_address"])
26362
26743
  check_type(argname="argument private_ip_addresses", value=private_ip_addresses, expected_type=type_hints["private_ip_addresses"])
26363
26744
  check_type(argname="argument secondary_private_ip_address_count", value=secondary_private_ip_address_count, expected_type=type_hints["secondary_private_ip_address_count"])
@@ -26393,6 +26774,8 @@ class CfnLaunchTemplate(
26393
26774
  self._values["network_card_index"] = network_card_index
26394
26775
  if network_interface_id is not None:
26395
26776
  self._values["network_interface_id"] = network_interface_id
26777
+ if primary_ipv6 is not None:
26778
+ self._values["primary_ipv6"] = primary_ipv6
26396
26779
  if private_ip_address is not None:
26397
26780
  self._values["private_ip_address"] = private_ip_address
26398
26781
  if private_ip_addresses is not None:
@@ -26571,6 +26954,19 @@ class CfnLaunchTemplate(
26571
26954
  result = self._values.get("network_interface_id")
26572
26955
  return typing.cast(typing.Optional[builtins.str], result)
26573
26956
 
26957
+ @builtins.property
26958
+ def primary_ipv6(
26959
+ self,
26960
+ ) -> typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]]:
26961
+ '''The primary IPv6 address of the network interface.
26962
+
26963
+ When you enable an IPv6 GUA address to be a primary IPv6, the first IPv6 GUA will be made the primary IPv6 address until the instance is terminated or the network interface is detached. For more information about primary IPv6 addresses, see `RunInstances <https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_RunInstances.html>`_ .
26964
+
26965
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-networkinterface.html#cfn-ec2-launchtemplate-networkinterface-primaryipv6
26966
+ '''
26967
+ result = self._values.get("primary_ipv6")
26968
+ return typing.cast(typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]], result)
26969
+
26574
26970
  @builtins.property
26575
26971
  def private_ip_address(self) -> typing.Optional[builtins.str]:
26576
26972
  '''The primary private IPv4 address of the network interface.
@@ -28594,11 +28990,12 @@ class CfnNatGateway(
28594
28990
 
28595
28991
  You can create either a public NAT gateway or a private NAT gateway. The default is a public NAT gateway. If you create a public NAT gateway, you must specify an elastic IP address.
28596
28992
 
28597
- With a NAT gateway, instances in a private subnet can connect to the internet, other AWS services, or an on-premises network using the IP address of the NAT gateway.
28993
+ With a NAT gateway, instances in a private subnet can connect to the internet, other AWS services, or an on-premises network using the IP address of the NAT gateway. For more information, see `NAT Gateways <https://docs.aws.amazon.com/vpc/latest/userguide/vpc-nat-gateway.html>`_ in the *Amazon VPC User Guide* .
28598
28994
 
28599
28995
  If you add a default route ( ``AWS::EC2::Route`` resource) that points to a NAT gateway, specify the NAT gateway ID for the route's ``NatGatewayId`` property.
28996
+ .. epigraph::
28600
28997
 
28601
- For more information, see `NAT Gateways <https://docs.aws.amazon.com/vpc/latest/userguide/vpc-nat-gateway.html>`_ in the *Amazon VPC User Guide* .
28998
+ When you associate an EIP or secondary EIPs with a public NAT gateway, the network border group of the EIPs must match the network border group of the Availability Zone (AZ) that the public NAT gateway is in. If it's not the same, the NAT gateway will fail to launch. You can see the network border group for the subnet's AZ by viewing the details of the subnet. Similarly, you can view the network border group of an EIP by viewing the details of the EIP address. For more information about network border groups and EIPs, see `Allocate an Elastic IP address <https://docs.aws.amazon.com/vpc/latest/userguide/vpc-eips.html#allocate-eip>`_ in the *Amazon VPC User Guide* .
28602
28999
 
28603
29000
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-natgateway.html
28604
29001
  :exampleMetadata: fixture=_generated
@@ -37710,6 +38107,7 @@ class CfnRoute(
37710
38107
  carrier_gateway_id="carrierGatewayId",
37711
38108
  destination_cidr_block="destinationCidrBlock",
37712
38109
  destination_ipv6_cidr_block="destinationIpv6CidrBlock",
38110
+ destination_prefix_list_id="destinationPrefixListId",
37713
38111
  egress_only_internet_gateway_id="egressOnlyInternetGatewayId",
37714
38112
  gateway_id="gatewayId",
37715
38113
  instance_id="instanceId",
@@ -37731,6 +38129,7 @@ class CfnRoute(
37731
38129
  carrier_gateway_id: typing.Optional[builtins.str] = None,
37732
38130
  destination_cidr_block: typing.Optional[builtins.str] = None,
37733
38131
  destination_ipv6_cidr_block: typing.Optional[builtins.str] = None,
38132
+ destination_prefix_list_id: typing.Optional[builtins.str] = None,
37734
38133
  egress_only_internet_gateway_id: typing.Optional[builtins.str] = None,
37735
38134
  gateway_id: typing.Optional[builtins.str] = None,
37736
38135
  instance_id: typing.Optional[builtins.str] = None,
@@ -37748,6 +38147,7 @@ class CfnRoute(
37748
38147
  :param carrier_gateway_id: The ID of the carrier gateway. You can only use this option when the VPC contains a subnet which is associated with a Wavelength Zone.
37749
38148
  :param destination_cidr_block: The IPv4 CIDR address block used for the destination match. Routing decisions are based on the most specific match. We modify the specified CIDR block to its canonical form; for example, if you specify ``100.68.0.18/18`` , we modify it to ``100.68.0.0/18`` .
37750
38149
  :param destination_ipv6_cidr_block: The IPv6 CIDR block used for the destination match. Routing decisions are based on the most specific match.
38150
+ :param destination_prefix_list_id: The ID of managed prefix list, it's a set of one or more CIDR blocks.
37751
38151
  :param egress_only_internet_gateway_id: [IPv6 traffic only] The ID of an egress-only internet gateway.
37752
38152
  :param gateway_id: The ID of an internet gateway or virtual private gateway attached to your VPC.
37753
38153
  :param instance_id: The ID of a NAT instance in your VPC. The operation fails if you specify an instance ID unless exactly one network interface is attached.
@@ -37767,6 +38167,7 @@ class CfnRoute(
37767
38167
  carrier_gateway_id=carrier_gateway_id,
37768
38168
  destination_cidr_block=destination_cidr_block,
37769
38169
  destination_ipv6_cidr_block=destination_ipv6_cidr_block,
38170
+ destination_prefix_list_id=destination_prefix_list_id,
37770
38171
  egress_only_internet_gateway_id=egress_only_internet_gateway_id,
37771
38172
  gateway_id=gateway_id,
37772
38173
  instance_id=instance_id,
@@ -37876,6 +38277,19 @@ class CfnRoute(
37876
38277
  check_type(argname="argument value", value=value, expected_type=type_hints["value"])
37877
38278
  jsii.set(self, "destinationIpv6CidrBlock", value)
37878
38279
 
38280
+ @builtins.property
38281
+ @jsii.member(jsii_name="destinationPrefixListId")
38282
+ def destination_prefix_list_id(self) -> typing.Optional[builtins.str]:
38283
+ '''The ID of managed prefix list, it's a set of one or more CIDR blocks.'''
38284
+ return typing.cast(typing.Optional[builtins.str], jsii.get(self, "destinationPrefixListId"))
38285
+
38286
+ @destination_prefix_list_id.setter
38287
+ def destination_prefix_list_id(self, value: typing.Optional[builtins.str]) -> None:
38288
+ if __debug__:
38289
+ type_hints = typing.get_type_hints(_typecheckingstub__28b2d9e818763b23c1689ff8d32ac779a6cdf2e20e4e1b57f65f0f3474ae8878)
38290
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
38291
+ jsii.set(self, "destinationPrefixListId", value)
38292
+
37879
38293
  @builtins.property
37880
38294
  @jsii.member(jsii_name="egressOnlyInternetGatewayId")
37881
38295
  def egress_only_internet_gateway_id(self) -> typing.Optional[builtins.str]:
@@ -38005,6 +38419,7 @@ class CfnRoute(
38005
38419
  "carrier_gateway_id": "carrierGatewayId",
38006
38420
  "destination_cidr_block": "destinationCidrBlock",
38007
38421
  "destination_ipv6_cidr_block": "destinationIpv6CidrBlock",
38422
+ "destination_prefix_list_id": "destinationPrefixListId",
38008
38423
  "egress_only_internet_gateway_id": "egressOnlyInternetGatewayId",
38009
38424
  "gateway_id": "gatewayId",
38010
38425
  "instance_id": "instanceId",
@@ -38024,6 +38439,7 @@ class CfnRouteProps:
38024
38439
  carrier_gateway_id: typing.Optional[builtins.str] = None,
38025
38440
  destination_cidr_block: typing.Optional[builtins.str] = None,
38026
38441
  destination_ipv6_cidr_block: typing.Optional[builtins.str] = None,
38442
+ destination_prefix_list_id: typing.Optional[builtins.str] = None,
38027
38443
  egress_only_internet_gateway_id: typing.Optional[builtins.str] = None,
38028
38444
  gateway_id: typing.Optional[builtins.str] = None,
38029
38445
  instance_id: typing.Optional[builtins.str] = None,
@@ -38040,6 +38456,7 @@ class CfnRouteProps:
38040
38456
  :param carrier_gateway_id: The ID of the carrier gateway. You can only use this option when the VPC contains a subnet which is associated with a Wavelength Zone.
38041
38457
  :param destination_cidr_block: The IPv4 CIDR address block used for the destination match. Routing decisions are based on the most specific match. We modify the specified CIDR block to its canonical form; for example, if you specify ``100.68.0.18/18`` , we modify it to ``100.68.0.0/18`` .
38042
38458
  :param destination_ipv6_cidr_block: The IPv6 CIDR block used for the destination match. Routing decisions are based on the most specific match.
38459
+ :param destination_prefix_list_id: The ID of managed prefix list, it's a set of one or more CIDR blocks.
38043
38460
  :param egress_only_internet_gateway_id: [IPv6 traffic only] The ID of an egress-only internet gateway.
38044
38461
  :param gateway_id: The ID of an internet gateway or virtual private gateway attached to your VPC.
38045
38462
  :param instance_id: The ID of a NAT instance in your VPC. The operation fails if you specify an instance ID unless exactly one network interface is attached.
@@ -38066,6 +38483,7 @@ class CfnRouteProps:
38066
38483
  carrier_gateway_id="carrierGatewayId",
38067
38484
  destination_cidr_block="destinationCidrBlock",
38068
38485
  destination_ipv6_cidr_block="destinationIpv6CidrBlock",
38486
+ destination_prefix_list_id="destinationPrefixListId",
38069
38487
  egress_only_internet_gateway_id="egressOnlyInternetGatewayId",
38070
38488
  gateway_id="gatewayId",
38071
38489
  instance_id="instanceId",
@@ -38083,6 +38501,7 @@ class CfnRouteProps:
38083
38501
  check_type(argname="argument carrier_gateway_id", value=carrier_gateway_id, expected_type=type_hints["carrier_gateway_id"])
38084
38502
  check_type(argname="argument destination_cidr_block", value=destination_cidr_block, expected_type=type_hints["destination_cidr_block"])
38085
38503
  check_type(argname="argument destination_ipv6_cidr_block", value=destination_ipv6_cidr_block, expected_type=type_hints["destination_ipv6_cidr_block"])
38504
+ check_type(argname="argument destination_prefix_list_id", value=destination_prefix_list_id, expected_type=type_hints["destination_prefix_list_id"])
38086
38505
  check_type(argname="argument egress_only_internet_gateway_id", value=egress_only_internet_gateway_id, expected_type=type_hints["egress_only_internet_gateway_id"])
38087
38506
  check_type(argname="argument gateway_id", value=gateway_id, expected_type=type_hints["gateway_id"])
38088
38507
  check_type(argname="argument instance_id", value=instance_id, expected_type=type_hints["instance_id"])
@@ -38101,6 +38520,8 @@ class CfnRouteProps:
38101
38520
  self._values["destination_cidr_block"] = destination_cidr_block
38102
38521
  if destination_ipv6_cidr_block is not None:
38103
38522
  self._values["destination_ipv6_cidr_block"] = destination_ipv6_cidr_block
38523
+ if destination_prefix_list_id is not None:
38524
+ self._values["destination_prefix_list_id"] = destination_prefix_list_id
38104
38525
  if egress_only_internet_gateway_id is not None:
38105
38526
  self._values["egress_only_internet_gateway_id"] = egress_only_internet_gateway_id
38106
38527
  if gateway_id is not None:
@@ -38163,6 +38584,15 @@ class CfnRouteProps:
38163
38584
  result = self._values.get("destination_ipv6_cidr_block")
38164
38585
  return typing.cast(typing.Optional[builtins.str], result)
38165
38586
 
38587
+ @builtins.property
38588
+ def destination_prefix_list_id(self) -> typing.Optional[builtins.str]:
38589
+ '''The ID of managed prefix list, it's a set of one or more CIDR blocks.
38590
+
38591
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-route.html#cfn-ec2-route-destinationprefixlistid
38592
+ '''
38593
+ result = self._values.get("destination_prefix_list_id")
38594
+ return typing.cast(typing.Optional[builtins.str], result)
38595
+
38166
38596
  @builtins.property
38167
38597
  def egress_only_internet_gateway_id(self) -> typing.Optional[builtins.str]:
38168
38598
  '''[IPv6 traffic only] The ID of an egress-only internet gateway.
@@ -44082,13 +44512,13 @@ class CfnSpotFleet(
44082
44512
  :param launch_template_configs: The launch template and overrides. If you specify ``LaunchTemplateConfigs`` , you can't specify ``LaunchSpecifications`` .
44083
44513
  :param load_balancers_config: One or more Classic Load Balancers and target groups to attach to the Spot Fleet request. Spot Fleet registers the running Spot Instances with the specified Classic Load Balancers and target groups. With Network Load Balancers, Spot Fleet cannot register instances that have the following instance types: C1, CC1, CC2, CG1, CG2, CR1, CS1, G1, G2, HI1, HS1, M1, M2, M3, and T1.
44084
44514
  :param on_demand_allocation_strategy: The order of the launch template overrides to use in fulfilling On-Demand capacity. If you specify ``lowestPrice`` , Spot Fleet uses price to determine the order, launching the lowest price first. If you specify ``prioritized`` , Spot Fleet uses the priority that you assign to each Spot Fleet launch template override, launching the highest priority first. If you do not specify a value, Spot Fleet defaults to ``lowestPrice`` .
44085
- :param on_demand_max_total_price: The maximum amount per hour for On-Demand Instances that you're willing to pay. You can use the ``onDemandMaxTotalPrice`` parameter, the ``spotMaxTotalPrice`` parameter, or both parameters to ensure that your fleet cost does not exceed your budget. If you set a maximum price per hour for the On-Demand Instances and Spot Instances in your request, Spot Fleet will launch instances until it reaches the maximum amount you're willing to pay. When the maximum amount you're willing to pay is reached, the fleet stops launching instances even if it hasn’t met the target capacity.
44515
+ :param on_demand_max_total_price: The maximum amount per hour for On-Demand Instances that you're willing to pay. You can use the ``onDemandMaxTotalPrice`` parameter, the ``spotMaxTotalPrice`` parameter, or both parameters to ensure that your fleet cost does not exceed your budget. If you set a maximum price per hour for the On-Demand Instances and Spot Instances in your request, Spot Fleet will launch instances until it reaches the maximum amount you're willing to pay. When the maximum amount you're willing to pay is reached, the fleet stops launching instances even if it hasn’t met the target capacity. .. epigraph:: If your fleet includes T instances that are configured as ``unlimited`` , and if their average CPU usage exceeds the baseline utilization, you will incur a charge for surplus credits. The ``onDemandMaxTotalPrice`` does not account for surplus credits, and, if you use surplus credits, your final cost might be higher than what you specified for ``onDemandMaxTotalPrice`` . For more information, see `Surplus credits can incur charges <https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/burstable-performance-instances-unlimited-mode-concepts.html#unlimited-mode-surplus-credits>`_ in the *EC2 User Guide* .
44086
44516
  :param on_demand_target_capacity: The number of On-Demand units to request. You can choose to set the target capacity in terms of instances or a performance characteristic that is important to your application workload, such as vCPUs, memory, or I/O. If the request type is ``maintain`` , you can specify a target capacity of 0 and add capacity later.
44087
44517
  :param replace_unhealthy_instances: Indicates whether Spot Fleet should replace unhealthy instances.
44088
44518
  :param spot_maintenance_strategies: The strategies for managing your Spot Instances that are at an elevated risk of being interrupted.
44089
- :param spot_max_total_price: The maximum amount per hour for Spot Instances that you're willing to pay. You can use the ``spotdMaxTotalPrice`` parameter, the ``onDemandMaxTotalPrice`` parameter, or both parameters to ensure that your fleet cost does not exceed your budget. If you set a maximum price per hour for the On-Demand Instances and Spot Instances in your request, Spot Fleet will launch instances until it reaches the maximum amount you're willing to pay. When the maximum amount you're willing to pay is reached, the fleet stops launching instances even if it hasn’t met the target capacity.
44519
+ :param spot_max_total_price: The maximum amount per hour for Spot Instances that you're willing to pay. You can use the ``spotMaxTotalPrice`` parameter, the ``onDemandMaxTotalPrice`` parameter, or both parameters to ensure that your fleet cost does not exceed your budget. If you set a maximum price per hour for the On-Demand Instances and Spot Instances in your request, Spot Fleet will launch instances until it reaches the maximum amount you're willing to pay. When the maximum amount you're willing to pay is reached, the fleet stops launching instances even if it hasn’t met the target capacity. .. epigraph:: If your fleet includes T instances that are configured as ``unlimited`` , and if their average CPU usage exceeds the baseline utilization, you will incur a charge for surplus credits. The ``spotMaxTotalPrice`` does not account for surplus credits, and, if you use surplus credits, your final cost might be higher than what you specified for ``spotMaxTotalPrice`` . For more information, see `Surplus credits can incur charges <https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/burstable-performance-instances-unlimited-mode-concepts.html#unlimited-mode-surplus-credits>`_ in the *EC2 User Guide* .
44090
44520
  :param spot_price: The maximum price per unit hour that you are willing to pay for a Spot Instance. We do not recommend using this parameter because it can lead to increased interruptions. If you do not specify this parameter, you will pay the current Spot price. .. epigraph:: If you specify a maximum price, your instances will be interrupted more frequently than if you do not specify this parameter.
44091
- :param tag_specifications: The key-value pair for tagging the Spot Fleet request on creation. The value for ``ResourceType`` must be ``spot-fleet-request`` , otherwise the Spot Fleet request fails. To tag instances at launch, specify the tags in the `launch template <https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-launch-templates.html#create-launch-template>`_ (valid only if you use ``LaunchTemplateConfigs`` ) or in the ``[SpotFleetTagSpecification](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_SpotFleetTagSpecification.html)`` (valid only if you use ``LaunchSpecifications`` ). For information about tagging after launch, see `Tagging Your Resources <https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Using_Tags.html#tag-resources>`_ .
44521
+ :param tag_specifications: The key-value pair for tagging the Spot Fleet request on creation. The value for ``ResourceType`` must be ``spot-fleet-request`` , otherwise the Spot Fleet request fails. To tag instances at launch, specify the tags in the `launch template <https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-launch-templates.html#create-launch-template>`_ (valid only if you use ``LaunchTemplateConfigs`` ) or in the ``[SpotFleetTagSpecification](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_SpotFleetTagSpecification.html)`` (valid only if you use ``LaunchSpecifications`` ). For information about tagging after launch, see `Tag your resources <https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Using_Tags.html#tag-resources>`_ .
44092
44522
  :param target_capacity_unit_type: The unit for the target capacity. ``TargetCapacityUnitType`` can only be specified when ``InstanceRequirements`` is specified. Default: ``units`` (translates to number of instances)
44093
44523
  :param terminate_instances_with_expiration: Indicates whether running Spot Instances are terminated when the Spot Fleet request expires.
44094
44524
  :param type: The type of request. Indicates whether the Spot Fleet only requests the target capacity or also attempts to maintain it. When this value is ``request`` , the Spot Fleet only places the required requests. It does not attempt to replenish Spot Instances if capacity is diminished, nor does it submit requests in alternative Spot pools if capacity is not available. When this value is ``maintain`` , the Spot Fleet maintains the target capacity. The Spot Fleet places the required requests to meet capacity and automatically replenishes any interrupted instances. Default: ``maintain`` . ``instant`` is listed but is not used by Spot Fleet.
@@ -44558,6 +44988,9 @@ class CfnSpotFleet(
44558
44988
  '''The maximum amount per hour for On-Demand Instances that you're willing to pay.
44559
44989
 
44560
44990
  You can use the ``onDemandMaxTotalPrice`` parameter, the ``spotMaxTotalPrice`` parameter, or both parameters to ensure that your fleet cost does not exceed your budget. If you set a maximum price per hour for the On-Demand Instances and Spot Instances in your request, Spot Fleet will launch instances until it reaches the maximum amount you're willing to pay. When the maximum amount you're willing to pay is reached, the fleet stops launching instances even if it hasn’t met the target capacity.
44991
+ .. epigraph::
44992
+
44993
+ If your fleet includes T instances that are configured as ``unlimited`` , and if their average CPU usage exceeds the baseline utilization, you will incur a charge for surplus credits. The ``onDemandMaxTotalPrice`` does not account for surplus credits, and, if you use surplus credits, your final cost might be higher than what you specified for ``onDemandMaxTotalPrice`` . For more information, see `Surplus credits can incur charges <https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/burstable-performance-instances-unlimited-mode-concepts.html#unlimited-mode-surplus-credits>`_ in the *EC2 User Guide* .
44561
44994
 
44562
44995
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-spotfleetrequestconfigdata.html#cfn-ec2-spotfleet-spotfleetrequestconfigdata-ondemandmaxtotalprice
44563
44996
  '''
@@ -44601,7 +45034,10 @@ class CfnSpotFleet(
44601
45034
  def spot_max_total_price(self) -> typing.Optional[builtins.str]:
44602
45035
  '''The maximum amount per hour for Spot Instances that you're willing to pay.
44603
45036
 
44604
- You can use the ``spotdMaxTotalPrice`` parameter, the ``onDemandMaxTotalPrice`` parameter, or both parameters to ensure that your fleet cost does not exceed your budget. If you set a maximum price per hour for the On-Demand Instances and Spot Instances in your request, Spot Fleet will launch instances until it reaches the maximum amount you're willing to pay. When the maximum amount you're willing to pay is reached, the fleet stops launching instances even if it hasn’t met the target capacity.
45037
+ You can use the ``spotMaxTotalPrice`` parameter, the ``onDemandMaxTotalPrice`` parameter, or both parameters to ensure that your fleet cost does not exceed your budget. If you set a maximum price per hour for the On-Demand Instances and Spot Instances in your request, Spot Fleet will launch instances until it reaches the maximum amount you're willing to pay. When the maximum amount you're willing to pay is reached, the fleet stops launching instances even if it hasn’t met the target capacity.
45038
+ .. epigraph::
45039
+
45040
+ If your fleet includes T instances that are configured as ``unlimited`` , and if their average CPU usage exceeds the baseline utilization, you will incur a charge for surplus credits. The ``spotMaxTotalPrice`` does not account for surplus credits, and, if you use surplus credits, your final cost might be higher than what you specified for ``spotMaxTotalPrice`` . For more information, see `Surplus credits can incur charges <https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/burstable-performance-instances-unlimited-mode-concepts.html#unlimited-mode-surplus-credits>`_ in the *EC2 User Guide* .
44605
45041
 
44606
45042
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-spotfleetrequestconfigdata.html#cfn-ec2-spotfleet-spotfleetrequestconfigdata-spotmaxtotalprice
44607
45043
  '''
@@ -44628,7 +45064,7 @@ class CfnSpotFleet(
44628
45064
  ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, "CfnSpotFleet.SpotFleetTagSpecificationProperty"]]]]:
44629
45065
  '''The key-value pair for tagging the Spot Fleet request on creation.
44630
45066
 
44631
- The value for ``ResourceType`` must be ``spot-fleet-request`` , otherwise the Spot Fleet request fails. To tag instances at launch, specify the tags in the `launch template <https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-launch-templates.html#create-launch-template>`_ (valid only if you use ``LaunchTemplateConfigs`` ) or in the ``[SpotFleetTagSpecification](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_SpotFleetTagSpecification.html)`` (valid only if you use ``LaunchSpecifications`` ). For information about tagging after launch, see `Tagging Your Resources <https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Using_Tags.html#tag-resources>`_ .
45067
+ The value for ``ResourceType`` must be ``spot-fleet-request`` , otherwise the Spot Fleet request fails. To tag instances at launch, specify the tags in the `launch template <https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-launch-templates.html#create-launch-template>`_ (valid only if you use ``LaunchTemplateConfigs`` ) or in the ``[SpotFleetTagSpecification](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_SpotFleetTagSpecification.html)`` (valid only if you use ``LaunchSpecifications`` ). For information about tagging after launch, see `Tag your resources <https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Using_Tags.html#tag-resources>`_ .
44632
45068
 
44633
45069
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-spotfleetrequestconfigdata.html#cfn-ec2-spotfleet-spotfleetrequestconfigdata-tagspecifications
44634
45070
  '''
@@ -51699,12 +52135,13 @@ class CfnTransitGatewayRouteTable(
51699
52135
  return typing.cast(builtins.str, jsii.sget(cls, "CFN_RESOURCE_TYPE_NAME"))
51700
52136
 
51701
52137
  @builtins.property
51702
- @jsii.member(jsii_name="attrId")
51703
- def attr_id(self) -> builtins.str:
51704
- '''
51705
- :cloudformationAttribute: Id
52138
+ @jsii.member(jsii_name="attrTransitGatewayRouteTableId")
52139
+ def attr_transit_gateway_route_table_id(self) -> builtins.str:
52140
+ '''Transit Gateway Route Table primary identifier.
52141
+
52142
+ :cloudformationAttribute: TransitGatewayRouteTableId
51706
52143
  '''
51707
- return typing.cast(builtins.str, jsii.get(self, "attrId"))
52144
+ return typing.cast(builtins.str, jsii.get(self, "attrTransitGatewayRouteTableId"))
51708
52145
 
51709
52146
  @builtins.property
51710
52147
  @jsii.member(jsii_name="cfnProperties")
@@ -68837,18 +69274,12 @@ class InstanceClass(enum.Enum):
68837
69274
  # vpc: ec2.Vpc
68838
69275
 
68839
69276
  cluster = rds.DatabaseCluster(self, "Database",
68840
- engine=rds.DatabaseClusterEngine.aurora_mysql(version=rds.AuroraMysqlEngineVersion.VER_2_08_1),
68841
- writer=rds.ClusterInstance.provisioned("writer",
68842
- instance_type=ec2.InstanceType.of(ec2.InstanceClass.R6G, ec2.InstanceSize.XLARGE4)
69277
+ engine=rds.DatabaseClusterEngine.aurora_mysql(version=rds.AuroraMysqlEngineVersion.VER_3_01_0),
69278
+ writer=rds.ClusterInstance.provisioned("Instance",
69279
+ instance_type=ec2.InstanceType.of(ec2.InstanceClass.BURSTABLE3, ec2.InstanceSize.SMALL)
68843
69280
  ),
68844
- serverless_v2_min_capacity=6.5,
68845
- serverless_v2_max_capacity=64,
68846
- readers=[
68847
- # will be put in promotion tier 1 and will scale with the writer
68848
- rds.ClusterInstance.serverless_v2("reader1", scale_with_writer=True),
68849
- # will be put in promotion tier 2 and will not scale with the writer
68850
- rds.ClusterInstance.serverless_v2("reader2")
68851
- ],
69281
+ readers=[rds.ClusterInstance.provisioned("reader")],
69282
+ instance_update_behaviour=rds.InstanceUpdateBehaviour.ROLLING, # Optional - defaults to rds.InstanceUpdateBehaviour.BULK
68852
69283
  vpc=vpc
68853
69284
  )
68854
69285
  '''
@@ -69247,6 +69678,14 @@ class InstanceClass(enum.Enum):
69247
69678
 
69248
69679
  This instance class is currently only available in US East (Ohio), US East (N. Virginia), US West (Oregon), and Europe (Ireland).
69249
69680
  '''
69681
+ STANDARD7_INTEL = "STANDARD7_INTEL"
69682
+ '''Standard instances with high memory and compute capacity based on Intel Xeon Scalable (Sapphire Rapids) processors, 7th generation.'''
69683
+ M7I = "M7I"
69684
+ '''Standard instances with high memory and compute capacity based on Intel Xeon Scalable (Sapphire Rapids) processors, 7th generation.'''
69685
+ STANDARD7_INTEL_FLEX = "STANDARD7_INTEL_FLEX"
69686
+ '''Flexible instances with high memory and compute capacity based on Intel Xeon Scalable (Sapphire Rapids) processors, 7th generation The M7i-Flex instances deliver a baseline of 40% CPU performance, and can scale up to full CPU performance 95% of the time.'''
69687
+ M7I_FLEX = "M7I_FLEX"
69688
+ '''Flexible instances with high memory and compute capacity based on Intel Xeon Scalable (Sapphire Rapids) processors, 7th generation The M7i-Flex instances deliver a baseline of 40% CPU performance, and can scale up to full CPU performance 95% of the time.'''
69250
69689
  HIGH_COMPUTE_MEMORY1 = "HIGH_COMPUTE_MEMORY1"
69251
69690
  '''High memory and compute capacity instances, 1st generation.'''
69252
69691
  Z1D = "Z1D"
@@ -69974,15 +70413,17 @@ class InstanceType(
69974
70413
 
69975
70414
  # vpc: ec2.Vpc
69976
70415
 
69977
-
69978
- my_security_group = ec2.SecurityGroup(self, "SecurityGroup", vpc=vpc)
69979
- autoscaling.AutoScalingGroup(self, "ASG",
69980
- vpc=vpc,
69981
- instance_type=ec2.InstanceType.of(ec2.InstanceClass.BURSTABLE2, ec2.InstanceSize.MICRO),
69982
- machine_image=ec2.MachineImage.latest_amazon_linux(
69983
- generation=ec2.AmazonLinuxGeneration.AMAZON_LINUX_2
70416
+ cluster = docdb.DatabaseCluster(self, "Database",
70417
+ master_user=docdb.Login(
70418
+ username="myuser", # NOTE: 'admin' is reserved by DocumentDB
70419
+ exclude_characters="\"@/:", # optional, defaults to the set "\"@/" and is also used for eventually created rotations
70420
+ secret_name="/myapp/mydocdb/masteruser"
69984
70421
  ),
69985
- security_group=my_security_group
70422
+ instance_type=ec2.InstanceType.of(ec2.InstanceClass.MEMORY5, ec2.InstanceSize.LARGE),
70423
+ vpc_subnets=ec2.SubnetSelection(
70424
+ subnet_type=ec2.SubnetType.PUBLIC
70425
+ ),
70426
+ vpc=vpc
69986
70427
  )
69987
70428
  '''
69988
70429
 
@@ -73540,9 +73981,7 @@ class MachineImage(
73540
73981
  autoscaling.AutoScalingGroup(self, "ASG",
73541
73982
  vpc=vpc,
73542
73983
  instance_type=ec2.InstanceType.of(ec2.InstanceClass.BURSTABLE2, ec2.InstanceSize.MICRO),
73543
- machine_image=ec2.MachineImage.latest_amazon_linux(
73544
- generation=ec2.AmazonLinuxGeneration.AMAZON_LINUX_2
73545
- ),
73984
+ machine_image=ec2.MachineImage.latest_amazon_linux2(),
73546
73985
  security_group=my_security_group
73547
73986
  )
73548
73987
  '''
@@ -77395,19 +77834,15 @@ class SecurityGroupProps:
77395
77834
  # vpc: ec2.Vpc
77396
77835
 
77397
77836
 
77398
- sg1 = ec2.SecurityGroup(self, "sg1",
77399
- vpc=vpc
77400
- )
77401
- sg2 = ec2.SecurityGroup(self, "sg2",
77402
- vpc=vpc
77403
- )
77404
-
77405
- launch_template = ec2.LaunchTemplate(self, "LaunchTemplate",
77406
- machine_image=ec2.MachineImage.latest_amazon_linux2023(),
77407
- security_group=sg1
77837
+ security_group1 = ec2.SecurityGroup(self, "SecurityGroup1", vpc=vpc)
77838
+ lb = elbv2.ApplicationLoadBalancer(self, "LB",
77839
+ vpc=vpc,
77840
+ internet_facing=True,
77841
+ security_group=security_group1
77408
77842
  )
77409
77843
 
77410
- launch_template.add_security_group(sg2)
77844
+ security_group2 = ec2.SecurityGroup(self, "SecurityGroup2", vpc=vpc)
77845
+ lb.add_security_group(security_group2)
77411
77846
  '''
77412
77847
  if __debug__:
77413
77848
  type_hints = typing.get_type_hints(_typecheckingstub__4e55e0c52b51f92e83b1f8d6b7a5b22268d0369a14dab808b8f2f5f233e5b622)
@@ -88356,6 +88791,8 @@ __all__ = [
88356
88791
  "CfnIPAMScope",
88357
88792
  "CfnIPAMScopeProps",
88358
88793
  "CfnInstance",
88794
+ "CfnInstanceConnectEndpoint",
88795
+ "CfnInstanceConnectEndpointProps",
88359
88796
  "CfnInstanceProps",
88360
88797
  "CfnInternetGateway",
88361
88798
  "CfnInternetGatewayProps",
@@ -90346,6 +90783,7 @@ def _typecheckingstub__72358d22276e2eb5cd641ca06942afc99075017aabb8f3000a9b07b53
90346
90783
  *,
90347
90784
  resource_id: builtins.str,
90348
90785
  resource_type: builtins.str,
90786
+ deliver_cross_account_role: typing.Optional[builtins.str] = None,
90349
90787
  deliver_logs_permission_arn: typing.Optional[builtins.str] = None,
90350
90788
  destination_options: typing.Any = None,
90351
90789
  log_destination: typing.Optional[builtins.str] = None,
@@ -90383,6 +90821,12 @@ def _typecheckingstub__d21f005f9535582c1f46053bf4e82c2bbabff7cded5a69095501539e5
90383
90821
  """Type checking stubs"""
90384
90822
  pass
90385
90823
 
90824
+ def _typecheckingstub__69de10af6e71879a605a8ff40c4836ff6e89ad4220088a0599668acc26625a53(
90825
+ value: typing.Optional[builtins.str],
90826
+ ) -> None:
90827
+ """Type checking stubs"""
90828
+ pass
90829
+
90386
90830
  def _typecheckingstub__b921f8c4adf8ca7781a1e0174a51a4017191049028a6f93859d3f656946c7c3f(
90387
90831
  value: typing.Optional[builtins.str],
90388
90832
  ) -> None:
@@ -90450,6 +90894,7 @@ def _typecheckingstub__b70808589b9adfc66e939b8c87268607775dc0e479da5f4bed72c3ba8
90450
90894
  *,
90451
90895
  resource_id: builtins.str,
90452
90896
  resource_type: builtins.str,
90897
+ deliver_cross_account_role: typing.Optional[builtins.str] = None,
90453
90898
  deliver_logs_permission_arn: typing.Optional[builtins.str] = None,
90454
90899
  destination_options: typing.Any = None,
90455
90900
  log_destination: typing.Optional[builtins.str] = None,
@@ -91536,6 +91981,72 @@ def _typecheckingstub__b979ff4b2e7bc79429f0409f1fb60a5125a9cda71770a0324082ebc0a
91536
91981
  """Type checking stubs"""
91537
91982
  pass
91538
91983
 
91984
+ def _typecheckingstub__5dd25848f0ceb23edd764d8f4a076cf8f9d22793b6ca99db922a9c410f58ba1f(
91985
+ scope: _constructs_77d1e7e8.Construct,
91986
+ id: builtins.str,
91987
+ *,
91988
+ subnet_id: builtins.str,
91989
+ client_token: typing.Optional[builtins.str] = None,
91990
+ preserve_client_ip: typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]] = None,
91991
+ security_group_ids: typing.Optional[typing.Sequence[builtins.str]] = None,
91992
+ tags: typing.Optional[typing.Sequence[typing.Union[_CfnTag_f6864754, typing.Dict[builtins.str, typing.Any]]]] = None,
91993
+ ) -> None:
91994
+ """Type checking stubs"""
91995
+ pass
91996
+
91997
+ def _typecheckingstub__5891536cec39a3051ee1e1e6cad74074ab2e104448cf33448a891defadf16b6e(
91998
+ inspector: _TreeInspector_488e0dd5,
91999
+ ) -> None:
92000
+ """Type checking stubs"""
92001
+ pass
92002
+
92003
+ def _typecheckingstub__08af6017181d75f497ef7453c702f6e6ac3f87faf252f7dae4c9797af2382847(
92004
+ props: typing.Mapping[builtins.str, typing.Any],
92005
+ ) -> None:
92006
+ """Type checking stubs"""
92007
+ pass
92008
+
92009
+ def _typecheckingstub__18fe6754ba2f44060c4a7a2127a488b7e626c5c1761f524fdb756846a1b48e44(
92010
+ value: builtins.str,
92011
+ ) -> None:
92012
+ """Type checking stubs"""
92013
+ pass
92014
+
92015
+ def _typecheckingstub__a075309e51f465140660c0455acd101077c2364e286033707a8d1e11f4cc3a6a(
92016
+ value: typing.Optional[builtins.str],
92017
+ ) -> None:
92018
+ """Type checking stubs"""
92019
+ pass
92020
+
92021
+ def _typecheckingstub__a3c9af51a15924a206fae71c0b2615bf7be3e42b8bb7722c9e794e13a40973a7(
92022
+ value: typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]],
92023
+ ) -> None:
92024
+ """Type checking stubs"""
92025
+ pass
92026
+
92027
+ def _typecheckingstub__a9a795e386e76f7e1445d90e3d1e800e540f41237f0e797a5e2058cb7b78553e(
92028
+ value: typing.Optional[typing.List[builtins.str]],
92029
+ ) -> None:
92030
+ """Type checking stubs"""
92031
+ pass
92032
+
92033
+ def _typecheckingstub__3dd5921daaa37553fc9b30d074bd3ef6cfc6e9a796db9530140935d020cd87ae(
92034
+ value: typing.Optional[typing.List[_CfnTag_f6864754]],
92035
+ ) -> None:
92036
+ """Type checking stubs"""
92037
+ pass
92038
+
92039
+ def _typecheckingstub__78086551229af23659e2463ffd3801975d2b07247065af08d90eebf9e7f66ef8(
92040
+ *,
92041
+ subnet_id: builtins.str,
92042
+ client_token: typing.Optional[builtins.str] = None,
92043
+ preserve_client_ip: typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]] = None,
92044
+ security_group_ids: typing.Optional[typing.Sequence[builtins.str]] = None,
92045
+ tags: typing.Optional[typing.Sequence[typing.Union[_CfnTag_f6864754, typing.Dict[builtins.str, typing.Any]]]] = None,
92046
+ ) -> None:
92047
+ """Type checking stubs"""
92048
+ pass
92049
+
91539
92050
  def _typecheckingstub__605ba8f22e222289aa0ed61b03690aaf9a4e8eabb86a9ba2b63d10f2bbee2305(
91540
92051
  *,
91541
92052
  additional_info: typing.Optional[builtins.str] = None,
@@ -92031,6 +92542,7 @@ def _typecheckingstub__c599e12c3de63926f26bb5da3afad64e8c60b24c3b563faa2986e88c1
92031
92542
  ipv6_prefixes: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union[CfnLaunchTemplate.Ipv6PrefixSpecificationProperty, typing.Dict[builtins.str, typing.Any]]]]]] = None,
92032
92543
  network_card_index: typing.Optional[jsii.Number] = None,
92033
92544
  network_interface_id: typing.Optional[builtins.str] = None,
92545
+ primary_ipv6: typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]] = None,
92034
92546
  private_ip_address: typing.Optional[builtins.str] = None,
92035
92547
  private_ip_addresses: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union[CfnLaunchTemplate.PrivateIpAddProperty, typing.Dict[builtins.str, typing.Any]]]]]] = None,
92036
92548
  secondary_private_ip_address_count: typing.Optional[jsii.Number] = None,
@@ -93567,6 +94079,7 @@ def _typecheckingstub__418aadfc2c6984f0ac75cd67e36ca76f23d9cf7bc23846cf55d7b3cdb
93567
94079
  carrier_gateway_id: typing.Optional[builtins.str] = None,
93568
94080
  destination_cidr_block: typing.Optional[builtins.str] = None,
93569
94081
  destination_ipv6_cidr_block: typing.Optional[builtins.str] = None,
94082
+ destination_prefix_list_id: typing.Optional[builtins.str] = None,
93570
94083
  egress_only_internet_gateway_id: typing.Optional[builtins.str] = None,
93571
94084
  gateway_id: typing.Optional[builtins.str] = None,
93572
94085
  instance_id: typing.Optional[builtins.str] = None,
@@ -93616,6 +94129,12 @@ def _typecheckingstub__9053d56266f2ecaa5d8209e05a5af048fd6c8540eece0de592fa61759
93616
94129
  """Type checking stubs"""
93617
94130
  pass
93618
94131
 
94132
+ def _typecheckingstub__28b2d9e818763b23c1689ff8d32ac779a6cdf2e20e4e1b57f65f0f3474ae8878(
94133
+ value: typing.Optional[builtins.str],
94134
+ ) -> None:
94135
+ """Type checking stubs"""
94136
+ pass
94137
+
93619
94138
  def _typecheckingstub__d8f8dcc844a05743d981c217d51303c0c4cc6e46dadd5339a6eb261fe327b128(
93620
94139
  value: typing.Optional[builtins.str],
93621
94140
  ) -> None:
@@ -93676,6 +94195,7 @@ def _typecheckingstub__f90e7814d59b7c562ab4b24d54461eba6a4c88fbd5451ba2b2b0adf84
93676
94195
  carrier_gateway_id: typing.Optional[builtins.str] = None,
93677
94196
  destination_cidr_block: typing.Optional[builtins.str] = None,
93678
94197
  destination_ipv6_cidr_block: typing.Optional[builtins.str] = None,
94198
+ destination_prefix_list_id: typing.Optional[builtins.str] = None,
93679
94199
  egress_only_internet_gateway_id: typing.Optional[builtins.str] = None,
93680
94200
  gateway_id: typing.Optional[builtins.str] = None,
93681
94201
  instance_id: typing.Optional[builtins.str] = None,