aws-cdk-lib 2.139.1__py3-none-any.whl → 2.141.0__py3-none-any.whl

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

Potentially problematic release.


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

Files changed (60) hide show
  1. aws_cdk/__init__.py +8 -0
  2. aws_cdk/_jsii/__init__.py +1 -1
  3. aws_cdk/_jsii/{aws-cdk-lib@2.139.1.jsii.tgz → aws-cdk-lib@2.141.0.jsii.tgz} +0 -0
  4. aws_cdk/aws_acmpca/__init__.py +70 -56
  5. aws_cdk/aws_apigateway/__init__.py +126 -53
  6. aws_cdk/aws_applicationautoscaling/__init__.py +1 -4
  7. aws_cdk/aws_arczonalshift/__init__.py +49 -44
  8. aws_cdk/aws_bedrock/__init__.py +2829 -147
  9. aws_cdk/aws_cloudfront/__init__.py +51 -9
  10. aws_cdk/aws_cloudtrail/__init__.py +13 -4
  11. aws_cdk/aws_codecommit/__init__.py +72 -46
  12. aws_cdk/aws_connectcampaigns/__init__.py +34 -4
  13. aws_cdk/aws_datasync/__init__.py +96 -75
  14. aws_cdk/aws_dms/__init__.py +0 -269
  15. aws_cdk/aws_dynamodb/__init__.py +410 -0
  16. aws_cdk/aws_ec2/__init__.py +239 -84
  17. aws_cdk/aws_ecr/__init__.py +32 -7
  18. aws_cdk/aws_ecs/__init__.py +2 -4
  19. aws_cdk/aws_efs/__init__.py +16 -2
  20. aws_cdk/aws_eks/__init__.py +57 -0
  21. aws_cdk/aws_entityresolution/__init__.py +6 -2
  22. aws_cdk/aws_events/__init__.py +115 -0
  23. aws_cdk/aws_events_targets/__init__.py +15 -0
  24. aws_cdk/aws_fis/__init__.py +2 -1
  25. aws_cdk/aws_fms/__init__.py +7 -7
  26. aws_cdk/aws_gamelift/__init__.py +1984 -107
  27. aws_cdk/aws_globalaccelerator/__init__.py +20 -16
  28. aws_cdk/aws_iam/__init__.py +2 -2
  29. aws_cdk/aws_ivs/__init__.py +1 -3
  30. aws_cdk/aws_kinesis/__init__.py +21 -0
  31. aws_cdk/aws_kinesisvideo/__init__.py +6 -4
  32. aws_cdk/aws_kms/__init__.py +33 -6
  33. aws_cdk/aws_lambda/__init__.py +0 -9
  34. aws_cdk/aws_location/__init__.py +8 -4
  35. aws_cdk/aws_medialive/__init__.py +444 -3
  36. aws_cdk/aws_oam/__init__.py +45 -11
  37. aws_cdk/aws_omics/__init__.py +4 -4
  38. aws_cdk/aws_paymentcryptography/__init__.py +1155 -0
  39. aws_cdk/aws_personalize/__init__.py +8 -2
  40. aws_cdk/aws_pinpoint/__init__.py +7 -5
  41. aws_cdk/aws_qbusiness/__init__.py +5583 -0
  42. aws_cdk/aws_quicksight/__init__.py +10063 -1450
  43. aws_cdk/aws_rds/__init__.py +77 -5
  44. aws_cdk/aws_redshiftserverless/__init__.py +13 -9
  45. aws_cdk/aws_route53/__init__.py +350 -0
  46. aws_cdk/aws_route53profiles/__init__.py +1048 -0
  47. aws_cdk/aws_s3/__init__.py +1 -1
  48. aws_cdk/aws_sagemaker/__init__.py +30 -30
  49. aws_cdk/aws_ses/__init__.py +9 -9
  50. aws_cdk/aws_transfer/__init__.py +102 -37
  51. aws_cdk/aws_voiceid/__init__.py +2 -2
  52. aws_cdk/aws_workspacesweb/__init__.py +92 -6
  53. aws_cdk/custom_resources/__init__.py +23 -2
  54. aws_cdk/cx_api/__init__.py +16 -0
  55. {aws_cdk_lib-2.139.1.dist-info → aws_cdk_lib-2.141.0.dist-info}/METADATA +2 -2
  56. {aws_cdk_lib-2.139.1.dist-info → aws_cdk_lib-2.141.0.dist-info}/RECORD +60 -57
  57. {aws_cdk_lib-2.139.1.dist-info → aws_cdk_lib-2.141.0.dist-info}/LICENSE +0 -0
  58. {aws_cdk_lib-2.139.1.dist-info → aws_cdk_lib-2.141.0.dist-info}/NOTICE +0 -0
  59. {aws_cdk_lib-2.139.1.dist-info → aws_cdk_lib-2.141.0.dist-info}/WHEEL +0 -0
  60. {aws_cdk_lib-2.139.1.dist-info → aws_cdk_lib-2.141.0.dist-info}/top_level.txt +0 -0
@@ -1585,6 +1585,23 @@ ec2.CloudFormationInit.from_elements(
1585
1585
  ))
1586
1586
  ```
1587
1587
 
1588
+ You can use the `environmentVariables` or `environmentFiles` parameters to specify environment variables
1589
+ for your services:
1590
+
1591
+ ```python
1592
+ ec2.InitConfig([
1593
+ ec2.InitFile.from_string("/myvars.env", "VAR_FROM_FILE=\"VAR_FROM_FILE\""),
1594
+ ec2.InitService.systemd_config_file("myapp",
1595
+ command="/usr/bin/python3 -m http.server 8080",
1596
+ cwd="/var/www/html",
1597
+ environment_variables={
1598
+ "MY_VAR": "MY_VAR"
1599
+ },
1600
+ environment_files=["/myvars.env"]
1601
+ )
1602
+ ])
1603
+ ```
1604
+
1588
1605
  ### Bastion Hosts
1589
1606
 
1590
1607
  A bastion host functions as an instance used to access servers and resources in a VPC without open up the complete VPC on a network level.
@@ -1684,6 +1701,30 @@ ec2.Instance(self, "Instance",
1684
1701
  )
1685
1702
  ```
1686
1703
 
1704
+ #### EBS Optimized Instances
1705
+
1706
+ An Amazon EBS–optimized instance uses an optimized configuration stack and provides additional, dedicated capacity for Amazon EBS I/O. This optimization provides the best performance for your EBS volumes by minimizing contention between Amazon EBS I/O and other traffic from your instance.
1707
+
1708
+ Depending on the instance type, this features is enabled by default while others require explicit activation. Please refer to the [documentation](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-optimized.html) for details.
1709
+
1710
+ ```python
1711
+ # vpc: ec2.Vpc
1712
+ # instance_type: ec2.InstanceType
1713
+ # machine_image: ec2.IMachineImage
1714
+
1715
+
1716
+ ec2.Instance(self, "Instance",
1717
+ vpc=vpc,
1718
+ instance_type=instance_type,
1719
+ machine_image=machine_image,
1720
+ ebs_optimized=True,
1721
+ block_devices=[ec2.BlockDevice(
1722
+ device_name="/dev/xvda",
1723
+ volume=ec2.BlockDeviceVolume.ebs(8)
1724
+ )]
1725
+ )
1726
+ ```
1727
+
1687
1728
  ### Volumes
1688
1729
 
1689
1730
  Whereas a `BlockDeviceVolume` is an EBS volume that is created and destroyed as part of the creation and destruction of a specific instance. A `Volume` is for when you want an EBS volume separate from any particular instance. A `Volume` is an EBS block device that can be attached to, or detached from, any instance at any time. Some types of `Volume`s can also be attached to multiple instances at the same time to allow you to have shared storage between those instances.
@@ -5219,17 +5260,11 @@ class BlockDeviceVolume(
5219
5260
  vpc=vpc,
5220
5261
  instance_type=instance_type,
5221
5262
  machine_image=machine_image,
5222
-
5223
- # ...
5224
-
5263
+ ebs_optimized=True,
5225
5264
  block_devices=[ec2.BlockDevice(
5226
- device_name="/dev/sda1",
5227
- volume=ec2.BlockDeviceVolume.ebs(50)
5228
- ), ec2.BlockDevice(
5229
- device_name="/dev/sdm",
5230
- volume=ec2.BlockDeviceVolume.ebs(100)
5231
- )
5232
- ]
5265
+ device_name="/dev/xvda",
5266
+ volume=ec2.BlockDeviceVolume.ebs(8)
5267
+ )]
5233
5268
  )
5234
5269
  '''
5235
5270
 
@@ -5267,7 +5302,7 @@ class BlockDeviceVolume(
5267
5302
  :param kms_key: The ARN of the AWS Key Management Service (AWS KMS) CMK used for encryption. You have to ensure that the KMS CMK has the correct permissions to be used by the service launching the ec2 instances. Default: - If encrypted is true, the default aws/ebs KMS key will be used.
5268
5303
  :param delete_on_termination: Indicates whether to delete the volume when the instance is terminated. Default: - true for Amazon EC2 Auto Scaling, false otherwise (e.g. EBS)
5269
5304
  :param iops: The number of I/O operations per second (IOPS) to provision for the volume. Must only be set for ``volumeType``: ``EbsDeviceVolumeType.IO1`` The maximum ratio of IOPS to volume size (in GiB) is 50:1, so for 5,000 provisioned IOPS, you need at least 100 GiB storage on the volume. Default: - none, required for ``EbsDeviceVolumeType.IO1``
5270
- :param volume_type: The EBS volume type. Default: ``EbsDeviceVolumeType.GP2``
5305
+ :param volume_type: The EBS volume type. Default: ``EbsDeviceVolumeType.GENERAL_PURPOSE_SSD`` or ``EbsDeviceVolumeType.GENERAL_PURPOSE_SSD_GP3`` if ``@aws-cdk/aws-ec2:ebsDefaultGp3Volume`` is enabled.
5271
5306
  '''
5272
5307
  if __debug__:
5273
5308
  type_hints = typing.get_type_hints(_typecheckingstub__e34634be08d573bd7d4eca032a2a66e619c889f2b51e62608777ae0db2639e6a)
@@ -5299,7 +5334,7 @@ class BlockDeviceVolume(
5299
5334
  :param volume_size: The volume size, in Gibibytes (GiB). If you specify volumeSize, it must be equal or greater than the size of the snapshot. Default: - The snapshot size
5300
5335
  :param delete_on_termination: Indicates whether to delete the volume when the instance is terminated. Default: - true for Amazon EC2 Auto Scaling, false otherwise (e.g. EBS)
5301
5336
  :param iops: The number of I/O operations per second (IOPS) to provision for the volume. Must only be set for ``volumeType``: ``EbsDeviceVolumeType.IO1`` The maximum ratio of IOPS to volume size (in GiB) is 50:1, so for 5,000 provisioned IOPS, you need at least 100 GiB storage on the volume. Default: - none, required for ``EbsDeviceVolumeType.IO1``
5302
- :param volume_type: The EBS volume type. Default: ``EbsDeviceVolumeType.GP2``
5337
+ :param volume_type: The EBS volume type. Default: ``EbsDeviceVolumeType.GENERAL_PURPOSE_SSD`` or ``EbsDeviceVolumeType.GENERAL_PURPOSE_SSD_GP3`` if ``@aws-cdk/aws-ec2:ebsDefaultGp3Volume`` is enabled.
5303
5338
  '''
5304
5339
  if __debug__:
5305
5340
  type_hints = typing.get_type_hints(_typecheckingstub__ce9e60bc1da1c6f1d133c0cfaad0c5984d2f7a428c12f02640d8f31c6eab041e)
@@ -9354,7 +9389,6 @@ class CfnCustomerGateway(
9354
9389
 
9355
9390
  # the properties below are optional
9356
9391
  bgp_asn=123,
9357
- bgp_asn_extended=123,
9358
9392
  certificate_arn="certificateArn",
9359
9393
  device_name="deviceName",
9360
9394
  tags=[CfnTag(
@@ -9372,7 +9406,6 @@ class CfnCustomerGateway(
9372
9406
  ip_address: builtins.str,
9373
9407
  type: builtins.str,
9374
9408
  bgp_asn: typing.Optional[jsii.Number] = None,
9375
- bgp_asn_extended: typing.Optional[jsii.Number] = None,
9376
9409
  certificate_arn: typing.Optional[builtins.str] = None,
9377
9410
  device_name: typing.Optional[builtins.str] = None,
9378
9411
  tags: typing.Optional[typing.Sequence[typing.Union[_CfnTag_f6864754, typing.Dict[builtins.str, typing.Any]]]] = None,
@@ -9383,7 +9416,6 @@ class CfnCustomerGateway(
9383
9416
  :param ip_address: IPv4 address for the customer gateway device's outside interface. The address must be static.
9384
9417
  :param type: The type of VPN connection that this customer gateway supports ( ``ipsec.1`` ).
9385
9418
  :param bgp_asn: For devices that support BGP, the customer gateway's BGP ASN. Default: 65000 Default: - 65000
9386
- :param bgp_asn_extended:
9387
9419
  :param certificate_arn: The Amazon Resource Name (ARN) for the customer gateway certificate.
9388
9420
  :param device_name: The name of customer gateway device.
9389
9421
  :param tags: One or more tags for the customer gateway.
@@ -9396,7 +9428,6 @@ class CfnCustomerGateway(
9396
9428
  ip_address=ip_address,
9397
9429
  type=type,
9398
9430
  bgp_asn=bgp_asn,
9399
- bgp_asn_extended=bgp_asn_extended,
9400
9431
  certificate_arn=certificate_arn,
9401
9432
  device_name=device_name,
9402
9433
  tags=tags,
@@ -9493,18 +9524,6 @@ class CfnCustomerGateway(
9493
9524
  check_type(argname="argument value", value=value, expected_type=type_hints["value"])
9494
9525
  jsii.set(self, "bgpAsn", value)
9495
9526
 
9496
- @builtins.property
9497
- @jsii.member(jsii_name="bgpAsnExtended")
9498
- def bgp_asn_extended(self) -> typing.Optional[jsii.Number]:
9499
- return typing.cast(typing.Optional[jsii.Number], jsii.get(self, "bgpAsnExtended"))
9500
-
9501
- @bgp_asn_extended.setter
9502
- def bgp_asn_extended(self, value: typing.Optional[jsii.Number]) -> None:
9503
- if __debug__:
9504
- type_hints = typing.get_type_hints(_typecheckingstub__f41644d25c48e5c3c87a361ba478bdb4a18bf473fe1582fa35c6311f6d5284d8)
9505
- check_type(argname="argument value", value=value, expected_type=type_hints["value"])
9506
- jsii.set(self, "bgpAsnExtended", value)
9507
-
9508
9527
  @builtins.property
9509
9528
  @jsii.member(jsii_name="certificateArn")
9510
9529
  def certificate_arn(self) -> typing.Optional[builtins.str]:
@@ -9552,7 +9571,6 @@ class CfnCustomerGateway(
9552
9571
  "ip_address": "ipAddress",
9553
9572
  "type": "type",
9554
9573
  "bgp_asn": "bgpAsn",
9555
- "bgp_asn_extended": "bgpAsnExtended",
9556
9574
  "certificate_arn": "certificateArn",
9557
9575
  "device_name": "deviceName",
9558
9576
  "tags": "tags",
@@ -9565,7 +9583,6 @@ class CfnCustomerGatewayProps:
9565
9583
  ip_address: builtins.str,
9566
9584
  type: builtins.str,
9567
9585
  bgp_asn: typing.Optional[jsii.Number] = None,
9568
- bgp_asn_extended: typing.Optional[jsii.Number] = None,
9569
9586
  certificate_arn: typing.Optional[builtins.str] = None,
9570
9587
  device_name: typing.Optional[builtins.str] = None,
9571
9588
  tags: typing.Optional[typing.Sequence[typing.Union[_CfnTag_f6864754, typing.Dict[builtins.str, typing.Any]]]] = None,
@@ -9575,7 +9592,6 @@ class CfnCustomerGatewayProps:
9575
9592
  :param ip_address: IPv4 address for the customer gateway device's outside interface. The address must be static.
9576
9593
  :param type: The type of VPN connection that this customer gateway supports ( ``ipsec.1`` ).
9577
9594
  :param bgp_asn: For devices that support BGP, the customer gateway's BGP ASN. Default: 65000 Default: - 65000
9578
- :param bgp_asn_extended:
9579
9595
  :param certificate_arn: The Amazon Resource Name (ARN) for the customer gateway certificate.
9580
9596
  :param device_name: The name of customer gateway device.
9581
9597
  :param tags: One or more tags for the customer gateway.
@@ -9595,7 +9611,6 @@ class CfnCustomerGatewayProps:
9595
9611
 
9596
9612
  # the properties below are optional
9597
9613
  bgp_asn=123,
9598
- bgp_asn_extended=123,
9599
9614
  certificate_arn="certificateArn",
9600
9615
  device_name="deviceName",
9601
9616
  tags=[CfnTag(
@@ -9609,7 +9624,6 @@ class CfnCustomerGatewayProps:
9609
9624
  check_type(argname="argument ip_address", value=ip_address, expected_type=type_hints["ip_address"])
9610
9625
  check_type(argname="argument type", value=type, expected_type=type_hints["type"])
9611
9626
  check_type(argname="argument bgp_asn", value=bgp_asn, expected_type=type_hints["bgp_asn"])
9612
- check_type(argname="argument bgp_asn_extended", value=bgp_asn_extended, expected_type=type_hints["bgp_asn_extended"])
9613
9627
  check_type(argname="argument certificate_arn", value=certificate_arn, expected_type=type_hints["certificate_arn"])
9614
9628
  check_type(argname="argument device_name", value=device_name, expected_type=type_hints["device_name"])
9615
9629
  check_type(argname="argument tags", value=tags, expected_type=type_hints["tags"])
@@ -9619,8 +9633,6 @@ class CfnCustomerGatewayProps:
9619
9633
  }
9620
9634
  if bgp_asn is not None:
9621
9635
  self._values["bgp_asn"] = bgp_asn
9622
- if bgp_asn_extended is not None:
9623
- self._values["bgp_asn_extended"] = bgp_asn_extended
9624
9636
  if certificate_arn is not None:
9625
9637
  self._values["certificate_arn"] = certificate_arn
9626
9638
  if device_name is not None:
@@ -9663,14 +9675,6 @@ class CfnCustomerGatewayProps:
9663
9675
  result = self._values.get("bgp_asn")
9664
9676
  return typing.cast(typing.Optional[jsii.Number], result)
9665
9677
 
9666
- @builtins.property
9667
- def bgp_asn_extended(self) -> typing.Optional[jsii.Number]:
9668
- '''
9669
- :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-customergateway.html#cfn-ec2-customergateway-bgpasnextended
9670
- '''
9671
- result = self._values.get("bgp_asn_extended")
9672
- return typing.cast(typing.Optional[jsii.Number], result)
9673
-
9674
9678
  @builtins.property
9675
9679
  def certificate_arn(self) -> typing.Optional[builtins.str]:
9676
9680
  '''The Amazon Resource Name (ARN) for the customer gateway certificate.
@@ -19261,7 +19265,7 @@ class CfnInstance(
19261
19265
  :param ipv6_addresses: The IPv6 addresses from the range of the subnet to associate with the primary network interface. You cannot specify this option and the option to assign a number of IPv6 addresses in the same request. You cannot specify this option if you've specified a minimum number of instances to launch. You cannot specify this option and the network interfaces option in the same request.
19262
19266
  :param kernel_id: The ID of the kernel. .. epigraph:: We recommend that you use PV-GRUB instead of kernels and RAM disks. For more information, see `PV-GRUB <https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/UserProvidedkernels.html>`_ in the *Amazon EC2 User Guide* .
19263
19267
  :param key_name: The name of the key pair. You can create a key pair using `CreateKeyPair <https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateKeyPair.html>`_ or `ImportKeyPair <https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_ImportKeyPair.html>`_ . .. epigraph:: If you do not specify a key pair, you can't connect to the instance unless you choose an AMI that is configured to allow users another way to log in.
19264
- :param launch_template: The launch template to use to launch the instances. Any parameters that you specify in the AWS CloudFormation template override the same parameters in the launch template. You can specify either the name or ID of a launch template, but not both.
19268
+ :param launch_template: The launch template. Any additional parameters that you specify for the new instance overwrite the corresponding parameters included in the launch template.
19265
19269
  :param license_specifications: The license configurations.
19266
19270
  :param monitoring: Specifies whether detailed monitoring is enabled for the instance. Specify ``true`` to enable detailed monitoring. Otherwise, basic monitoring is enabled. For more information about detailed monitoring, see `Enable or turn off detailed monitoring for your instances <https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-cloudwatch-new.html>`_ in the *Amazon EC2 User Guide* .
19267
19271
  :param network_interfaces: The network interfaces to associate with the instance. .. epigraph:: If you use this property to point to a network interface, you must terminate the original interface before attaching a new one to allow the update of the instance to succeed. If this resource has a public IP address and is also in a VPC that is defined in the same template, you must use the `DependsOn Attribute <https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html>`_ to declare a dependency on the VPC-gateway attachment.
@@ -19420,6 +19424,15 @@ class CfnInstance(
19420
19424
  '''
19421
19425
  return typing.cast(builtins.str, jsii.get(self, "attrPublicIp"))
19422
19426
 
19427
+ @builtins.property
19428
+ @jsii.member(jsii_name="attrState")
19429
+ def attr_state(self) -> _IResolvable_da3f097b:
19430
+ '''The current state of the instance.
19431
+
19432
+ :cloudformationAttribute: State
19433
+ '''
19434
+ return typing.cast(_IResolvable_da3f097b, jsii.get(self, "attrState"))
19435
+
19423
19436
  @builtins.property
19424
19437
  @jsii.member(jsii_name="attrVpcId")
19425
19438
  def attr_vpc_id(self) -> builtins.str:
@@ -19790,7 +19803,7 @@ class CfnInstance(
19790
19803
  def launch_template(
19791
19804
  self,
19792
19805
  ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnInstance.LaunchTemplateSpecificationProperty"]]:
19793
- '''The launch template to use to launch the instances.'''
19806
+ '''The launch template.'''
19794
19807
  return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnInstance.LaunchTemplateSpecificationProperty"]], jsii.get(self, "launchTemplate"))
19795
19808
 
19796
19809
  @launch_template.setter
@@ -21002,13 +21015,11 @@ class CfnInstance(
21002
21015
  - The ID or the name of the launch template, but not both.
21003
21016
  - The version of the launch template.
21004
21017
 
21005
- For information about creating a launch template, see `AWS::EC2::LaunchTemplate <https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-launchtemplate.html>`_ and `Create a launch template <https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-launch-templates.html#create-launch-template>`_ in the *Amazon EC2 User Guide* .
21018
+ For information about creating a launch template, see `AWS::EC2::LaunchTemplate <https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-launchtemplate.html>`_ and `Create a launch template <https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-launch-templates.html#create-launch-template>`_ in the *Amazon EC2 User Guide* . For example launch templates, see the `Examples <https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-launchtemplate.html#aws-resource-ec2-launchtemplate--examples>`_ for ``AWS::EC2::LaunchTemplate`` .
21006
21019
 
21007
- For example launch templates, see the `Examples <https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-launchtemplate.html#aws-resource-ec2-launchtemplate--examples>`_ for ``AWS::EC2::LaunchTemplate`` .
21008
-
21009
- :param version: The version number of the launch template. Specifying ``$Latest`` or ``$Default`` for the template version number is not supported. However, you can specify ``LatestVersionNumber`` or ``DefaultVersionNumber`` using the ``Fn::GetAtt`` intrinsic function. For more information, see `Fn::GetAtt <https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-launchtemplate.html#aws-resource-ec2-launchtemplate-return-values-fn--getatt>`_ .
21010
- :param launch_template_id: The ID of the launch template. You must specify the ``LaunchTemplateId`` or the ``LaunchTemplateName`` , but not both.
21011
- :param launch_template_name: The name of the launch template. You must specify the ``LaunchTemplateName`` or the ``LaunchTemplateId`` , but not both.
21020
+ :param version: The version number of the launch template. You must specify this property. To specify the default version of the template, use the ``Fn::GetAtt`` intrinsic function to retrieve the ``DefaultVersionNumber`` attribute of the launch template. To specify the latest version of the template, use ``Fn::GetAtt`` to retrieve the ``LatestVersionNumber`` attribute. For more information, see `AWS::EC2:LaunchTemplate return values for Fn::GetAtt <https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-launchtemplate.html#aws-resource-ec2-launchtemplate-return-values-fn--getatt>`_ .
21021
+ :param launch_template_id: The ID of the launch template. You must specify either the launch template ID or the launch template name, but not both.
21022
+ :param launch_template_name: The name of the launch template. You must specify either the launch template ID or the launch template name, but not both.
21012
21023
 
21013
21024
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance-launchtemplatespecification.html
21014
21025
  :exampleMetadata: fixture=_generated
@@ -21042,9 +21053,9 @@ class CfnInstance(
21042
21053
 
21043
21054
  @builtins.property
21044
21055
  def version(self) -> builtins.str:
21045
- '''The version number of the launch template.
21056
+ '''The version number of the launch template. You must specify this property.
21046
21057
 
21047
- Specifying ``$Latest`` or ``$Default`` for the template version number is not supported. However, you can specify ``LatestVersionNumber`` or ``DefaultVersionNumber`` using the ``Fn::GetAtt`` intrinsic function. For more information, see `Fn::GetAtt <https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-launchtemplate.html#aws-resource-ec2-launchtemplate-return-values-fn--getatt>`_ .
21058
+ To specify the default version of the template, use the ``Fn::GetAtt`` intrinsic function to retrieve the ``DefaultVersionNumber`` attribute of the launch template. To specify the latest version of the template, use ``Fn::GetAtt`` to retrieve the ``LatestVersionNumber`` attribute. For more information, see `AWS::EC2:LaunchTemplate return values for Fn::GetAtt <https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-launchtemplate.html#aws-resource-ec2-launchtemplate-return-values-fn--getatt>`_ .
21048
21059
 
21049
21060
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance-launchtemplatespecification.html#cfn-ec2-instance-launchtemplatespecification-version
21050
21061
  '''
@@ -21056,7 +21067,7 @@ class CfnInstance(
21056
21067
  def launch_template_id(self) -> typing.Optional[builtins.str]:
21057
21068
  '''The ID of the launch template.
21058
21069
 
21059
- You must specify the ``LaunchTemplateId`` or the ``LaunchTemplateName`` , but not both.
21070
+ You must specify either the launch template ID or the launch template name, but not both.
21060
21071
 
21061
21072
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance-launchtemplatespecification.html#cfn-ec2-instance-launchtemplatespecification-launchtemplateid
21062
21073
  '''
@@ -21067,7 +21078,7 @@ class CfnInstance(
21067
21078
  def launch_template_name(self) -> typing.Optional[builtins.str]:
21068
21079
  '''The name of the launch template.
21069
21080
 
21070
- You must specify the ``LaunchTemplateName`` or the ``LaunchTemplateId`` , but not both.
21081
+ You must specify either the launch template ID or the launch template name, but not both.
21071
21082
 
21072
21083
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance-launchtemplatespecification.html#cfn-ec2-instance-launchtemplatespecification-launchtemplatename
21073
21084
  '''
@@ -21725,6 +21736,76 @@ class CfnInstance(
21725
21736
  k + "=" + repr(v) for k, v in self._values.items()
21726
21737
  )
21727
21738
 
21739
+ @jsii.data_type(
21740
+ jsii_type="aws-cdk-lib.aws_ec2.CfnInstance.StateProperty",
21741
+ jsii_struct_bases=[],
21742
+ name_mapping={"code": "code", "name": "name"},
21743
+ )
21744
+ class StateProperty:
21745
+ def __init__(
21746
+ self,
21747
+ *,
21748
+ code: typing.Optional[builtins.str] = None,
21749
+ name: typing.Optional[builtins.str] = None,
21750
+ ) -> None:
21751
+ '''The current state of the instance.
21752
+
21753
+ :param code: The state of the instance as a 16-bit unsigned integer.
21754
+ :param name: The current state of the instance.
21755
+
21756
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance-state.html
21757
+ :exampleMetadata: fixture=_generated
21758
+
21759
+ Example::
21760
+
21761
+ # The code below shows an example of how to instantiate this type.
21762
+ # The values are placeholders you should change.
21763
+ from aws_cdk import aws_ec2 as ec2
21764
+
21765
+ state_property = ec2.CfnInstance.StateProperty(
21766
+ code="code",
21767
+ name="name"
21768
+ )
21769
+ '''
21770
+ if __debug__:
21771
+ type_hints = typing.get_type_hints(_typecheckingstub__9846fa72cbaae139f4b014952902793cafe1392ee629b0862fc35909f9ec8da2)
21772
+ check_type(argname="argument code", value=code, expected_type=type_hints["code"])
21773
+ check_type(argname="argument name", value=name, expected_type=type_hints["name"])
21774
+ self._values: typing.Dict[builtins.str, typing.Any] = {}
21775
+ if code is not None:
21776
+ self._values["code"] = code
21777
+ if name is not None:
21778
+ self._values["name"] = name
21779
+
21780
+ @builtins.property
21781
+ def code(self) -> typing.Optional[builtins.str]:
21782
+ '''The state of the instance as a 16-bit unsigned integer.
21783
+
21784
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance-state.html#cfn-ec2-instance-state-code
21785
+ '''
21786
+ result = self._values.get("code")
21787
+ return typing.cast(typing.Optional[builtins.str], result)
21788
+
21789
+ @builtins.property
21790
+ def name(self) -> typing.Optional[builtins.str]:
21791
+ '''The current state of the instance.
21792
+
21793
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance-state.html#cfn-ec2-instance-state-name
21794
+ '''
21795
+ result = self._values.get("name")
21796
+ return typing.cast(typing.Optional[builtins.str], result)
21797
+
21798
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
21799
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
21800
+
21801
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
21802
+ return not (rhs == self)
21803
+
21804
+ def __repr__(self) -> str:
21805
+ return "StateProperty(%s)" % ", ".join(
21806
+ k + "=" + repr(v) for k, v in self._values.items()
21807
+ )
21808
+
21728
21809
  @jsii.data_type(
21729
21810
  jsii_type="aws-cdk-lib.aws_ec2.CfnInstance.VolumeProperty",
21730
21811
  jsii_struct_bases=[],
@@ -22243,7 +22324,7 @@ class CfnInstanceProps:
22243
22324
  :param ipv6_addresses: The IPv6 addresses from the range of the subnet to associate with the primary network interface. You cannot specify this option and the option to assign a number of IPv6 addresses in the same request. You cannot specify this option if you've specified a minimum number of instances to launch. You cannot specify this option and the network interfaces option in the same request.
22244
22325
  :param kernel_id: The ID of the kernel. .. epigraph:: We recommend that you use PV-GRUB instead of kernels and RAM disks. For more information, see `PV-GRUB <https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/UserProvidedkernels.html>`_ in the *Amazon EC2 User Guide* .
22245
22326
  :param key_name: The name of the key pair. You can create a key pair using `CreateKeyPair <https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateKeyPair.html>`_ or `ImportKeyPair <https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_ImportKeyPair.html>`_ . .. epigraph:: If you do not specify a key pair, you can't connect to the instance unless you choose an AMI that is configured to allow users another way to log in.
22246
- :param launch_template: The launch template to use to launch the instances. Any parameters that you specify in the AWS CloudFormation template override the same parameters in the launch template. You can specify either the name or ID of a launch template, but not both.
22327
+ :param launch_template: The launch template. Any additional parameters that you specify for the new instance overwrite the corresponding parameters included in the launch template.
22247
22328
  :param license_specifications: The license configurations.
22248
22329
  :param monitoring: Specifies whether detailed monitoring is enabled for the instance. Specify ``true`` to enable detailed monitoring. Otherwise, basic monitoring is enabled. For more information about detailed monitoring, see `Enable or turn off detailed monitoring for your instances <https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-cloudwatch-new.html>`_ in the *Amazon EC2 User Guide* .
22249
22330
  :param network_interfaces: The network interfaces to associate with the instance. .. epigraph:: If you use this property to point to a network interface, you must terminate the original interface before attaching a new one to allow the update of the instance to succeed. If this resource has a public IP address and is also in a VPC that is defined in the same template, you must use the `DependsOn Attribute <https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html>`_ to declare a dependency on the VPC-gateway attachment.
@@ -22809,9 +22890,9 @@ class CfnInstanceProps:
22809
22890
  def launch_template(
22810
22891
  self,
22811
22892
  ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, CfnInstance.LaunchTemplateSpecificationProperty]]:
22812
- '''The launch template to use to launch the instances.
22893
+ '''The launch template.
22813
22894
 
22814
- Any parameters that you specify in the AWS CloudFormation template override the same parameters in the launch template. You can specify either the name or ID of a launch template, but not both.
22895
+ Any additional parameters that you specify for the new instance overwrite the corresponding parameters included in the launch template.
22815
22896
 
22816
22897
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-instance.html#cfn-ec2-instance-launchtemplate
22817
22898
  '''
@@ -23579,7 +23660,7 @@ class CfnLaunchTemplate(
23579
23660
  The minimum required properties for specifying a launch template are as follows:
23580
23661
 
23581
23662
  - You must specify at least one property for the launch template data.
23582
- - You do not need to specify a name for the launch template. If you do not specify a name, AWS CloudFormation creates the name for you.
23663
+ - You can optionally specify a name for the launch template. If you do not specify a name, AWS CloudFormation creates a name for you.
23583
23664
 
23584
23665
  A launch template can contain some or all of the configuration information to launch an instance. When you launch an instance using a launch template, instance properties that are not specified in the launch template use default values, except the ``ImageId`` property, which has no default value. If you do not specify an AMI ID for the launch template ``ImageId`` property, you must specify an AMI ID for the instance ``ImageId`` property.
23585
23666
 
@@ -27732,7 +27813,7 @@ class CfnLaunchTemplate(
27732
27813
  :param connection_tracking_specification: A connection tracking specification for the network interface.
27733
27814
  :param delete_on_termination: Indicates whether the network interface is deleted when the instance is terminated.
27734
27815
  :param description: A description for the network interface.
27735
- :param device_index: The device index for the network interface attachment.
27816
+ :param device_index: The device index for the network interface attachment. Each network interface requires a device index. If you create a launch template that includes secondary network interfaces but not a primary network interface, then you must add a primary network interface as a launch parameter when you launch an instance from the template.
27736
27817
  :param ena_srd_specification: The ENA Express configuration for the network interface.
27737
27818
  :param groups: The IDs of one or more security groups.
27738
27819
  :param interface_type: The type of network interface. To create an Elastic Fabric Adapter (EFA), specify ``efa`` . For more information, see `Elastic Fabric Adapter <https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/efa.html>`_ in the *Amazon Elastic Compute Cloud User Guide* . If you are not creating an EFA, specify ``interface`` or omit this parameter. Valid values: ``interface`` | ``efa``
@@ -27933,6 +28014,8 @@ class CfnLaunchTemplate(
27933
28014
  def device_index(self) -> typing.Optional[jsii.Number]:
27934
28015
  '''The device index for the network interface attachment.
27935
28016
 
28017
+ Each network interface requires a device index. If you create a launch template that includes secondary network interfaces but not a primary network interface, then you must add a primary network interface as a launch parameter when you launch an instance from the template.
28018
+
27936
28019
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-networkinterface.html#cfn-ec2-launchtemplate-networkinterface-deviceindex
27937
28020
  '''
27938
28021
  result = self._values.get("device_index")
@@ -54514,14 +54597,6 @@ class CfnTransitGatewayRouteTablePropagation(
54514
54597
  '''The CloudFormation resource type name for this resource class.'''
54515
54598
  return typing.cast(builtins.str, jsii.sget(cls, "CFN_RESOURCE_TYPE_NAME"))
54516
54599
 
54517
- @builtins.property
54518
- @jsii.member(jsii_name="attrId")
54519
- def attr_id(self) -> builtins.str:
54520
- '''
54521
- :cloudformationAttribute: Id
54522
- '''
54523
- return typing.cast(builtins.str, jsii.get(self, "attrId"))
54524
-
54525
54600
  @builtins.property
54526
54601
  @jsii.member(jsii_name="cfnProperties")
54527
54602
  def _cfn_properties(self) -> typing.Mapping[builtins.str, typing.Any]:
@@ -65791,7 +65866,7 @@ class EbsDeviceOptionsBase:
65791
65866
 
65792
65867
  :param delete_on_termination: Indicates whether to delete the volume when the instance is terminated. Default: - true for Amazon EC2 Auto Scaling, false otherwise (e.g. EBS)
65793
65868
  :param iops: The number of I/O operations per second (IOPS) to provision for the volume. Must only be set for ``volumeType``: ``EbsDeviceVolumeType.IO1`` The maximum ratio of IOPS to volume size (in GiB) is 50:1, so for 5,000 provisioned IOPS, you need at least 100 GiB storage on the volume. Default: - none, required for ``EbsDeviceVolumeType.IO1``
65794
- :param volume_type: The EBS volume type. Default: ``EbsDeviceVolumeType.GP2``
65869
+ :param volume_type: The EBS volume type. Default: ``EbsDeviceVolumeType.GENERAL_PURPOSE_SSD`` or ``EbsDeviceVolumeType.GENERAL_PURPOSE_SSD_GP3`` if ``@aws-cdk/aws-ec2:ebsDefaultGp3Volume`` is enabled.
65795
65870
 
65796
65871
  :exampleMetadata: fixture=_generated
65797
65872
 
@@ -65849,7 +65924,10 @@ class EbsDeviceOptionsBase:
65849
65924
  def volume_type(self) -> typing.Optional["EbsDeviceVolumeType"]:
65850
65925
  '''The EBS volume type.
65851
65926
 
65852
- :default: ``EbsDeviceVolumeType.GP2``
65927
+ :default:
65928
+
65929
+ ``EbsDeviceVolumeType.GENERAL_PURPOSE_SSD`` or ``EbsDeviceVolumeType.GENERAL_PURPOSE_SSD_GP3`` if
65930
+ ``@aws-cdk/aws-ec2:ebsDefaultGp3Volume`` is enabled.
65853
65931
 
65854
65932
  :see: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSVolumeTypes.html
65855
65933
  '''
@@ -65891,7 +65969,7 @@ class EbsDeviceSnapshotOptions(EbsDeviceOptionsBase):
65891
65969
 
65892
65970
  :param delete_on_termination: Indicates whether to delete the volume when the instance is terminated. Default: - true for Amazon EC2 Auto Scaling, false otherwise (e.g. EBS)
65893
65971
  :param iops: The number of I/O operations per second (IOPS) to provision for the volume. Must only be set for ``volumeType``: ``EbsDeviceVolumeType.IO1`` The maximum ratio of IOPS to volume size (in GiB) is 50:1, so for 5,000 provisioned IOPS, you need at least 100 GiB storage on the volume. Default: - none, required for ``EbsDeviceVolumeType.IO1``
65894
- :param volume_type: The EBS volume type. Default: ``EbsDeviceVolumeType.GP2``
65972
+ :param volume_type: The EBS volume type. Default: ``EbsDeviceVolumeType.GENERAL_PURPOSE_SSD`` or ``EbsDeviceVolumeType.GENERAL_PURPOSE_SSD_GP3`` if ``@aws-cdk/aws-ec2:ebsDefaultGp3Volume`` is enabled.
65895
65973
  :param volume_size: The volume size, in Gibibytes (GiB). If you specify volumeSize, it must be equal or greater than the size of the snapshot. Default: - The snapshot size
65896
65974
 
65897
65975
  :exampleMetadata: fixture=_generated
@@ -65954,7 +66032,10 @@ class EbsDeviceSnapshotOptions(EbsDeviceOptionsBase):
65954
66032
  def volume_type(self) -> typing.Optional["EbsDeviceVolumeType"]:
65955
66033
  '''The EBS volume type.
65956
66034
 
65957
- :default: ``EbsDeviceVolumeType.GP2``
66035
+ :default:
66036
+
66037
+ ``EbsDeviceVolumeType.GENERAL_PURPOSE_SSD`` or ``EbsDeviceVolumeType.GENERAL_PURPOSE_SSD_GP3`` if
66038
+ ``@aws-cdk/aws-ec2:ebsDefaultGp3Volume`` is enabled.
65958
66039
 
65959
66040
  :see: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSVolumeTypes.html
65960
66041
  '''
@@ -71208,6 +71289,8 @@ class InitService(
71208
71289
  after_network: typing.Optional[builtins.bool] = None,
71209
71290
  cwd: typing.Optional[builtins.str] = None,
71210
71291
  description: typing.Optional[builtins.str] = None,
71292
+ environment_files: typing.Optional[typing.Sequence[builtins.str]] = None,
71293
+ environment_variables: typing.Optional[typing.Mapping[builtins.str, builtins.str]] = None,
71211
71294
  group: typing.Optional[builtins.str] = None,
71212
71295
  keep_running: typing.Optional[builtins.bool] = None,
71213
71296
  user: typing.Optional[builtins.str] = None,
@@ -71227,6 +71310,8 @@ class InitService(
71227
71310
  :param after_network: Start the service after the networking part of the OS comes up. Default: true
71228
71311
  :param cwd: The working directory for the command. Default: Root directory or home directory of specified user
71229
71312
  :param description: A description of this service. Default: - No description
71313
+ :param environment_files: Loads environment variables from files when the process is running. Must use absolute paths. Default: - No environment files
71314
+ :param environment_variables: Environment variables to load when the process is running. Default: - No environment variables set
71230
71315
  :param group: The group to execute the process under. Default: root
71231
71316
  :param keep_running: Keep the process running all the time. Restarts the process when it exits for any reason other than the machine shutting down. Default: true
71232
71317
  :param user: The user to execute the process under. Default: root
@@ -71239,6 +71324,8 @@ class InitService(
71239
71324
  after_network=after_network,
71240
71325
  cwd=cwd,
71241
71326
  description=description,
71327
+ environment_files=environment_files,
71328
+ environment_variables=environment_variables,
71242
71329
  group=group,
71243
71330
  keep_running=keep_running,
71244
71331
  user=user,
@@ -71942,6 +72029,7 @@ class Instance(
71942
72029
  block_devices: typing.Optional[typing.Sequence[typing.Union[BlockDevice, typing.Dict[builtins.str, typing.Any]]]] = None,
71943
72030
  credit_specification: typing.Optional[CpuCredits] = None,
71944
72031
  detailed_monitoring: typing.Optional[builtins.bool] = None,
72032
+ ebs_optimized: typing.Optional[builtins.bool] = None,
71945
72033
  init: typing.Optional[CloudFormationInit] = None,
71946
72034
  init_options: typing.Optional[typing.Union[ApplyCloudFormationInitOptions, typing.Dict[builtins.str, typing.Any]]] = None,
71947
72035
  instance_name: typing.Optional[builtins.str] = None,
@@ -71972,6 +72060,7 @@ class Instance(
71972
72060
  :param block_devices: Specifies how block devices are exposed to the instance. You can specify virtual devices and EBS volumes. Each instance that is launched has an associated root device volume, either an Amazon EBS volume or an instance store volume. You can use block device mappings to specify additional EBS volumes or instance store volumes to attach to an instance when it is launched. Default: - Uses the block device mapping of the AMI
71973
72061
  :param credit_specification: Specifying the CPU credit type for burstable EC2 instance types (T2, T3, T3a, etc). The unlimited CPU credit option is not supported for T3 instances with a dedicated host. Default: - T2 instances are standard, while T3, T4g, and T3a instances are unlimited.
71974
72062
  :param detailed_monitoring: Whether "Detailed Monitoring" is enabled for this instance Keep in mind that Detailed Monitoring results in extra charges. Default: - false
72063
+ :param ebs_optimized: Indicates whether the instance is optimized for Amazon EBS I/O. This optimization provides dedicated throughput to Amazon EBS and an optimized configuration stack to provide optimal Amazon EBS I/O performance. This optimization isn't available with all instance types. Additional usage charges apply when using an EBS-optimized instance. Default: false
71975
72064
  :param init: Apply the given CloudFormation Init configuration to the instance at startup. Default: - no CloudFormation init
71976
72065
  :param init_options: Use the given options for applying CloudFormation Init. Describes the configsets to use and the timeout to wait Default: - default options
71977
72066
  :param instance_name: The name of the instance. Default: - CDK generated name
@@ -72004,6 +72093,7 @@ class Instance(
72004
72093
  block_devices=block_devices,
72005
72094
  credit_specification=credit_specification,
72006
72095
  detailed_monitoring=detailed_monitoring,
72096
+ ebs_optimized=ebs_optimized,
72007
72097
  init=init,
72008
72098
  init_options=init_options,
72009
72099
  instance_name=instance_name,
@@ -72735,6 +72825,7 @@ class InstanceInitiatedShutdownBehavior(enum.Enum):
72735
72825
  "block_devices": "blockDevices",
72736
72826
  "credit_specification": "creditSpecification",
72737
72827
  "detailed_monitoring": "detailedMonitoring",
72828
+ "ebs_optimized": "ebsOptimized",
72738
72829
  "init": "init",
72739
72830
  "init_options": "initOptions",
72740
72831
  "instance_name": "instanceName",
@@ -72767,6 +72858,7 @@ class InstanceProps:
72767
72858
  block_devices: typing.Optional[typing.Sequence[typing.Union[BlockDevice, typing.Dict[builtins.str, typing.Any]]]] = None,
72768
72859
  credit_specification: typing.Optional[CpuCredits] = None,
72769
72860
  detailed_monitoring: typing.Optional[builtins.bool] = None,
72861
+ ebs_optimized: typing.Optional[builtins.bool] = None,
72770
72862
  init: typing.Optional[CloudFormationInit] = None,
72771
72863
  init_options: typing.Optional[typing.Union[ApplyCloudFormationInitOptions, typing.Dict[builtins.str, typing.Any]]] = None,
72772
72864
  instance_name: typing.Optional[builtins.str] = None,
@@ -72796,6 +72888,7 @@ class InstanceProps:
72796
72888
  :param block_devices: Specifies how block devices are exposed to the instance. You can specify virtual devices and EBS volumes. Each instance that is launched has an associated root device volume, either an Amazon EBS volume or an instance store volume. You can use block device mappings to specify additional EBS volumes or instance store volumes to attach to an instance when it is launched. Default: - Uses the block device mapping of the AMI
72797
72889
  :param credit_specification: Specifying the CPU credit type for burstable EC2 instance types (T2, T3, T3a, etc). The unlimited CPU credit option is not supported for T3 instances with a dedicated host. Default: - T2 instances are standard, while T3, T4g, and T3a instances are unlimited.
72798
72890
  :param detailed_monitoring: Whether "Detailed Monitoring" is enabled for this instance Keep in mind that Detailed Monitoring results in extra charges. Default: - false
72891
+ :param ebs_optimized: Indicates whether the instance is optimized for Amazon EBS I/O. This optimization provides dedicated throughput to Amazon EBS and an optimized configuration stack to provide optimal Amazon EBS I/O performance. This optimization isn't available with all instance types. Additional usage charges apply when using an EBS-optimized instance. Default: false
72799
72892
  :param init: Apply the given CloudFormation Init configuration to the instance at startup. Default: - no CloudFormation init
72800
72893
  :param init_options: Use the given options for applying CloudFormation Init. Describes the configsets to use and the timeout to wait Default: - default options
72801
72894
  :param instance_name: The name of the instance. Default: - CDK generated name
@@ -72848,6 +72941,7 @@ class InstanceProps:
72848
72941
  check_type(argname="argument block_devices", value=block_devices, expected_type=type_hints["block_devices"])
72849
72942
  check_type(argname="argument credit_specification", value=credit_specification, expected_type=type_hints["credit_specification"])
72850
72943
  check_type(argname="argument detailed_monitoring", value=detailed_monitoring, expected_type=type_hints["detailed_monitoring"])
72944
+ check_type(argname="argument ebs_optimized", value=ebs_optimized, expected_type=type_hints["ebs_optimized"])
72851
72945
  check_type(argname="argument init", value=init, expected_type=type_hints["init"])
72852
72946
  check_type(argname="argument init_options", value=init_options, expected_type=type_hints["init_options"])
72853
72947
  check_type(argname="argument instance_name", value=instance_name, expected_type=type_hints["instance_name"])
@@ -72883,6 +72977,8 @@ class InstanceProps:
72883
72977
  self._values["credit_specification"] = credit_specification
72884
72978
  if detailed_monitoring is not None:
72885
72979
  self._values["detailed_monitoring"] = detailed_monitoring
72980
+ if ebs_optimized is not None:
72981
+ self._values["ebs_optimized"] = ebs_optimized
72886
72982
  if init is not None:
72887
72983
  self._values["init"] = init
72888
72984
  if init_options is not None:
@@ -73015,6 +73111,19 @@ class InstanceProps:
73015
73111
  result = self._values.get("detailed_monitoring")
73016
73112
  return typing.cast(typing.Optional[builtins.bool], result)
73017
73113
 
73114
+ @builtins.property
73115
+ def ebs_optimized(self) -> typing.Optional[builtins.bool]:
73116
+ '''Indicates whether the instance is optimized for Amazon EBS I/O.
73117
+
73118
+ This optimization provides dedicated throughput to Amazon EBS and an optimized configuration stack to provide optimal Amazon EBS I/O performance.
73119
+ This optimization isn't available with all instance types.
73120
+ Additional usage charges apply when using an EBS-optimized instance.
73121
+
73122
+ :default: false
73123
+ '''
73124
+ result = self._values.get("ebs_optimized")
73125
+ return typing.cast(typing.Optional[builtins.bool], result)
73126
+
73018
73127
  @builtins.property
73019
73128
  def init(self) -> typing.Optional[CloudFormationInit]:
73020
73129
  '''Apply the given CloudFormation Init configuration to the instance at startup.
@@ -83954,6 +84063,8 @@ class SubnetType(enum.Enum):
83954
84063
  "after_network": "afterNetwork",
83955
84064
  "cwd": "cwd",
83956
84065
  "description": "description",
84066
+ "environment_files": "environmentFiles",
84067
+ "environment_variables": "environmentVariables",
83957
84068
  "group": "group",
83958
84069
  "keep_running": "keepRunning",
83959
84070
  "user": "user",
@@ -83967,6 +84078,8 @@ class SystemdConfigFileOptions:
83967
84078
  after_network: typing.Optional[builtins.bool] = None,
83968
84079
  cwd: typing.Optional[builtins.str] = None,
83969
84080
  description: typing.Optional[builtins.str] = None,
84081
+ environment_files: typing.Optional[typing.Sequence[builtins.str]] = None,
84082
+ environment_variables: typing.Optional[typing.Mapping[builtins.str, builtins.str]] = None,
83970
84083
  group: typing.Optional[builtins.str] = None,
83971
84084
  keep_running: typing.Optional[builtins.bool] = None,
83972
84085
  user: typing.Optional[builtins.str] = None,
@@ -83977,6 +84090,8 @@ class SystemdConfigFileOptions:
83977
84090
  :param after_network: Start the service after the networking part of the OS comes up. Default: true
83978
84091
  :param cwd: The working directory for the command. Default: Root directory or home directory of specified user
83979
84092
  :param description: A description of this service. Default: - No description
84093
+ :param environment_files: Loads environment variables from files when the process is running. Must use absolute paths. Default: - No environment files
84094
+ :param environment_variables: Environment variables to load when the process is running. Default: - No environment variables set
83980
84095
  :param group: The group to execute the process under. Default: root
83981
84096
  :param keep_running: Keep the process running all the time. Restarts the process when it exits for any reason other than the machine shutting down. Default: true
83982
84097
  :param user: The user to execute the process under. Default: root
@@ -84014,6 +84129,8 @@ class SystemdConfigFileOptions:
84014
84129
  check_type(argname="argument after_network", value=after_network, expected_type=type_hints["after_network"])
84015
84130
  check_type(argname="argument cwd", value=cwd, expected_type=type_hints["cwd"])
84016
84131
  check_type(argname="argument description", value=description, expected_type=type_hints["description"])
84132
+ check_type(argname="argument environment_files", value=environment_files, expected_type=type_hints["environment_files"])
84133
+ check_type(argname="argument environment_variables", value=environment_variables, expected_type=type_hints["environment_variables"])
84017
84134
  check_type(argname="argument group", value=group, expected_type=type_hints["group"])
84018
84135
  check_type(argname="argument keep_running", value=keep_running, expected_type=type_hints["keep_running"])
84019
84136
  check_type(argname="argument user", value=user, expected_type=type_hints["user"])
@@ -84026,6 +84143,10 @@ class SystemdConfigFileOptions:
84026
84143
  self._values["cwd"] = cwd
84027
84144
  if description is not None:
84028
84145
  self._values["description"] = description
84146
+ if environment_files is not None:
84147
+ self._values["environment_files"] = environment_files
84148
+ if environment_variables is not None:
84149
+ self._values["environment_variables"] = environment_variables
84029
84150
  if group is not None:
84030
84151
  self._values["group"] = group
84031
84152
  if keep_running is not None:
@@ -84067,6 +84188,28 @@ class SystemdConfigFileOptions:
84067
84188
  result = self._values.get("description")
84068
84189
  return typing.cast(typing.Optional[builtins.str], result)
84069
84190
 
84191
+ @builtins.property
84192
+ def environment_files(self) -> typing.Optional[typing.List[builtins.str]]:
84193
+ '''Loads environment variables from files when the process is running.
84194
+
84195
+ Must use absolute paths.
84196
+
84197
+ :default: - No environment files
84198
+ '''
84199
+ result = self._values.get("environment_files")
84200
+ return typing.cast(typing.Optional[typing.List[builtins.str]], result)
84201
+
84202
+ @builtins.property
84203
+ def environment_variables(
84204
+ self,
84205
+ ) -> typing.Optional[typing.Mapping[builtins.str, builtins.str]]:
84206
+ '''Environment variables to load when the process is running.
84207
+
84208
+ :default: - No environment variables set
84209
+ '''
84210
+ result = self._values.get("environment_variables")
84211
+ return typing.cast(typing.Optional[typing.Mapping[builtins.str, builtins.str]], result)
84212
+
84070
84213
  @builtins.property
84071
84214
  def group(self) -> typing.Optional[builtins.str]:
84072
84215
  '''The group to execute the process under.
@@ -89578,7 +89721,7 @@ class EbsDeviceOptions(EbsDeviceOptionsBase):
89578
89721
 
89579
89722
  :param delete_on_termination: Indicates whether to delete the volume when the instance is terminated. Default: - true for Amazon EC2 Auto Scaling, false otherwise (e.g. EBS)
89580
89723
  :param iops: The number of I/O operations per second (IOPS) to provision for the volume. Must only be set for ``volumeType``: ``EbsDeviceVolumeType.IO1`` The maximum ratio of IOPS to volume size (in GiB) is 50:1, so for 5,000 provisioned IOPS, you need at least 100 GiB storage on the volume. Default: - none, required for ``EbsDeviceVolumeType.IO1``
89581
- :param volume_type: The EBS volume type. Default: ``EbsDeviceVolumeType.GP2``
89724
+ :param volume_type: The EBS volume type. Default: ``EbsDeviceVolumeType.GENERAL_PURPOSE_SSD`` or ``EbsDeviceVolumeType.GENERAL_PURPOSE_SSD_GP3`` if ``@aws-cdk/aws-ec2:ebsDefaultGp3Volume`` is enabled.
89582
89725
  :param encrypted: Specifies whether the EBS volume is encrypted. Encrypted EBS volumes can only be attached to instances that support Amazon EBS encryption Default: false
89583
89726
  :param kms_key: The ARN of the AWS Key Management Service (AWS KMS) CMK used for encryption. You have to ensure that the KMS CMK has the correct permissions to be used by the service launching the ec2 instances. Default: - If encrypted is true, the default aws/ebs KMS key will be used.
89584
89727
 
@@ -89644,7 +89787,10 @@ class EbsDeviceOptions(EbsDeviceOptionsBase):
89644
89787
  def volume_type(self) -> typing.Optional[EbsDeviceVolumeType]:
89645
89788
  '''The EBS volume type.
89646
89789
 
89647
- :default: ``EbsDeviceVolumeType.GP2``
89790
+ :default:
89791
+
89792
+ ``EbsDeviceVolumeType.GENERAL_PURPOSE_SSD`` or ``EbsDeviceVolumeType.GENERAL_PURPOSE_SSD_GP3`` if
89793
+ ``@aws-cdk/aws-ec2:ebsDefaultGp3Volume`` is enabled.
89648
89794
 
89649
89795
  :see: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSVolumeTypes.html
89650
89796
  '''
@@ -89718,7 +89864,7 @@ class EbsDeviceProps(EbsDeviceSnapshotOptions, EbsDeviceOptions):
89718
89864
 
89719
89865
  :param delete_on_termination: Indicates whether to delete the volume when the instance is terminated. Default: - true for Amazon EC2 Auto Scaling, false otherwise (e.g. EBS)
89720
89866
  :param iops: The number of I/O operations per second (IOPS) to provision for the volume. Must only be set for ``volumeType``: ``EbsDeviceVolumeType.IO1`` The maximum ratio of IOPS to volume size (in GiB) is 50:1, so for 5,000 provisioned IOPS, you need at least 100 GiB storage on the volume. Default: - none, required for ``EbsDeviceVolumeType.IO1``
89721
- :param volume_type: The EBS volume type. Default: ``EbsDeviceVolumeType.GP2``
89867
+ :param volume_type: The EBS volume type. Default: ``EbsDeviceVolumeType.GENERAL_PURPOSE_SSD`` or ``EbsDeviceVolumeType.GENERAL_PURPOSE_SSD_GP3`` if ``@aws-cdk/aws-ec2:ebsDefaultGp3Volume`` is enabled.
89722
89868
  :param volume_size: The volume size, in Gibibytes (GiB). If you specify volumeSize, it must be equal or greater than the size of the snapshot. Default: - The snapshot size
89723
89869
  :param encrypted: Specifies whether the EBS volume is encrypted. Encrypted EBS volumes can only be attached to instances that support Amazon EBS encryption Default: false
89724
89870
  :param kms_key: The ARN of the AWS Key Management Service (AWS KMS) CMK used for encryption. You have to ensure that the KMS CMK has the correct permissions to be used by the service launching the ec2 instances. Default: - If encrypted is true, the default aws/ebs KMS key will be used.
@@ -89799,7 +89945,10 @@ class EbsDeviceProps(EbsDeviceSnapshotOptions, EbsDeviceOptions):
89799
89945
  def volume_type(self) -> typing.Optional[EbsDeviceVolumeType]:
89800
89946
  '''The EBS volume type.
89801
89947
 
89802
- :default: ``EbsDeviceVolumeType.GP2``
89948
+ :default:
89949
+
89950
+ ``EbsDeviceVolumeType.GENERAL_PURPOSE_SSD`` or ``EbsDeviceVolumeType.GENERAL_PURPOSE_SSD_GP3`` if
89951
+ ``@aws-cdk/aws-ec2:ebsDefaultGp3Volume`` is enabled.
89803
89952
 
89804
89953
  :see: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSVolumeTypes.html
89805
89954
  '''
@@ -94929,7 +95078,6 @@ def _typecheckingstub__16b41182e007e05b84fd0c97afc1e26001e78a56de2eb5b10c9f809de
94929
95078
  ip_address: builtins.str,
94930
95079
  type: builtins.str,
94931
95080
  bgp_asn: typing.Optional[jsii.Number] = None,
94932
- bgp_asn_extended: typing.Optional[jsii.Number] = None,
94933
95081
  certificate_arn: typing.Optional[builtins.str] = None,
94934
95082
  device_name: typing.Optional[builtins.str] = None,
94935
95083
  tags: typing.Optional[typing.Sequence[typing.Union[_CfnTag_f6864754, typing.Dict[builtins.str, typing.Any]]]] = None,
@@ -94967,12 +95115,6 @@ def _typecheckingstub__84dfb7d1775bd2bb124f990570c9a2ef23fafd01744cfe248fcb36056
94967
95115
  """Type checking stubs"""
94968
95116
  pass
94969
95117
 
94970
- def _typecheckingstub__f41644d25c48e5c3c87a361ba478bdb4a18bf473fe1582fa35c6311f6d5284d8(
94971
- value: typing.Optional[jsii.Number],
94972
- ) -> None:
94973
- """Type checking stubs"""
94974
- pass
94975
-
94976
95118
  def _typecheckingstub__4a4b900e840c5be3a2b16a5177f91335cf813daeca359e549a639cb05a03ac63(
94977
95119
  value: typing.Optional[builtins.str],
94978
95120
  ) -> None:
@@ -94996,7 +95138,6 @@ def _typecheckingstub__b0ef9a2e3e2b6937b21db500a1cd795126e924d9b920931a413ecdb66
94996
95138
  ip_address: builtins.str,
94997
95139
  type: builtins.str,
94998
95140
  bgp_asn: typing.Optional[jsii.Number] = None,
94999
- bgp_asn_extended: typing.Optional[jsii.Number] = None,
95000
95141
  certificate_arn: typing.Optional[builtins.str] = None,
95001
95142
  device_name: typing.Optional[builtins.str] = None,
95002
95143
  tags: typing.Optional[typing.Sequence[typing.Union[_CfnTag_f6864754, typing.Dict[builtins.str, typing.Any]]]] = None,
@@ -96844,6 +96985,14 @@ def _typecheckingstub__3246e3302ff8df6b195439adc5ead244f95f45eca29b97351de498153
96844
96985
  """Type checking stubs"""
96845
96986
  pass
96846
96987
 
96988
+ def _typecheckingstub__9846fa72cbaae139f4b014952902793cafe1392ee629b0862fc35909f9ec8da2(
96989
+ *,
96990
+ code: typing.Optional[builtins.str] = None,
96991
+ name: typing.Optional[builtins.str] = None,
96992
+ ) -> None:
96993
+ """Type checking stubs"""
96994
+ pass
96995
+
96847
96996
  def _typecheckingstub__b979ff4b2e7bc79429f0409f1fb60a5125a9cda71770a0324082ebc0a6c50756(
96848
96997
  *,
96849
96998
  device: builtins.str,
@@ -103720,6 +103869,8 @@ def _typecheckingstub__7573da52a8ea62c2b8aa64f8feb7a4a47ba65a4cac431430e05fdcee0
103720
103869
  after_network: typing.Optional[builtins.bool] = None,
103721
103870
  cwd: typing.Optional[builtins.str] = None,
103722
103871
  description: typing.Optional[builtins.str] = None,
103872
+ environment_files: typing.Optional[typing.Sequence[builtins.str]] = None,
103873
+ environment_variables: typing.Optional[typing.Mapping[builtins.str, builtins.str]] = None,
103723
103874
  group: typing.Optional[builtins.str] = None,
103724
103875
  keep_running: typing.Optional[builtins.bool] = None,
103725
103876
  user: typing.Optional[builtins.str] = None,
@@ -103850,6 +104001,7 @@ def _typecheckingstub__5fdf31f5ae2497c7efcb56df558011698f38dc19cff28ca7a78a08a6d
103850
104001
  block_devices: typing.Optional[typing.Sequence[typing.Union[BlockDevice, typing.Dict[builtins.str, typing.Any]]]] = None,
103851
104002
  credit_specification: typing.Optional[CpuCredits] = None,
103852
104003
  detailed_monitoring: typing.Optional[builtins.bool] = None,
104004
+ ebs_optimized: typing.Optional[builtins.bool] = None,
103853
104005
  init: typing.Optional[CloudFormationInit] = None,
103854
104006
  init_options: typing.Optional[typing.Union[ApplyCloudFormationInitOptions, typing.Dict[builtins.str, typing.Any]]] = None,
103855
104007
  instance_name: typing.Optional[builtins.str] = None,
@@ -103900,6 +104052,7 @@ def _typecheckingstub__2d4dc63c6e6ee3ddc68d5dd204d8ac5ef1f1dec37a7b84d636225df1c
103900
104052
  block_devices: typing.Optional[typing.Sequence[typing.Union[BlockDevice, typing.Dict[builtins.str, typing.Any]]]] = None,
103901
104053
  credit_specification: typing.Optional[CpuCredits] = None,
103902
104054
  detailed_monitoring: typing.Optional[builtins.bool] = None,
104055
+ ebs_optimized: typing.Optional[builtins.bool] = None,
103903
104056
  init: typing.Optional[CloudFormationInit] = None,
103904
104057
  init_options: typing.Optional[typing.Union[ApplyCloudFormationInitOptions, typing.Dict[builtins.str, typing.Any]]] = None,
103905
104058
  instance_name: typing.Optional[builtins.str] = None,
@@ -104972,6 +105125,8 @@ def _typecheckingstub__32d66fb5148d20d001b12c0d2a13afa9f9d62d2ad84dc7e3eccb544d6
104972
105125
  after_network: typing.Optional[builtins.bool] = None,
104973
105126
  cwd: typing.Optional[builtins.str] = None,
104974
105127
  description: typing.Optional[builtins.str] = None,
105128
+ environment_files: typing.Optional[typing.Sequence[builtins.str]] = None,
105129
+ environment_variables: typing.Optional[typing.Mapping[builtins.str, builtins.str]] = None,
104975
105130
  group: typing.Optional[builtins.str] = None,
104976
105131
  keep_running: typing.Optional[builtins.bool] = None,
104977
105132
  user: typing.Optional[builtins.str] = None,