aws-cdk-lib 2.115.0__py3-none-any.whl → 2.116.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 (66) hide show
  1. aws_cdk/__init__.py +801 -356
  2. aws_cdk/_jsii/__init__.py +1 -1
  3. aws_cdk/_jsii/{aws-cdk-lib@2.115.0.jsii.tgz → aws-cdk-lib@2.116.1.jsii.tgz} +0 -0
  4. aws_cdk/aws_apigateway/__init__.py +3 -1
  5. aws_cdk/aws_apigatewayv2/__init__.py +595 -222
  6. aws_cdk/aws_apigatewayv2_integrations/__init__.py +4 -5
  7. aws_cdk/aws_applicationautoscaling/__init__.py +51 -15
  8. aws_cdk/aws_appsync/__init__.py +14 -3
  9. aws_cdk/aws_autoscaling/__init__.py +6 -0
  10. aws_cdk/aws_b2bi/__init__.py +2445 -0
  11. aws_cdk/aws_cloud9/__init__.py +63 -63
  12. aws_cdk/aws_cloudfront/__init__.py +394 -0
  13. aws_cdk/aws_cloudfront/experimental/__init__.py +5 -2
  14. aws_cdk/aws_cloudtrail/__init__.py +90 -11
  15. aws_cdk/aws_cloudwatch/__init__.py +6 -6
  16. aws_cdk/aws_codedeploy/__init__.py +88 -15
  17. aws_cdk/aws_codepipeline/__init__.py +645 -0
  18. aws_cdk/aws_cognito/__init__.py +13 -26
  19. aws_cdk/aws_config/__init__.py +315 -1
  20. aws_cdk/aws_connect/__init__.py +532 -37
  21. aws_cdk/aws_controltower/__init__.py +4 -4
  22. aws_cdk/aws_datasync/__init__.py +6 -4
  23. aws_cdk/aws_dms/__init__.py +241 -131
  24. aws_cdk/aws_dynamodb/__init__.py +8 -0
  25. aws_cdk/aws_ec2/__init__.py +1030 -45
  26. aws_cdk/aws_ecr/__init__.py +78 -10
  27. aws_cdk/aws_ecs/__init__.py +210 -2
  28. aws_cdk/aws_ecs_patterns/__init__.py +77 -62
  29. aws_cdk/aws_eks/__init__.py +8 -1
  30. aws_cdk/aws_elasticache/__init__.py +136 -10
  31. aws_cdk/aws_elasticloadbalancingv2/__init__.py +10 -13
  32. aws_cdk/aws_emr/__init__.py +234 -17
  33. aws_cdk/aws_eventschemas/__init__.py +15 -13
  34. aws_cdk/aws_fis/__init__.py +33 -13
  35. aws_cdk/aws_gamelift/__init__.py +47 -0
  36. aws_cdk/aws_imagebuilder/__init__.py +922 -84
  37. aws_cdk/aws_internetmonitor/__init__.py +12 -10
  38. aws_cdk/aws_iot/__init__.py +26 -46
  39. aws_cdk/aws_iottwinmaker/__init__.py +36 -34
  40. aws_cdk/aws_lambda/__init__.py +19 -15
  41. aws_cdk/aws_lambda_nodejs/__init__.py +5 -2
  42. aws_cdk/aws_logs/__init__.py +6 -6
  43. aws_cdk/aws_opensearchservice/__init__.py +5 -3
  44. aws_cdk/aws_organizations/__init__.py +3 -3
  45. aws_cdk/aws_osis/__init__.py +17 -13
  46. aws_cdk/aws_rds/__init__.py +6 -0
  47. aws_cdk/aws_s3/__init__.py +4 -2
  48. aws_cdk/aws_s3outposts/__init__.py +8 -8
  49. aws_cdk/aws_sagemaker/__init__.py +17 -94
  50. aws_cdk/aws_secretsmanager/__init__.py +9 -7
  51. aws_cdk/aws_securityhub/__init__.py +18 -0
  52. aws_cdk/aws_servicecatalogappregistry/__init__.py +31 -0
  53. aws_cdk/aws_ses/__init__.py +58 -11
  54. aws_cdk/aws_sns/__init__.py +309 -10
  55. aws_cdk/aws_ssm/__init__.py +3 -5
  56. aws_cdk/aws_stepfunctions/__init__.py +335 -19
  57. aws_cdk/aws_stepfunctions_tasks/__init__.py +388 -38
  58. aws_cdk/aws_transfer/__init__.py +37 -10
  59. aws_cdk/custom_resources/__init__.py +443 -1
  60. aws_cdk/triggers/__init__.py +5 -2
  61. {aws_cdk_lib-2.115.0.dist-info → aws_cdk_lib-2.116.1.dist-info}/METADATA +1 -1
  62. {aws_cdk_lib-2.115.0.dist-info → aws_cdk_lib-2.116.1.dist-info}/RECORD +66 -65
  63. {aws_cdk_lib-2.115.0.dist-info → aws_cdk_lib-2.116.1.dist-info}/LICENSE +0 -0
  64. {aws_cdk_lib-2.115.0.dist-info → aws_cdk_lib-2.116.1.dist-info}/NOTICE +0 -0
  65. {aws_cdk_lib-2.115.0.dist-info → aws_cdk_lib-2.116.1.dist-info}/WHEEL +0 -0
  66. {aws_cdk_lib-2.115.0.dist-info → aws_cdk_lib-2.116.1.dist-info}/top_level.txt +0 -0
@@ -1720,6 +1720,70 @@ instance = ec2.Instance(self, "Instance",
1720
1720
  )
1721
1721
  ```
1722
1722
 
1723
+ ### Specifying a key pair
1724
+
1725
+ To allow SSH access to an EC2 instance by default, a Key Pair must be specified. Key pairs can
1726
+ be provided with the `keyPair` property to instances and launch templates. You can create a
1727
+ key pair for an instance like this:
1728
+
1729
+ ```python
1730
+ # vpc: ec2.Vpc
1731
+ # instance_type: ec2.InstanceType
1732
+
1733
+
1734
+ key_pair = ec2.KeyPair(self, "KeyPair",
1735
+ type=ec2.KeyPairType.ED25519,
1736
+ format=ec2.KeyPairFormat.PEM
1737
+ )
1738
+ instance = ec2.Instance(self, "Instance",
1739
+ vpc=vpc,
1740
+ instance_type=instance_type,
1741
+ machine_image=ec2.MachineImage.latest_amazon_linux2023(),
1742
+ # Use the custom key pair
1743
+ key_pair=key_pair
1744
+ )
1745
+ ```
1746
+
1747
+ When a new EC2 Key Pair is created (without imported material), the private key material is
1748
+ automatically stored in Systems Manager Parameter Store. This can be retrieved from the key pair
1749
+ construct:
1750
+
1751
+ ```python
1752
+ key_pair = ec2.KeyPair(self, "KeyPair")
1753
+ private_key = key_pair.private_key
1754
+ ```
1755
+
1756
+ If you already have an SSH key that you wish to use in EC2, that can be provided when constructing the
1757
+ `KeyPair`. If public key material is provided, the key pair is considered "imported" and there
1758
+ will not be any data automatically stored in Systems Manager Parameter Store and the `type` property
1759
+ cannot be specified for the key pair.
1760
+
1761
+ ```python
1762
+ key_pair = ec2.KeyPair(self, "KeyPair",
1763
+ public_key_material="ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIB7jpNzG+YG0s+xIGWbxrxIZiiozHOEuzIJacvASP0mq"
1764
+ )
1765
+ ```
1766
+
1767
+ #### Using an existing EC2 Key Pair
1768
+
1769
+ If you already have an EC2 Key Pair created outside of the CDK, you can import that key to
1770
+ your CDK stack.
1771
+
1772
+ You can import it purely by name:
1773
+
1774
+ ```python
1775
+ key_pair = ec2.KeyPair.from_key_pair_name(self, "KeyPair", "the-keypair-name")
1776
+ ```
1777
+
1778
+ Or by specifying additional attributes:
1779
+
1780
+ ```python
1781
+ key_pair = ec2.KeyPair.from_key_pair_attributes(self, "KeyPair",
1782
+ key_pair_name="the-keypair-name",
1783
+ type=ec2.KeyPairType.RSA
1784
+ )
1785
+ ```
1786
+
1723
1787
  ## VPC Flow Logs
1724
1788
 
1725
1789
  VPC Flow Logs is a feature that enables you to capture information about the IP traffic going to and from network interfaces in your VPC. Flow log data can be published to Amazon CloudWatch Logs and Amazon S3. After you've created a flow log, you can retrieve and view its data in the chosen destination. ([https://docs.aws.amazon.com/vpc/latest/userguide/flow-logs.html](https://docs.aws.amazon.com/vpc/latest/userguide/flow-logs.html)).
@@ -2193,6 +2257,7 @@ from ..aws_s3 import IBucket as _IBucket_42e086fd
2193
2257
  from ..aws_s3_assets import (
2194
2258
  Asset as _Asset_ac2a7e61, AssetOptions as _AssetOptions_2aa69621
2195
2259
  )
2260
+ from ..aws_ssm import IStringParameter as _IStringParameter_f2b707f9
2196
2261
 
2197
2262
 
2198
2263
  class AclCidr(
@@ -12573,11 +12638,11 @@ class CfnEC2Fleet(
12573
12638
 
12574
12639
  ``TargetCapacitySpecificationRequest`` is a property of the `AWS::EC2::EC2Fleet <https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-ec2fleet.html>`_ resource.
12575
12640
 
12576
- :param total_target_capacity: The number of units to request, filled using ``DefaultTargetCapacityType`` .
12577
- :param default_target_capacity_type: The default ``TotalTargetCapacity`` , which is either ``Spot`` or ``On-Demand`` .
12641
+ :param total_target_capacity: The number of units to request, filled using the default target capacity type.
12642
+ :param default_target_capacity_type: The default target capacity type.
12578
12643
  :param on_demand_target_capacity: The number of On-Demand units to request.
12579
12644
  :param spot_target_capacity: The number of Spot units to request.
12580
- :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)
12645
+ :param target_capacity_unit_type: The unit for the target capacity. You can specify this parameter only when using attributed-based instance type selection. Default: ``units`` (the number of instances)
12581
12646
 
12582
12647
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ec2fleet-targetcapacityspecificationrequest.html
12583
12648
  :exampleMetadata: fixture=_generated
@@ -12619,7 +12684,7 @@ class CfnEC2Fleet(
12619
12684
 
12620
12685
  @builtins.property
12621
12686
  def total_target_capacity(self) -> jsii.Number:
12622
- '''The number of units to request, filled using ``DefaultTargetCapacityType`` .
12687
+ '''The number of units to request, filled using the default target capacity type.
12623
12688
 
12624
12689
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ec2fleet-targetcapacityspecificationrequest.html#cfn-ec2-ec2fleet-targetcapacityspecificationrequest-totaltargetcapacity
12625
12690
  '''
@@ -12629,7 +12694,7 @@ class CfnEC2Fleet(
12629
12694
 
12630
12695
  @builtins.property
12631
12696
  def default_target_capacity_type(self) -> typing.Optional[builtins.str]:
12632
- '''The default ``TotalTargetCapacity`` , which is either ``Spot`` or ``On-Demand`` .
12697
+ '''The default target capacity type.
12633
12698
 
12634
12699
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ec2fleet-targetcapacityspecificationrequest.html#cfn-ec2-ec2fleet-targetcapacityspecificationrequest-defaulttargetcapacitytype
12635
12700
  '''
@@ -12656,9 +12721,9 @@ class CfnEC2Fleet(
12656
12721
 
12657
12722
  @builtins.property
12658
12723
  def target_capacity_unit_type(self) -> typing.Optional[builtins.str]:
12659
- '''The unit for the target capacity. ``TargetCapacityUnitType`` can only be specified when ``InstanceRequirements`` is specified.
12724
+ '''The unit for the target capacity. You can specify this parameter only when using attributed-based instance type selection.
12660
12725
 
12661
- Default: ``units`` (translates to number of instances)
12726
+ Default: ``units`` (the number of instances)
12662
12727
 
12663
12728
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ec2fleet-targetcapacityspecificationrequest.html#cfn-ec2-ec2fleet-targetcapacityspecificationrequest-targetcapacityunittype
12664
12729
  '''
@@ -18551,11 +18616,11 @@ class CfnInstance(
18551
18616
  :param security_group_ids: The IDs of the security groups. You can specify the IDs of existing security groups and references to resources created by the stack template. If you specify a network interface, you must specify any security groups as part of the network interface.
18552
18617
  :param security_groups: [Default VPC] The names of the security groups. For a nondefault VPC, you must use security group IDs instead. You cannot specify this option and the network interfaces option in the same request. The list can contain both the name of existing Amazon EC2 security groups or references to AWS::EC2::SecurityGroup resources created in the template. Default: Amazon EC2 uses the default security group.
18553
18618
  :param source_dest_check: Enable or disable source/destination checks, which ensure that the instance is either the source or the destination of any traffic that it receives. If the value is ``true`` , source/destination checks are enabled; otherwise, they are disabled. The default value is ``true`` . You must disable source/destination checks if the instance runs services such as network address translation, routing, or firewalls.
18554
- :param ssm_associations: The SSM `document <https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ssm-document.html>`_ and parameter values in AWS Systems Manager to associate with this instance. To use this property, you must specify an IAM instance profile role for the instance. For more information, see `Create an IAM instance profile for Systems Manager <https://docs.aws.amazon.com/systems-manager/latest/userguide/sysman-configuring-access-role.html>`_ in the *AWS Systems Manager User Guide* . .. epigraph:: You can currently associate only one document with an instance.
18619
+ :param ssm_associations: The SSM `document <https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ssm-document.html>`_ and parameter values in AWS Systems Manager to associate with this instance. To use this property, you must specify an IAM instance profile role for the instance. For more information, see `Create an IAM instance profile for Systems Manager <https://docs.aws.amazon.com/systems-manager/latest/userguide/sysman-configuring-access-role.html>`_ in the *AWS Systems Manager User Guide* . .. epigraph:: You can associate only one document with an instance.
18555
18620
  :param subnet_id: The ID of the subnet to launch the instance into. If you specify a network interface, you must specify any subnets as part of the network interface.
18556
18621
  :param tags: The tags to add to the instance. These tags are not applied to the EBS volumes, such as the root volume, unless `PropagateTagsToVolumeOnCreation <https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance.html#cfn-ec2-instance-propagatetagstovolumeoncreation>`_ is ``true`` .
18557
18622
  :param tenancy: The tenancy of the instance. An instance with a tenancy of ``dedicated`` runs on single-tenant hardware.
18558
- :param user_data: The user data script to make available to the instance. User data is limited to 16 KB. You must provide base64-encoded text. For more information, see `Fn::Base64 <https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-base64.html>`_ . User data runs only at instance launch. For more information, see `Run commands on your Linux instance at launch <https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/user-data.html>`_ and `Run commands on your Windows instance at launch <https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/ec2-windows-user-data.html>`_ .
18623
+ :param user_data: The parameters or scripts to store as user data. Any scripts in user data are run when you launch the instance. User data is limited to 16 KB. You must provide base64-encoded text. For more information, see `Fn::Base64 <https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-base64.html>`_ . If the root volume is an EBS volume and you update user data, CloudFormation restarts the instance. If the root volume is an instance store volume and you update user data, the instance is replaced.
18559
18624
  :param volumes: The volumes to attach to the instance.
18560
18625
  '''
18561
18626
  if __debug__:
@@ -18657,6 +18722,14 @@ class CfnInstance(
18657
18722
  '''
18658
18723
  return typing.cast(builtins.str, jsii.get(self, "attrId"))
18659
18724
 
18725
+ @builtins.property
18726
+ @jsii.member(jsii_name="attrInstanceId")
18727
+ def attr_instance_id(self) -> builtins.str:
18728
+ '''
18729
+ :cloudformationAttribute: InstanceId
18730
+ '''
18731
+ return typing.cast(builtins.str, jsii.get(self, "attrInstanceId"))
18732
+
18660
18733
  @builtins.property
18661
18734
  @jsii.member(jsii_name="attrPrivateDnsName")
18662
18735
  def attr_private_dns_name(self) -> builtins.str:
@@ -19320,7 +19393,7 @@ class CfnInstance(
19320
19393
  @builtins.property
19321
19394
  @jsii.member(jsii_name="userData")
19322
19395
  def user_data(self) -> typing.Optional[builtins.str]:
19323
- '''The user data script to make available to the instance.'''
19396
+ '''The parameters or scripts to store as user data.'''
19324
19397
  return typing.cast(typing.Optional[builtins.str], jsii.get(self, "userData"))
19325
19398
 
19326
19399
  @user_data.setter
@@ -20452,7 +20525,7 @@ class CfnInstance(
20452
20525
 
20453
20526
  :param device_index: The position of the network interface in the attachment order. A primary network interface has a device index of 0. If you create a network interface when launching an instance, you must specify the device index.
20454
20527
  :param associate_carrier_ip_address: Indicates whether to assign a carrier IP address to the network interface. You can only assign a carrier IP address to a network interface that is in a subnet in a Wavelength Zone. For more information about carrier IP addresses, see `Carrier IP address <https://docs.aws.amazon.com/wavelength/latest/developerguide/how-wavelengths-work.html#provider-owned-ip>`_ in the *AWS Wavelength Developer Guide* .
20455
- :param associate_public_ip_address: Indicates whether to assign a public IPv4 address to an instance. Applies only if creating a network interface when launching an instance. The network interface must be the primary network interface. If launching into a default subnet, the default value is ``true`` .
20528
+ :param associate_public_ip_address: Indicates whether to assign a public IPv4 address to an instance. Applies only if creating a network interface when launching an instance. The network interface must be the primary network interface. If launching into a default subnet, the default value is ``true`` . Starting on February 1, 2024, AWS will charge for all public IPv4 addresses, including public IPv4 addresses associated with running instances and Elastic IP addresses. For more information, see the *Public IPv4 Address* tab on the `VPC pricing page <https://docs.aws.amazon.com/vpc/pricing/>`_ .
20456
20529
  :param delete_on_termination: Indicates whether the network interface is deleted when the instance is terminated. Applies only if creating a network interface when launching an instance.
20457
20530
  :param description: The description of the network interface. Applies only if creating a network interface when launching an instance.
20458
20531
  :param group_set: The IDs of the security groups for the network interface. Applies only if creating a network interface when launching an instance.
@@ -20574,6 +20647,8 @@ class CfnInstance(
20574
20647
 
20575
20648
  Applies only if creating a network interface when launching an instance. The network interface must be the primary network interface. If launching into a default subnet, the default value is ``true`` .
20576
20649
 
20650
+ Starting on February 1, 2024, AWS will charge for all public IPv4 addresses, including public IPv4 addresses associated with running instances and Elastic IP addresses. For more information, see the *Public IPv4 Address* tab on the `VPC pricing page <https://docs.aws.amazon.com/vpc/pricing/>`_ .
20651
+
20577
20652
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance-networkinterface.html#cfn-ec2-instance-networkinterface-associatepublicipaddress
20578
20653
  '''
20579
20654
  result = self._values.get("associate_public_ip_address")
@@ -21517,11 +21592,11 @@ class CfnInstanceProps:
21517
21592
  :param security_group_ids: The IDs of the security groups. You can specify the IDs of existing security groups and references to resources created by the stack template. If you specify a network interface, you must specify any security groups as part of the network interface.
21518
21593
  :param security_groups: [Default VPC] The names of the security groups. For a nondefault VPC, you must use security group IDs instead. You cannot specify this option and the network interfaces option in the same request. The list can contain both the name of existing Amazon EC2 security groups or references to AWS::EC2::SecurityGroup resources created in the template. Default: Amazon EC2 uses the default security group.
21519
21594
  :param source_dest_check: Enable or disable source/destination checks, which ensure that the instance is either the source or the destination of any traffic that it receives. If the value is ``true`` , source/destination checks are enabled; otherwise, they are disabled. The default value is ``true`` . You must disable source/destination checks if the instance runs services such as network address translation, routing, or firewalls.
21520
- :param ssm_associations: The SSM `document <https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ssm-document.html>`_ and parameter values in AWS Systems Manager to associate with this instance. To use this property, you must specify an IAM instance profile role for the instance. For more information, see `Create an IAM instance profile for Systems Manager <https://docs.aws.amazon.com/systems-manager/latest/userguide/sysman-configuring-access-role.html>`_ in the *AWS Systems Manager User Guide* . .. epigraph:: You can currently associate only one document with an instance.
21595
+ :param ssm_associations: The SSM `document <https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ssm-document.html>`_ and parameter values in AWS Systems Manager to associate with this instance. To use this property, you must specify an IAM instance profile role for the instance. For more information, see `Create an IAM instance profile for Systems Manager <https://docs.aws.amazon.com/systems-manager/latest/userguide/sysman-configuring-access-role.html>`_ in the *AWS Systems Manager User Guide* . .. epigraph:: You can associate only one document with an instance.
21521
21596
  :param subnet_id: The ID of the subnet to launch the instance into. If you specify a network interface, you must specify any subnets as part of the network interface.
21522
21597
  :param tags: The tags to add to the instance. These tags are not applied to the EBS volumes, such as the root volume, unless `PropagateTagsToVolumeOnCreation <https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance.html#cfn-ec2-instance-propagatetagstovolumeoncreation>`_ is ``true`` .
21523
21598
  :param tenancy: The tenancy of the instance. An instance with a tenancy of ``dedicated`` runs on single-tenant hardware.
21524
- :param user_data: The user data script to make available to the instance. User data is limited to 16 KB. You must provide base64-encoded text. For more information, see `Fn::Base64 <https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-base64.html>`_ . User data runs only at instance launch. For more information, see `Run commands on your Linux instance at launch <https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/user-data.html>`_ and `Run commands on your Windows instance at launch <https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/ec2-windows-user-data.html>`_ .
21599
+ :param user_data: The parameters or scripts to store as user data. Any scripts in user data are run when you launch the instance. User data is limited to 16 KB. You must provide base64-encoded text. For more information, see `Fn::Base64 <https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-base64.html>`_ . If the root volume is an EBS volume and you update user data, CloudFormation restarts the instance. If the root volume is an instance store volume and you update user data, the instance is replaced.
21525
21600
  :param volumes: The volumes to attach to the instance.
21526
21601
 
21527
21602
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-instance.html
@@ -22231,7 +22306,7 @@ class CfnInstanceProps:
22231
22306
 
22232
22307
  .. epigraph::
22233
22308
 
22234
- You can currently associate only one document with an instance.
22309
+ You can associate only one document with an instance.
22235
22310
 
22236
22311
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-instance.html#cfn-ec2-instance-ssmassociations
22237
22312
  '''
@@ -22273,11 +22348,11 @@ class CfnInstanceProps:
22273
22348
 
22274
22349
  @builtins.property
22275
22350
  def user_data(self) -> typing.Optional[builtins.str]:
22276
- '''The user data script to make available to the instance.
22351
+ '''The parameters or scripts to store as user data.
22277
22352
 
22278
- User data is limited to 16 KB. You must provide base64-encoded text. For more information, see `Fn::Base64 <https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-base64.html>`_ .
22353
+ Any scripts in user data are run when you launch the instance. User data is limited to 16 KB. You must provide base64-encoded text. For more information, see `Fn::Base64 <https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-base64.html>`_ .
22279
22354
 
22280
- User data runs only at instance launch. For more information, see `Run commands on your Linux instance at launch <https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/user-data.html>`_ and `Run commands on your Windows instance at launch <https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/ec2-windows-user-data.html>`_ .
22355
+ If the root volume is an EBS volume and you update user data, CloudFormation restarts the instance. If the root volume is an instance store volume and you update user data, the instance is replaced.
22281
22356
 
22282
22357
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-instance.html#cfn-ec2-instance-userdata
22283
22358
  '''
@@ -26561,7 +26636,7 @@ class CfnLaunchTemplate(
26561
26636
  :param http_endpoint: Enables or disables the HTTP metadata endpoint on your instances. If the parameter is not specified, the default state is ``enabled`` . .. epigraph:: If you specify a value of ``disabled`` , you will not be able to access your instance metadata.
26562
26637
  :param http_protocol_ipv6: Enables or disables the IPv6 endpoint for the instance metadata service. Default: ``disabled``
26563
26638
  :param http_put_response_hop_limit: The desired HTTP PUT response hop limit for instance metadata requests. The larger the number, the further instance metadata requests can travel. Default: ``1`` Possible values: Integers from 1 to 64
26564
- :param http_tokens: IMDSv2 uses token-backed sessions. Set the use of HTTP tokens to ``optional`` (in other words, set the use of IMDSv2 to ``optional`` ) or ``required`` (in other words, set the use of IMDSv2 to ``required`` ). - ``optional`` - When IMDSv2 is optional, you can choose to retrieve instance metadata with or without a session token in your request. If you retrieve the IAM role credentials without a token, the IMDSv1 role credentials are returned. If you retrieve the IAM role credentials using a valid session token, the IMDSv2 role credentials are returned. - ``required`` - When IMDSv2 is required, you must send a session token with any instance metadata retrieval requests. In this state, retrieving the IAM role credentials always returns IMDSv2 credentials; IMDSv1 credentials are not available. Default: ``optional``
26639
+ :param http_tokens: Indicates whether IMDSv2 is required. - ``optional`` - IMDSv2 is optional. You can choose whether to send a session token in your instance metadata retrieval requests. If you retrieve IAM role credentials without a session token, you receive the IMDSv1 role credentials. If you retrieve IAM role credentials using a valid session token, you receive the IMDSv2 role credentials. - ``required`` - IMDSv2 is required. You must send a session token in your instance metadata retrieval requests. With this option, retrieving the IAM role credentials always returns IMDSv2 credentials; IMDSv1 credentials are not available. Default: If the value of ``ImdsSupport`` for the Amazon Machine Image (AMI) for your instance is ``v2.0`` , the default is ``required`` .
26565
26640
  :param instance_metadata_tags: Set to ``enabled`` to allow access to instance tags from the instance metadata. Set to ``disabled`` to turn off access to instance tags from the instance metadata. For more information, see `Work with instance tags using the instance metadata <https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Using_Tags.html#work-with-tags-in-IMDS>`_ . Default: ``disabled``
26566
26641
 
26567
26642
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-metadataoptions.html
@@ -26642,14 +26717,12 @@ class CfnLaunchTemplate(
26642
26717
 
26643
26718
  @builtins.property
26644
26719
  def http_tokens(self) -> typing.Optional[builtins.str]:
26645
- '''IMDSv2 uses token-backed sessions.
26720
+ '''Indicates whether IMDSv2 is required.
26646
26721
 
26647
- Set the use of HTTP tokens to ``optional`` (in other words, set the use of IMDSv2 to ``optional`` ) or ``required`` (in other words, set the use of IMDSv2 to ``required`` ).
26722
+ - ``optional`` - IMDSv2 is optional. You can choose whether to send a session token in your instance metadata retrieval requests. If you retrieve IAM role credentials without a session token, you receive the IMDSv1 role credentials. If you retrieve IAM role credentials using a valid session token, you receive the IMDSv2 role credentials.
26723
+ - ``required`` - IMDSv2 is required. You must send a session token in your instance metadata retrieval requests. With this option, retrieving the IAM role credentials always returns IMDSv2 credentials; IMDSv1 credentials are not available.
26648
26724
 
26649
- - ``optional`` - When IMDSv2 is optional, you can choose to retrieve instance metadata with or without a session token in your request. If you retrieve the IAM role credentials without a token, the IMDSv1 role credentials are returned. If you retrieve the IAM role credentials using a valid session token, the IMDSv2 role credentials are returned.
26650
- - ``required`` - When IMDSv2 is required, you must send a session token with any instance metadata retrieval requests. In this state, retrieving the IAM role credentials always returns IMDSv2 credentials; IMDSv1 credentials are not available.
26651
-
26652
- Default: ``optional``
26725
+ Default: If the value of ``ImdsSupport`` for the Amazon Machine Image (AMI) for your instance is ``v2.0`` , the default is ``required`` .
26653
26726
 
26654
26727
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-metadataoptions.html#cfn-ec2-launchtemplate-metadataoptions-httptokens
26655
26728
  '''
@@ -26955,7 +27028,7 @@ class CfnLaunchTemplate(
26955
27028
  ``NetworkInterface`` is a property of `AWS::EC2::LaunchTemplate LaunchTemplateData <https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata.html>`_ .
26956
27029
 
26957
27030
  :param associate_carrier_ip_address: Associates a Carrier IP address with eth0 for a new network interface. Use this option when you launch an instance in a Wavelength Zone and want to associate a Carrier IP address with the network interface. For more information about Carrier IP addresses, see `Carrier IP addresses <https://docs.aws.amazon.com/wavelength/latest/developerguide/how-wavelengths-work.html#provider-owned-ip>`_ in the *AWS Wavelength Developer Guide* .
26958
- :param associate_public_ip_address: Associates a public IPv4 address with eth0 for a new network interface.
27031
+ :param associate_public_ip_address: Associates a public IPv4 address with eth0 for a new network interface. Starting on February 1, 2024, AWS will charge for all public IPv4 addresses, including public IPv4 addresses associated with running instances and Elastic IP addresses. For more information, see the *Public IPv4 Address* tab on the `Amazon VPC pricing page <https://docs.aws.amazon.com/vpc/pricing/>`_ .
26959
27032
  :param connection_tracking_specification: A connection tracking specification for the network interface.
26960
27033
  :param delete_on_termination: Indicates whether the network interface is deleted when the instance is terminated.
26961
27034
  :param description: A description for the network interface.
@@ -27118,6 +27191,8 @@ class CfnLaunchTemplate(
27118
27191
  ) -> typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]]:
27119
27192
  '''Associates a public IPv4 address with eth0 for a new network interface.
27120
27193
 
27194
+ Starting on February 1, 2024, AWS will charge for all public IPv4 addresses, including public IPv4 addresses associated with running instances and Elastic IP addresses. For more information, see the *Public IPv4 Address* tab on the `Amazon VPC pricing page <https://docs.aws.amazon.com/vpc/pricing/>`_ .
27195
+
27121
27196
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-networkinterface.html#cfn-ec2-launchtemplate-networkinterface-associatepublicipaddress
27122
27197
  '''
27123
27198
  result = self._values.get("associate_public_ip_address")
@@ -38455,6 +38530,7 @@ class CfnRoute(
38455
38530
 
38456
38531
  # the properties below are optional
38457
38532
  carrier_gateway_id="carrierGatewayId",
38533
+ core_network_arn="coreNetworkArn",
38458
38534
  destination_cidr_block="destinationCidrBlock",
38459
38535
  destination_ipv6_cidr_block="destinationIpv6CidrBlock",
38460
38536
  destination_prefix_list_id="destinationPrefixListId",
@@ -38477,6 +38553,7 @@ class CfnRoute(
38477
38553
  *,
38478
38554
  route_table_id: builtins.str,
38479
38555
  carrier_gateway_id: typing.Optional[builtins.str] = None,
38556
+ core_network_arn: typing.Optional[builtins.str] = None,
38480
38557
  destination_cidr_block: typing.Optional[builtins.str] = None,
38481
38558
  destination_ipv6_cidr_block: typing.Optional[builtins.str] = None,
38482
38559
  destination_prefix_list_id: typing.Optional[builtins.str] = None,
@@ -38495,6 +38572,7 @@ class CfnRoute(
38495
38572
  :param id: Construct identifier for this resource (unique in its scope).
38496
38573
  :param route_table_id: The ID of the route table for the route.
38497
38574
  :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.
38575
+ :param core_network_arn: The Amazon Resource Name (ARN) of the core network.
38498
38576
  :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`` .
38499
38577
  :param destination_ipv6_cidr_block: The IPv6 CIDR block used for the destination match. Routing decisions are based on the most specific match.
38500
38578
  :param destination_prefix_list_id: The ID of a prefix list used for the destination match.
@@ -38515,6 +38593,7 @@ class CfnRoute(
38515
38593
  props = CfnRouteProps(
38516
38594
  route_table_id=route_table_id,
38517
38595
  carrier_gateway_id=carrier_gateway_id,
38596
+ core_network_arn=core_network_arn,
38518
38597
  destination_cidr_block=destination_cidr_block,
38519
38598
  destination_ipv6_cidr_block=destination_ipv6_cidr_block,
38520
38599
  destination_prefix_list_id=destination_prefix_list_id,
@@ -38601,6 +38680,19 @@ class CfnRoute(
38601
38680
  check_type(argname="argument value", value=value, expected_type=type_hints["value"])
38602
38681
  jsii.set(self, "carrierGatewayId", value)
38603
38682
 
38683
+ @builtins.property
38684
+ @jsii.member(jsii_name="coreNetworkArn")
38685
+ def core_network_arn(self) -> typing.Optional[builtins.str]:
38686
+ '''The Amazon Resource Name (ARN) of the core network.'''
38687
+ return typing.cast(typing.Optional[builtins.str], jsii.get(self, "coreNetworkArn"))
38688
+
38689
+ @core_network_arn.setter
38690
+ def core_network_arn(self, value: typing.Optional[builtins.str]) -> None:
38691
+ if __debug__:
38692
+ type_hints = typing.get_type_hints(_typecheckingstub__535edefe9ec250f819eacd60779bcf6b8d4afa9cd9b9ec8142ddfb03034be5ac)
38693
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
38694
+ jsii.set(self, "coreNetworkArn", value)
38695
+
38604
38696
  @builtins.property
38605
38697
  @jsii.member(jsii_name="destinationCidrBlock")
38606
38698
  def destination_cidr_block(self) -> typing.Optional[builtins.str]:
@@ -38767,6 +38859,7 @@ class CfnRoute(
38767
38859
  name_mapping={
38768
38860
  "route_table_id": "routeTableId",
38769
38861
  "carrier_gateway_id": "carrierGatewayId",
38862
+ "core_network_arn": "coreNetworkArn",
38770
38863
  "destination_cidr_block": "destinationCidrBlock",
38771
38864
  "destination_ipv6_cidr_block": "destinationIpv6CidrBlock",
38772
38865
  "destination_prefix_list_id": "destinationPrefixListId",
@@ -38787,6 +38880,7 @@ class CfnRouteProps:
38787
38880
  *,
38788
38881
  route_table_id: builtins.str,
38789
38882
  carrier_gateway_id: typing.Optional[builtins.str] = None,
38883
+ core_network_arn: typing.Optional[builtins.str] = None,
38790
38884
  destination_cidr_block: typing.Optional[builtins.str] = None,
38791
38885
  destination_ipv6_cidr_block: typing.Optional[builtins.str] = None,
38792
38886
  destination_prefix_list_id: typing.Optional[builtins.str] = None,
@@ -38804,6 +38898,7 @@ class CfnRouteProps:
38804
38898
 
38805
38899
  :param route_table_id: The ID of the route table for the route.
38806
38900
  :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.
38901
+ :param core_network_arn: The Amazon Resource Name (ARN) of the core network.
38807
38902
  :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`` .
38808
38903
  :param destination_ipv6_cidr_block: The IPv6 CIDR block used for the destination match. Routing decisions are based on the most specific match.
38809
38904
  :param destination_prefix_list_id: The ID of a prefix list used for the destination match.
@@ -38831,6 +38926,7 @@ class CfnRouteProps:
38831
38926
 
38832
38927
  # the properties below are optional
38833
38928
  carrier_gateway_id="carrierGatewayId",
38929
+ core_network_arn="coreNetworkArn",
38834
38930
  destination_cidr_block="destinationCidrBlock",
38835
38931
  destination_ipv6_cidr_block="destinationIpv6CidrBlock",
38836
38932
  destination_prefix_list_id="destinationPrefixListId",
@@ -38849,6 +38945,7 @@ class CfnRouteProps:
38849
38945
  type_hints = typing.get_type_hints(_typecheckingstub__f90e7814d59b7c562ab4b24d54461eba6a4c88fbd5451ba2b2b0adf8441a452e)
38850
38946
  check_type(argname="argument route_table_id", value=route_table_id, expected_type=type_hints["route_table_id"])
38851
38947
  check_type(argname="argument carrier_gateway_id", value=carrier_gateway_id, expected_type=type_hints["carrier_gateway_id"])
38948
+ check_type(argname="argument core_network_arn", value=core_network_arn, expected_type=type_hints["core_network_arn"])
38852
38949
  check_type(argname="argument destination_cidr_block", value=destination_cidr_block, expected_type=type_hints["destination_cidr_block"])
38853
38950
  check_type(argname="argument destination_ipv6_cidr_block", value=destination_ipv6_cidr_block, expected_type=type_hints["destination_ipv6_cidr_block"])
38854
38951
  check_type(argname="argument destination_prefix_list_id", value=destination_prefix_list_id, expected_type=type_hints["destination_prefix_list_id"])
@@ -38866,6 +38963,8 @@ class CfnRouteProps:
38866
38963
  }
38867
38964
  if carrier_gateway_id is not None:
38868
38965
  self._values["carrier_gateway_id"] = carrier_gateway_id
38966
+ if core_network_arn is not None:
38967
+ self._values["core_network_arn"] = core_network_arn
38869
38968
  if destination_cidr_block is not None:
38870
38969
  self._values["destination_cidr_block"] = destination_cidr_block
38871
38970
  if destination_ipv6_cidr_block is not None:
@@ -38912,6 +39011,15 @@ class CfnRouteProps:
38912
39011
  result = self._values.get("carrier_gateway_id")
38913
39012
  return typing.cast(typing.Optional[builtins.str], result)
38914
39013
 
39014
+ @builtins.property
39015
+ def core_network_arn(self) -> typing.Optional[builtins.str]:
39016
+ '''The Amazon Resource Name (ARN) of the core network.
39017
+
39018
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-route.html#cfn-ec2-route-corenetworkarn
39019
+ '''
39020
+ result = self._values.get("core_network_arn")
39021
+ return typing.cast(typing.Optional[builtins.str], result)
39022
+
38915
39023
  @builtins.property
38916
39024
  def destination_cidr_block(self) -> typing.Optional[builtins.str]:
38917
39025
  '''The IPv4 CIDR address block used for the destination match.
@@ -40090,7 +40198,8 @@ class CfnSecurityGroupEgress(
40090
40198
  @builtins.property
40091
40199
  @jsii.member(jsii_name="attrId")
40092
40200
  def attr_id(self) -> builtins.str:
40093
- '''
40201
+ '''The Security Group Rule Id.
40202
+
40094
40203
  :cloudformationAttribute: Id
40095
40204
  '''
40096
40205
  return typing.cast(builtins.str, jsii.get(self, "attrId"))
@@ -41195,6 +41304,172 @@ class CfnSecurityGroupProps:
41195
41304
  )
41196
41305
 
41197
41306
 
41307
+ @jsii.implements(_IInspectable_c2943556)
41308
+ class CfnSnapshotBlockPublicAccess(
41309
+ _CfnResource_9df397a6,
41310
+ metaclass=jsii.JSIIMeta,
41311
+ jsii_type="aws-cdk-lib.aws_ec2.CfnSnapshotBlockPublicAccess",
41312
+ ):
41313
+ '''Specifies the state of the *block public access for snapshots* setting for the Region.
41314
+
41315
+ For more information, see `Block public access for snapshots <https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/block-public-access-snapshots.html>`_ .
41316
+
41317
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-snapshotblockpublicaccess.html
41318
+ :cloudformationResource: AWS::EC2::SnapshotBlockPublicAccess
41319
+ :exampleMetadata: fixture=_generated
41320
+
41321
+ Example::
41322
+
41323
+ # The code below shows an example of how to instantiate this type.
41324
+ # The values are placeholders you should change.
41325
+ from aws_cdk import aws_ec2 as ec2
41326
+
41327
+ cfn_snapshot_block_public_access = ec2.CfnSnapshotBlockPublicAccess(self, "MyCfnSnapshotBlockPublicAccess",
41328
+ state="state"
41329
+ )
41330
+ '''
41331
+
41332
+ def __init__(
41333
+ self,
41334
+ scope: _constructs_77d1e7e8.Construct,
41335
+ id: builtins.str,
41336
+ *,
41337
+ state: builtins.str,
41338
+ ) -> None:
41339
+ '''
41340
+ :param scope: Scope in which this resource is defined.
41341
+ :param id: Construct identifier for this resource (unique in its scope).
41342
+ :param state: The mode in which to enable block public access for snapshots for the Region. Specify one of the following values: - ``block-all-sharing`` - Prevents all public sharing of snapshots in the Region. Users in the account will no longer be able to request new public sharing. Additionally, snapshots that are already publicly shared are treated as private and they are no longer publicly available. .. epigraph:: If you enable block public access for snapshots in ``block-all-sharing`` mode, it does not change the permissions for snapshots that are already publicly shared. Instead, it prevents these snapshots from be publicly visible and publicly accessible. Therefore, the attributes for these snapshots still indicate that they are publicly shared, even though they are not publicly available. - ``block-new-sharing`` - Prevents only new public sharing of snapshots in the Region. Users in the account will no longer be able to request new public sharing. However, snapshots that are already publicly shared, remain publicly available.
41343
+ '''
41344
+ if __debug__:
41345
+ type_hints = typing.get_type_hints(_typecheckingstub__995a1a5869d618c24a624831b2ad5e725b73ab6134ba003d66411c58faf1187e)
41346
+ check_type(argname="argument scope", value=scope, expected_type=type_hints["scope"])
41347
+ check_type(argname="argument id", value=id, expected_type=type_hints["id"])
41348
+ props = CfnSnapshotBlockPublicAccessProps(state=state)
41349
+
41350
+ jsii.create(self.__class__, self, [scope, id, props])
41351
+
41352
+ @jsii.member(jsii_name="inspect")
41353
+ def inspect(self, inspector: _TreeInspector_488e0dd5) -> None:
41354
+ '''Examines the CloudFormation resource and discloses attributes.
41355
+
41356
+ :param inspector: tree inspector to collect and process attributes.
41357
+ '''
41358
+ if __debug__:
41359
+ type_hints = typing.get_type_hints(_typecheckingstub__856438104299447428cd955093ead73bce11b3f11c039205bcd5e194beb9b322)
41360
+ check_type(argname="argument inspector", value=inspector, expected_type=type_hints["inspector"])
41361
+ return typing.cast(None, jsii.invoke(self, "inspect", [inspector]))
41362
+
41363
+ @jsii.member(jsii_name="renderProperties")
41364
+ def _render_properties(
41365
+ self,
41366
+ props: typing.Mapping[builtins.str, typing.Any],
41367
+ ) -> typing.Mapping[builtins.str, typing.Any]:
41368
+ '''
41369
+ :param props: -
41370
+ '''
41371
+ if __debug__:
41372
+ type_hints = typing.get_type_hints(_typecheckingstub__5986589d73c46b7a96fd8cdffc5dd783512e594c0f96cf249a7577ed130d1c96)
41373
+ check_type(argname="argument props", value=props, expected_type=type_hints["props"])
41374
+ return typing.cast(typing.Mapping[builtins.str, typing.Any], jsii.invoke(self, "renderProperties", [props]))
41375
+
41376
+ @jsii.python.classproperty
41377
+ @jsii.member(jsii_name="CFN_RESOURCE_TYPE_NAME")
41378
+ def CFN_RESOURCE_TYPE_NAME(cls) -> builtins.str:
41379
+ '''The CloudFormation resource type name for this resource class.'''
41380
+ return typing.cast(builtins.str, jsii.sget(cls, "CFN_RESOURCE_TYPE_NAME"))
41381
+
41382
+ @builtins.property
41383
+ @jsii.member(jsii_name="attrAccountId")
41384
+ def attr_account_id(self) -> builtins.str:
41385
+ '''``Ref`` returns the ID of the AWS account.
41386
+
41387
+ :cloudformationAttribute: AccountId
41388
+ '''
41389
+ return typing.cast(builtins.str, jsii.get(self, "attrAccountId"))
41390
+
41391
+ @builtins.property
41392
+ @jsii.member(jsii_name="cfnProperties")
41393
+ def _cfn_properties(self) -> typing.Mapping[builtins.str, typing.Any]:
41394
+ return typing.cast(typing.Mapping[builtins.str, typing.Any], jsii.get(self, "cfnProperties"))
41395
+
41396
+ @builtins.property
41397
+ @jsii.member(jsii_name="state")
41398
+ def state(self) -> builtins.str:
41399
+ '''The mode in which to enable block public access for snapshots for the Region.'''
41400
+ return typing.cast(builtins.str, jsii.get(self, "state"))
41401
+
41402
+ @state.setter
41403
+ def state(self, value: builtins.str) -> None:
41404
+ if __debug__:
41405
+ type_hints = typing.get_type_hints(_typecheckingstub__a4c8cd7c082b41fda937b1f6a6a1a59e489b437d498c2b75a58ae1582086af7b)
41406
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
41407
+ jsii.set(self, "state", value)
41408
+
41409
+
41410
+ @jsii.data_type(
41411
+ jsii_type="aws-cdk-lib.aws_ec2.CfnSnapshotBlockPublicAccessProps",
41412
+ jsii_struct_bases=[],
41413
+ name_mapping={"state": "state"},
41414
+ )
41415
+ class CfnSnapshotBlockPublicAccessProps:
41416
+ def __init__(self, *, state: builtins.str) -> None:
41417
+ '''Properties for defining a ``CfnSnapshotBlockPublicAccess``.
41418
+
41419
+ :param state: The mode in which to enable block public access for snapshots for the Region. Specify one of the following values: - ``block-all-sharing`` - Prevents all public sharing of snapshots in the Region. Users in the account will no longer be able to request new public sharing. Additionally, snapshots that are already publicly shared are treated as private and they are no longer publicly available. .. epigraph:: If you enable block public access for snapshots in ``block-all-sharing`` mode, it does not change the permissions for snapshots that are already publicly shared. Instead, it prevents these snapshots from be publicly visible and publicly accessible. Therefore, the attributes for these snapshots still indicate that they are publicly shared, even though they are not publicly available. - ``block-new-sharing`` - Prevents only new public sharing of snapshots in the Region. Users in the account will no longer be able to request new public sharing. However, snapshots that are already publicly shared, remain publicly available.
41420
+
41421
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-snapshotblockpublicaccess.html
41422
+ :exampleMetadata: fixture=_generated
41423
+
41424
+ Example::
41425
+
41426
+ # The code below shows an example of how to instantiate this type.
41427
+ # The values are placeholders you should change.
41428
+ from aws_cdk import aws_ec2 as ec2
41429
+
41430
+ cfn_snapshot_block_public_access_props = ec2.CfnSnapshotBlockPublicAccessProps(
41431
+ state="state"
41432
+ )
41433
+ '''
41434
+ if __debug__:
41435
+ type_hints = typing.get_type_hints(_typecheckingstub__e66d65de803363af49ef406b4229988fd2680cccdc692b106aff40a80ff135ad)
41436
+ check_type(argname="argument state", value=state, expected_type=type_hints["state"])
41437
+ self._values: typing.Dict[builtins.str, typing.Any] = {
41438
+ "state": state,
41439
+ }
41440
+
41441
+ @builtins.property
41442
+ def state(self) -> builtins.str:
41443
+ '''The mode in which to enable block public access for snapshots for the Region.
41444
+
41445
+ Specify one of the following values:
41446
+
41447
+ - ``block-all-sharing`` - Prevents all public sharing of snapshots in the Region. Users in the account will no longer be able to request new public sharing. Additionally, snapshots that are already publicly shared are treated as private and they are no longer publicly available.
41448
+
41449
+ .. epigraph::
41450
+
41451
+ If you enable block public access for snapshots in ``block-all-sharing`` mode, it does not change the permissions for snapshots that are already publicly shared. Instead, it prevents these snapshots from be publicly visible and publicly accessible. Therefore, the attributes for these snapshots still indicate that they are publicly shared, even though they are not publicly available.
41452
+
41453
+ - ``block-new-sharing`` - Prevents only new public sharing of snapshots in the Region. Users in the account will no longer be able to request new public sharing. However, snapshots that are already publicly shared, remain publicly available.
41454
+
41455
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-snapshotblockpublicaccess.html#cfn-ec2-snapshotblockpublicaccess-state
41456
+ '''
41457
+ result = self._values.get("state")
41458
+ assert result is not None, "Required property 'state' is missing"
41459
+ return typing.cast(builtins.str, result)
41460
+
41461
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
41462
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
41463
+
41464
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
41465
+ return not (rhs == self)
41466
+
41467
+ def __repr__(self) -> str:
41468
+ return "CfnSnapshotBlockPublicAccessProps(%s)" % ", ".join(
41469
+ k + "=" + repr(v) for k, v in self._values.items()
41470
+ )
41471
+
41472
+
41198
41473
  @jsii.implements(_IInspectable_c2943556)
41199
41474
  class CfnSpotFleet(
41200
41475
  _CfnResource_9df397a6,
@@ -42495,7 +42770,7 @@ class CfnSpotFleet(
42495
42770
  ) -> None:
42496
42771
  '''Describes a network interface.
42497
42772
 
42498
- :param associate_public_ip_address: Indicates whether to assign a public IPv4 address to an instance you launch in a VPC. The public IP address can only be assigned to a network interface for eth0, and can only be assigned to a new network interface, not an existing one. You cannot specify more than one network interface in the request. If launching into a default subnet, the default value is ``true`` .
42773
+ :param associate_public_ip_address: Indicates whether to assign a public IPv4 address to an instance you launch in a VPC. The public IP address can only be assigned to a network interface for eth0, and can only be assigned to a new network interface, not an existing one. You cannot specify more than one network interface in the request. If launching into a default subnet, the default value is ``true`` . Starting on February 1, 2024, AWS will charge for all public IPv4 addresses, including public IPv4 addresses associated with running instances and Elastic IP addresses. For more information, see the *Public IPv4 Address* tab on the `Amazon VPC pricing page <https://docs.aws.amazon.com/vpc/pricing/>`_ .
42499
42774
  :param delete_on_termination: Indicates whether the network interface is deleted when the instance is terminated.
42500
42775
  :param description: The description of the network interface. Applies only if creating a network interface when launching an instance.
42501
42776
  :param device_index: The position of the network interface in the attachment order. A primary network interface has a device index of 0. If you specify a network interface when launching an instance, you must specify the device index.
@@ -42582,6 +42857,8 @@ class CfnSpotFleet(
42582
42857
 
42583
42858
  The public IP address can only be assigned to a network interface for eth0, and can only be assigned to a new network interface, not an existing one. You cannot specify more than one network interface in the request. If launching into a default subnet, the default value is ``true`` .
42584
42859
 
42860
+ Starting on February 1, 2024, AWS will charge for all public IPv4 addresses, including public IPv4 addresses associated with running instances and Elastic IP addresses. For more information, see the *Public IPv4 Address* tab on the `Amazon VPC pricing page <https://docs.aws.amazon.com/vpc/pricing/>`_ .
42861
+
42585
42862
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-instancenetworkinterfacespecification.html#cfn-ec2-spotfleet-instancenetworkinterfacespecification-associatepublicipaddress
42586
42863
  '''
42587
42864
  result = self._values.get("associate_public_ip_address")
@@ -44879,7 +45156,7 @@ class CfnSpotFleet(
44879
45156
  :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* .
44880
45157
  :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.
44881
45158
  :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>`_ .
44882
- :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)
45159
+ :param target_capacity_unit_type: The unit for the target capacity. You can specify this parameter only when using attribute-based instance type selection. Default: ``units`` (the number of instances)
44883
45160
  :param terminate_instances_with_expiration: Indicates whether running Spot Instances are terminated when the Spot Fleet request expires.
44884
45161
  :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.
44885
45162
  :param valid_from: The start date and time of the request, in UTC format ( *YYYY* - *MM* - *DD* T *HH* : *MM* : *SS* Z). By default, Amazon EC2 starts fulfilling the request immediately.
@@ -45433,9 +45710,9 @@ class CfnSpotFleet(
45433
45710
 
45434
45711
  @builtins.property
45435
45712
  def target_capacity_unit_type(self) -> typing.Optional[builtins.str]:
45436
- '''The unit for the target capacity. ``TargetCapacityUnitType`` can only be specified when ``InstanceRequirements`` is specified.
45713
+ '''The unit for the target capacity. You can specify this parameter only when using attribute-based instance type selection.
45437
45714
 
45438
- Default: ``units`` (translates to number of instances)
45715
+ Default: ``units`` (the number of instances)
45439
45716
 
45440
45717
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-spotfleetrequestconfigdata.html#cfn-ec2-spotfleet-spotfleetrequestconfigdata-targetcapacityunittype
45441
45718
  '''
@@ -46368,7 +46645,7 @@ class CfnSubnet(
46368
46645
  :param ipv6_cidr_block: The IPv6 CIDR block. If you specify ``AssignIpv6AddressOnCreation`` , you must also specify ``Ipv6CidrBlock`` .
46369
46646
  :param ipv6_native: Indicates whether this is an IPv6 only subnet. For more information, see `Subnet basics <https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Subnets.html#subnet-basics>`_ in the *Amazon Virtual Private Cloud User Guide* .
46370
46647
  :param ipv6_netmask_length: An IPv6 netmask length for the subnet.
46371
- :param map_public_ip_on_launch: Indicates whether instances launched in this subnet receive a public IPv4 address. The default value is ``false`` .
46648
+ :param map_public_ip_on_launch: Indicates whether instances launched in this subnet receive a public IPv4 address. The default value is ``false`` . Starting on February 1, 2024, AWS will charge for all public IPv4 addresses, including public IPv4 addresses associated with running instances and Elastic IP addresses. For more information, see the *Public IPv4 Address* tab on the `VPC pricing page <https://docs.aws.amazon.com/vpc/pricing/>`_ .
46372
46649
  :param outpost_arn: The Amazon Resource Name (ARN) of the Outpost.
46373
46650
  :param private_dns_name_options_on_launch: The hostname type for EC2 instances launched into this subnet and how DNS A and AAAA record queries to the instances should be handled. For more information, see `Amazon EC2 instance hostname types <https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-naming.html>`_ in the *Amazon Elastic Compute Cloud User Guide* . Available options: - EnableResourceNameDnsAAAARecord (true | false) - EnableResourceNameDnsARecord (true | false) - HostnameType (ip-name | resource-name)
46374
46651
  :param tags: Any tags assigned to the subnet.
@@ -46666,7 +46943,10 @@ class CfnSubnet(
46666
46943
  def map_public_ip_on_launch(
46667
46944
  self,
46668
46945
  ) -> typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]]:
46669
- '''Indicates whether instances launched in this subnet receive a public IPv4 address.'''
46946
+ '''Indicates whether instances launched in this subnet receive a public IPv4 address.
46947
+
46948
+ The default value is ``false`` .
46949
+ '''
46670
46950
  return typing.cast(typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]], jsii.get(self, "mapPublicIpOnLaunch"))
46671
46951
 
46672
46952
  @map_public_ip_on_launch.setter
@@ -47253,7 +47533,7 @@ class CfnSubnetProps:
47253
47533
  :param ipv6_cidr_block: The IPv6 CIDR block. If you specify ``AssignIpv6AddressOnCreation`` , you must also specify ``Ipv6CidrBlock`` .
47254
47534
  :param ipv6_native: Indicates whether this is an IPv6 only subnet. For more information, see `Subnet basics <https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Subnets.html#subnet-basics>`_ in the *Amazon Virtual Private Cloud User Guide* .
47255
47535
  :param ipv6_netmask_length: An IPv6 netmask length for the subnet.
47256
- :param map_public_ip_on_launch: Indicates whether instances launched in this subnet receive a public IPv4 address. The default value is ``false`` .
47536
+ :param map_public_ip_on_launch: Indicates whether instances launched in this subnet receive a public IPv4 address. The default value is ``false`` . Starting on February 1, 2024, AWS will charge for all public IPv4 addresses, including public IPv4 addresses associated with running instances and Elastic IP addresses. For more information, see the *Public IPv4 Address* tab on the `VPC pricing page <https://docs.aws.amazon.com/vpc/pricing/>`_ .
47257
47537
  :param outpost_arn: The Amazon Resource Name (ARN) of the Outpost.
47258
47538
  :param private_dns_name_options_on_launch: The hostname type for EC2 instances launched into this subnet and how DNS A and AAAA record queries to the instances should be handled. For more information, see `Amazon EC2 instance hostname types <https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-naming.html>`_ in the *Amazon Elastic Compute Cloud User Guide* . Available options: - EnableResourceNameDnsAAAARecord (true | false) - EnableResourceNameDnsARecord (true | false) - HostnameType (ip-name | resource-name)
47259
47539
  :param tags: Any tags assigned to the subnet.
@@ -47452,9 +47732,9 @@ class CfnSubnetProps:
47452
47732
  def map_public_ip_on_launch(
47453
47733
  self,
47454
47734
  ) -> typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]]:
47455
- '''Indicates whether instances launched in this subnet receive a public IPv4 address.
47735
+ '''Indicates whether instances launched in this subnet receive a public IPv4 address. The default value is ``false`` .
47456
47736
 
47457
- The default value is ``false`` .
47737
+ Starting on February 1, 2024, AWS will charge for all public IPv4 addresses, including public IPv4 addresses associated with running instances and Elastic IP addresses. For more information, see the *Public IPv4 Address* tab on the `VPC pricing page <https://docs.aws.amazon.com/vpc/pricing/>`_ .
47458
47738
 
47459
47739
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-subnet.html#cfn-ec2-subnet-mappubliciponlaunch
47460
47740
  '''
@@ -65926,6 +66206,52 @@ class _IIpAddressesProxy:
65926
66206
  typing.cast(typing.Any, IIpAddresses).__jsii_proxy_class__ = lambda : _IIpAddressesProxy
65927
66207
 
65928
66208
 
66209
+ @jsii.interface(jsii_type="aws-cdk-lib.aws_ec2.IKeyPair")
66210
+ class IKeyPair(_IResource_c80c4260, typing_extensions.Protocol):
66211
+ '''An EC2 Key Pair.'''
66212
+
66213
+ @builtins.property
66214
+ @jsii.member(jsii_name="keyPairName")
66215
+ def key_pair_name(self) -> builtins.str:
66216
+ '''The name of the key pair.
66217
+
66218
+ :attribute: true
66219
+ '''
66220
+ ...
66221
+
66222
+ @builtins.property
66223
+ @jsii.member(jsii_name="type")
66224
+ def type(self) -> typing.Optional["KeyPairType"]:
66225
+ '''The type of the key pair.'''
66226
+ ...
66227
+
66228
+
66229
+ class _IKeyPairProxy(
66230
+ jsii.proxy_for(_IResource_c80c4260), # type: ignore[misc]
66231
+ ):
66232
+ '''An EC2 Key Pair.'''
66233
+
66234
+ __jsii_type__: typing.ClassVar[str] = "aws-cdk-lib.aws_ec2.IKeyPair"
66235
+
66236
+ @builtins.property
66237
+ @jsii.member(jsii_name="keyPairName")
66238
+ def key_pair_name(self) -> builtins.str:
66239
+ '''The name of the key pair.
66240
+
66241
+ :attribute: true
66242
+ '''
66243
+ return typing.cast(builtins.str, jsii.get(self, "keyPairName"))
66244
+
66245
+ @builtins.property
66246
+ @jsii.member(jsii_name="type")
66247
+ def type(self) -> typing.Optional["KeyPairType"]:
66248
+ '''The type of the key pair.'''
66249
+ return typing.cast(typing.Optional["KeyPairType"], jsii.get(self, "type"))
66250
+
66251
+ # Adding a "__jsii_proxy_class__(): typing.Type" function to the interface
66252
+ typing.cast(typing.Any, IKeyPair).__jsii_proxy_class__ = lambda : _IKeyPairProxy
66253
+
66254
+
65929
66255
  @jsii.interface(jsii_type="aws-cdk-lib.aws_ec2.ILaunchTemplate")
65930
66256
  class ILaunchTemplate(_IResource_c80c4260, typing_extensions.Protocol):
65931
66257
  '''Interface for LaunchTemplate-like objects.'''
@@ -70013,6 +70339,7 @@ class Instance(
70013
70339
  init_options: typing.Optional[typing.Union[ApplyCloudFormationInitOptions, typing.Dict[builtins.str, typing.Any]]] = None,
70014
70340
  instance_name: typing.Optional[builtins.str] = None,
70015
70341
  key_name: typing.Optional[builtins.str] = None,
70342
+ key_pair: typing.Optional[IKeyPair] = None,
70016
70343
  private_ip_address: typing.Optional[builtins.str] = None,
70017
70344
  propagate_tags_to_volume_on_creation: typing.Optional[builtins.bool] = None,
70018
70345
  require_imdsv2: typing.Optional[builtins.bool] = None,
@@ -70039,7 +70366,8 @@ class Instance(
70039
70366
  :param init: Apply the given CloudFormation Init configuration to the instance at startup. Default: - no CloudFormation init
70040
70367
  :param init_options: Use the given options for applying CloudFormation Init. Describes the configsets to use and the timeout to wait Default: - default options
70041
70368
  :param instance_name: The name of the instance. Default: - CDK generated name
70042
- :param key_name: Name of SSH keypair to grant access to instance. Default: - No SSH access will be possible.
70369
+ :param key_name: (deprecated) Name of SSH keypair to grant access to instance. Default: - No SSH access will be possible.
70370
+ :param key_pair: The SSH keypair to grant access to the instance. Default: - No SSH access will be possible.
70043
70371
  :param private_ip_address: Defines a private IP address to associate with an instance. Private IP should be available within the VPC that the instance is build within. Default: - no association
70044
70372
  :param propagate_tags_to_volume_on_creation: Propagate the EC2 instance tags to the EBS volumes. Default: - false
70045
70373
  :param require_imdsv2: Whether IMDSv2 should be required on this instance. Default: - false
@@ -70069,6 +70397,7 @@ class Instance(
70069
70397
  init_options=init_options,
70070
70398
  instance_name=instance_name,
70071
70399
  key_name=key_name,
70400
+ key_pair=key_pair,
70072
70401
  private_ip_address=private_ip_address,
70073
70402
  propagate_tags_to_volume_on_creation=propagate_tags_to_volume_on_creation,
70074
70403
  require_imdsv2=require_imdsv2,
@@ -70760,6 +71089,7 @@ class InstanceInitiatedShutdownBehavior(enum.Enum):
70760
71089
  "init_options": "initOptions",
70761
71090
  "instance_name": "instanceName",
70762
71091
  "key_name": "keyName",
71092
+ "key_pair": "keyPair",
70763
71093
  "private_ip_address": "privateIpAddress",
70764
71094
  "propagate_tags_to_volume_on_creation": "propagateTagsToVolumeOnCreation",
70765
71095
  "require_imdsv2": "requireImdsv2",
@@ -70789,6 +71119,7 @@ class InstanceProps:
70789
71119
  init_options: typing.Optional[typing.Union[ApplyCloudFormationInitOptions, typing.Dict[builtins.str, typing.Any]]] = None,
70790
71120
  instance_name: typing.Optional[builtins.str] = None,
70791
71121
  key_name: typing.Optional[builtins.str] = None,
71122
+ key_pair: typing.Optional[IKeyPair] = None,
70792
71123
  private_ip_address: typing.Optional[builtins.str] = None,
70793
71124
  propagate_tags_to_volume_on_creation: typing.Optional[builtins.bool] = None,
70794
71125
  require_imdsv2: typing.Optional[builtins.bool] = None,
@@ -70814,7 +71145,8 @@ class InstanceProps:
70814
71145
  :param init: Apply the given CloudFormation Init configuration to the instance at startup. Default: - no CloudFormation init
70815
71146
  :param init_options: Use the given options for applying CloudFormation Init. Describes the configsets to use and the timeout to wait Default: - default options
70816
71147
  :param instance_name: The name of the instance. Default: - CDK generated name
70817
- :param key_name: Name of SSH keypair to grant access to instance. Default: - No SSH access will be possible.
71148
+ :param key_name: (deprecated) Name of SSH keypair to grant access to instance. Default: - No SSH access will be possible.
71149
+ :param key_pair: The SSH keypair to grant access to the instance. Default: - No SSH access will be possible.
70818
71150
  :param private_ip_address: Defines a private IP address to associate with an instance. Private IP should be available within the VPC that the instance is build within. Default: - no association
70819
71151
  :param propagate_tags_to_volume_on_creation: Propagate the EC2 instance tags to the EBS volumes. Default: - false
70820
71152
  :param require_imdsv2: Whether IMDSv2 should be required on this instance. Default: - false
@@ -70864,6 +71196,7 @@ class InstanceProps:
70864
71196
  check_type(argname="argument init_options", value=init_options, expected_type=type_hints["init_options"])
70865
71197
  check_type(argname="argument instance_name", value=instance_name, expected_type=type_hints["instance_name"])
70866
71198
  check_type(argname="argument key_name", value=key_name, expected_type=type_hints["key_name"])
71199
+ check_type(argname="argument key_pair", value=key_pair, expected_type=type_hints["key_pair"])
70867
71200
  check_type(argname="argument private_ip_address", value=private_ip_address, expected_type=type_hints["private_ip_address"])
70868
71201
  check_type(argname="argument propagate_tags_to_volume_on_creation", value=propagate_tags_to_volume_on_creation, expected_type=type_hints["propagate_tags_to_volume_on_creation"])
70869
71202
  check_type(argname="argument require_imdsv2", value=require_imdsv2, expected_type=type_hints["require_imdsv2"])
@@ -70898,6 +71231,8 @@ class InstanceProps:
70898
71231
  self._values["instance_name"] = instance_name
70899
71232
  if key_name is not None:
70900
71233
  self._values["key_name"] = key_name
71234
+ if key_pair is not None:
71235
+ self._values["key_pair"] = key_pair
70901
71236
  if private_ip_address is not None:
70902
71237
  self._values["private_ip_address"] = private_ip_address
70903
71238
  if propagate_tags_to_volume_on_creation is not None:
@@ -71029,13 +71364,26 @@ class InstanceProps:
71029
71364
 
71030
71365
  @builtins.property
71031
71366
  def key_name(self) -> typing.Optional[builtins.str]:
71032
- '''Name of SSH keypair to grant access to instance.
71367
+ '''(deprecated) Name of SSH keypair to grant access to instance.
71033
71368
 
71034
71369
  :default: - No SSH access will be possible.
71370
+
71371
+ :deprecated: - Use {@link keyPair } instead
71372
+
71373
+ :stability: deprecated
71035
71374
  '''
71036
71375
  result = self._values.get("key_name")
71037
71376
  return typing.cast(typing.Optional[builtins.str], result)
71038
71377
 
71378
+ @builtins.property
71379
+ def key_pair(self) -> typing.Optional[IKeyPair]:
71380
+ '''The SSH keypair to grant access to the instance.
71381
+
71382
+ :default: - No SSH access will be possible.
71383
+ '''
71384
+ result = self._values.get("key_pair")
71385
+ return typing.cast(typing.Optional[IKeyPair], result)
71386
+
71039
71387
  @builtins.property
71040
71388
  def private_ip_address(self) -> typing.Optional[builtins.str]:
71041
71389
  '''Defines a private IP address to associate with an instance.
@@ -73202,6 +73550,485 @@ class IpAddresses(metaclass=jsii.JSIIMeta, jsii_type="aws-cdk-lib.aws_ec2.IpAddr
73202
73550
  return typing.cast(IIpAddresses, jsii.sinvoke(cls, "cidr", [cidr_block]))
73203
73551
 
73204
73552
 
73553
+ @jsii.implements(IKeyPair)
73554
+ class KeyPair(
73555
+ _Resource_45bc6135,
73556
+ metaclass=jsii.JSIIMeta,
73557
+ jsii_type="aws-cdk-lib.aws_ec2.KeyPair",
73558
+ ):
73559
+ '''An EC2 Key Pair.
73560
+
73561
+ :resource: AWS::EC2::KeyPair
73562
+ :exampleMetadata: infused
73563
+
73564
+ Example::
73565
+
73566
+ key_pair = ec2.KeyPair.from_key_pair_attributes(self, "KeyPair",
73567
+ key_pair_name="the-keypair-name",
73568
+ type=ec2.KeyPairType.RSA
73569
+ )
73570
+ '''
73571
+
73572
+ def __init__(
73573
+ self,
73574
+ scope: _constructs_77d1e7e8.Construct,
73575
+ id: builtins.str,
73576
+ *,
73577
+ format: typing.Optional["KeyPairFormat"] = None,
73578
+ key_pair_name: typing.Optional[builtins.str] = None,
73579
+ public_key_material: typing.Optional[builtins.str] = None,
73580
+ type: typing.Optional["KeyPairType"] = None,
73581
+ account: typing.Optional[builtins.str] = None,
73582
+ environment_from_arn: typing.Optional[builtins.str] = None,
73583
+ physical_name: typing.Optional[builtins.str] = None,
73584
+ region: typing.Optional[builtins.str] = None,
73585
+ ) -> None:
73586
+ '''
73587
+ :param scope: -
73588
+ :param id: -
73589
+ :param format: The format of the key pair. Default: PEM
73590
+ :param key_pair_name: A unique name for the key pair. Default: A generated name
73591
+ :param public_key_material: The public key material. If this is provided the key is considered "imported". For imported keys, it is assumed that you already have the private key material so the private key material will not be returned or stored in AWS Systems Manager Parameter Store. Default: a public and private key will be generated
73592
+ :param type: The type of key pair. Default: RSA (ignored if keyMaterial is provided)
73593
+ :param account: The AWS account ID this resource belongs to. Default: - the resource is in the same account as the stack it belongs to
73594
+ :param environment_from_arn: ARN to deduce region and account from. The ARN is parsed and the account and region are taken from the ARN. This should be used for imported resources. Cannot be supplied together with either ``account`` or ``region``. Default: - take environment from ``account``, ``region`` parameters, or use Stack environment.
73595
+ :param physical_name: The value passed in by users to the physical name prop of the resource. - ``undefined`` implies that a physical name will be allocated by CloudFormation during deployment. - a concrete value implies a specific physical name - ``PhysicalName.GENERATE_IF_NEEDED`` is a marker that indicates that a physical will only be generated by the CDK if it is needed for cross-environment references. Otherwise, it will be allocated by CloudFormation. Default: - The physical name will be allocated by CloudFormation at deployment time
73596
+ :param region: The AWS region this resource belongs to. Default: - the resource is in the same region as the stack it belongs to
73597
+ '''
73598
+ if __debug__:
73599
+ type_hints = typing.get_type_hints(_typecheckingstub__723c12f80f8f69703f74949dec0a4305b19d6d27efff9d36830815d8e604283c)
73600
+ check_type(argname="argument scope", value=scope, expected_type=type_hints["scope"])
73601
+ check_type(argname="argument id", value=id, expected_type=type_hints["id"])
73602
+ props = KeyPairProps(
73603
+ format=format,
73604
+ key_pair_name=key_pair_name,
73605
+ public_key_material=public_key_material,
73606
+ type=type,
73607
+ account=account,
73608
+ environment_from_arn=environment_from_arn,
73609
+ physical_name=physical_name,
73610
+ region=region,
73611
+ )
73612
+
73613
+ jsii.create(self.__class__, self, [scope, id, props])
73614
+
73615
+ @jsii.member(jsii_name="fromKeyPairAttributes")
73616
+ @builtins.classmethod
73617
+ def from_key_pair_attributes(
73618
+ cls,
73619
+ scope: _constructs_77d1e7e8.Construct,
73620
+ id: builtins.str,
73621
+ *,
73622
+ key_pair_name: builtins.str,
73623
+ type: typing.Optional["KeyPairType"] = None,
73624
+ ) -> IKeyPair:
73625
+ '''Imports a key pair with a name and optional type.
73626
+
73627
+ :param scope: -
73628
+ :param id: -
73629
+ :param key_pair_name: The unique name of the key pair.
73630
+ :param type: The type of the key pair. Default: no type specified
73631
+ '''
73632
+ if __debug__:
73633
+ type_hints = typing.get_type_hints(_typecheckingstub__12d377269b610c395f1583e904a11636e952288b5e3f85a3cc1d865eb21f7715)
73634
+ check_type(argname="argument scope", value=scope, expected_type=type_hints["scope"])
73635
+ check_type(argname="argument id", value=id, expected_type=type_hints["id"])
73636
+ attrs = KeyPairAttributes(key_pair_name=key_pair_name, type=type)
73637
+
73638
+ return typing.cast(IKeyPair, jsii.sinvoke(cls, "fromKeyPairAttributes", [scope, id, attrs]))
73639
+
73640
+ @jsii.member(jsii_name="fromKeyPairName")
73641
+ @builtins.classmethod
73642
+ def from_key_pair_name(
73643
+ cls,
73644
+ scope: _constructs_77d1e7e8.Construct,
73645
+ id: builtins.str,
73646
+ key_pair_name: builtins.str,
73647
+ ) -> IKeyPair:
73648
+ '''Imports a key pair based on the name.
73649
+
73650
+ :param scope: -
73651
+ :param id: -
73652
+ :param key_pair_name: -
73653
+ '''
73654
+ if __debug__:
73655
+ type_hints = typing.get_type_hints(_typecheckingstub__7bcad8d69b7ac63eda9832fb42b2e78a5f5570d5ccd5ac181f25d55202b6f74c)
73656
+ check_type(argname="argument scope", value=scope, expected_type=type_hints["scope"])
73657
+ check_type(argname="argument id", value=id, expected_type=type_hints["id"])
73658
+ check_type(argname="argument key_pair_name", value=key_pair_name, expected_type=type_hints["key_pair_name"])
73659
+ return typing.cast(IKeyPair, jsii.sinvoke(cls, "fromKeyPairName", [scope, id, key_pair_name]))
73660
+
73661
+ @builtins.property
73662
+ @jsii.member(jsii_name="format")
73663
+ def format(self) -> "KeyPairFormat":
73664
+ '''The format of the key pair.'''
73665
+ return typing.cast("KeyPairFormat", jsii.get(self, "format"))
73666
+
73667
+ @builtins.property
73668
+ @jsii.member(jsii_name="hasImportedMaterial")
73669
+ def has_imported_material(self) -> builtins.bool:
73670
+ '''Whether the key material was imported.
73671
+
73672
+ Keys with imported material do not have their private key material stored
73673
+ or returned automatically.
73674
+ '''
73675
+ return typing.cast(builtins.bool, jsii.get(self, "hasImportedMaterial"))
73676
+
73677
+ @builtins.property
73678
+ @jsii.member(jsii_name="keyPairFingerprint")
73679
+ def key_pair_fingerprint(self) -> builtins.str:
73680
+ '''The fingerprint of the key pair.
73681
+
73682
+ :attribute: true
73683
+ '''
73684
+ return typing.cast(builtins.str, jsii.get(self, "keyPairFingerprint"))
73685
+
73686
+ @builtins.property
73687
+ @jsii.member(jsii_name="keyPairId")
73688
+ def key_pair_id(self) -> builtins.str:
73689
+ '''The unique ID of the key pair.
73690
+
73691
+ :attribute: true
73692
+ '''
73693
+ return typing.cast(builtins.str, jsii.get(self, "keyPairId"))
73694
+
73695
+ @builtins.property
73696
+ @jsii.member(jsii_name="keyPairName")
73697
+ def key_pair_name(self) -> builtins.str:
73698
+ '''The unique name of the key pair.
73699
+
73700
+ :attribute: true
73701
+ '''
73702
+ return typing.cast(builtins.str, jsii.get(self, "keyPairName"))
73703
+
73704
+ @builtins.property
73705
+ @jsii.member(jsii_name="privateKey")
73706
+ def private_key(self) -> _IStringParameter_f2b707f9:
73707
+ '''The Systems Manager Parameter Store parameter with the pair's private key material.'''
73708
+ return typing.cast(_IStringParameter_f2b707f9, jsii.get(self, "privateKey"))
73709
+
73710
+ @builtins.property
73711
+ @jsii.member(jsii_name="type")
73712
+ def type(self) -> typing.Optional["KeyPairType"]:
73713
+ '''The type of the key pair.'''
73714
+ return typing.cast(typing.Optional["KeyPairType"], jsii.get(self, "type"))
73715
+
73716
+
73717
+ @jsii.data_type(
73718
+ jsii_type="aws-cdk-lib.aws_ec2.KeyPairAttributes",
73719
+ jsii_struct_bases=[],
73720
+ name_mapping={"key_pair_name": "keyPairName", "type": "type"},
73721
+ )
73722
+ class KeyPairAttributes:
73723
+ def __init__(
73724
+ self,
73725
+ *,
73726
+ key_pair_name: builtins.str,
73727
+ type: typing.Optional["KeyPairType"] = None,
73728
+ ) -> None:
73729
+ '''Attributes of a Key Pair.
73730
+
73731
+ :param key_pair_name: The unique name of the key pair.
73732
+ :param type: The type of the key pair. Default: no type specified
73733
+
73734
+ :exampleMetadata: infused
73735
+
73736
+ Example::
73737
+
73738
+ key_pair = ec2.KeyPair.from_key_pair_attributes(self, "KeyPair",
73739
+ key_pair_name="the-keypair-name",
73740
+ type=ec2.KeyPairType.RSA
73741
+ )
73742
+ '''
73743
+ if __debug__:
73744
+ type_hints = typing.get_type_hints(_typecheckingstub__1c0b1d2207b185c203475dcfffe01485ff1d6dd460f5c0308f88afbd59667178)
73745
+ check_type(argname="argument key_pair_name", value=key_pair_name, expected_type=type_hints["key_pair_name"])
73746
+ check_type(argname="argument type", value=type, expected_type=type_hints["type"])
73747
+ self._values: typing.Dict[builtins.str, typing.Any] = {
73748
+ "key_pair_name": key_pair_name,
73749
+ }
73750
+ if type is not None:
73751
+ self._values["type"] = type
73752
+
73753
+ @builtins.property
73754
+ def key_pair_name(self) -> builtins.str:
73755
+ '''The unique name of the key pair.'''
73756
+ result = self._values.get("key_pair_name")
73757
+ assert result is not None, "Required property 'key_pair_name' is missing"
73758
+ return typing.cast(builtins.str, result)
73759
+
73760
+ @builtins.property
73761
+ def type(self) -> typing.Optional["KeyPairType"]:
73762
+ '''The type of the key pair.
73763
+
73764
+ :default: no type specified
73765
+ '''
73766
+ result = self._values.get("type")
73767
+ return typing.cast(typing.Optional["KeyPairType"], result)
73768
+
73769
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
73770
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
73771
+
73772
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
73773
+ return not (rhs == self)
73774
+
73775
+ def __repr__(self) -> str:
73776
+ return "KeyPairAttributes(%s)" % ", ".join(
73777
+ k + "=" + repr(v) for k, v in self._values.items()
73778
+ )
73779
+
73780
+
73781
+ @jsii.enum(jsii_type="aws-cdk-lib.aws_ec2.KeyPairFormat")
73782
+ class KeyPairFormat(enum.Enum):
73783
+ '''The format of the Key Pair.
73784
+
73785
+ :exampleMetadata: infused
73786
+
73787
+ Example::
73788
+
73789
+ # vpc: ec2.Vpc
73790
+ # instance_type: ec2.InstanceType
73791
+
73792
+
73793
+ key_pair = ec2.KeyPair(self, "KeyPair",
73794
+ type=ec2.KeyPairType.ED25519,
73795
+ format=ec2.KeyPairFormat.PEM
73796
+ )
73797
+ instance = ec2.Instance(self, "Instance",
73798
+ vpc=vpc,
73799
+ instance_type=instance_type,
73800
+ machine_image=ec2.MachineImage.latest_amazon_linux2023(),
73801
+ # Use the custom key pair
73802
+ key_pair=key_pair
73803
+ )
73804
+ '''
73805
+
73806
+ PPK = "PPK"
73807
+ '''A PPK file, typically used with PuTTY.'''
73808
+ PEM = "PEM"
73809
+ '''A PEM file.'''
73810
+
73811
+
73812
+ @jsii.data_type(
73813
+ jsii_type="aws-cdk-lib.aws_ec2.KeyPairProps",
73814
+ jsii_struct_bases=[_ResourceProps_15a65b4e],
73815
+ name_mapping={
73816
+ "account": "account",
73817
+ "environment_from_arn": "environmentFromArn",
73818
+ "physical_name": "physicalName",
73819
+ "region": "region",
73820
+ "format": "format",
73821
+ "key_pair_name": "keyPairName",
73822
+ "public_key_material": "publicKeyMaterial",
73823
+ "type": "type",
73824
+ },
73825
+ )
73826
+ class KeyPairProps(_ResourceProps_15a65b4e):
73827
+ def __init__(
73828
+ self,
73829
+ *,
73830
+ account: typing.Optional[builtins.str] = None,
73831
+ environment_from_arn: typing.Optional[builtins.str] = None,
73832
+ physical_name: typing.Optional[builtins.str] = None,
73833
+ region: typing.Optional[builtins.str] = None,
73834
+ format: typing.Optional[KeyPairFormat] = None,
73835
+ key_pair_name: typing.Optional[builtins.str] = None,
73836
+ public_key_material: typing.Optional[builtins.str] = None,
73837
+ type: typing.Optional["KeyPairType"] = None,
73838
+ ) -> None:
73839
+ '''The properties of a Key Pair.
73840
+
73841
+ :param account: The AWS account ID this resource belongs to. Default: - the resource is in the same account as the stack it belongs to
73842
+ :param environment_from_arn: ARN to deduce region and account from. The ARN is parsed and the account and region are taken from the ARN. This should be used for imported resources. Cannot be supplied together with either ``account`` or ``region``. Default: - take environment from ``account``, ``region`` parameters, or use Stack environment.
73843
+ :param physical_name: The value passed in by users to the physical name prop of the resource. - ``undefined`` implies that a physical name will be allocated by CloudFormation during deployment. - a concrete value implies a specific physical name - ``PhysicalName.GENERATE_IF_NEEDED`` is a marker that indicates that a physical will only be generated by the CDK if it is needed for cross-environment references. Otherwise, it will be allocated by CloudFormation. Default: - The physical name will be allocated by CloudFormation at deployment time
73844
+ :param region: The AWS region this resource belongs to. Default: - the resource is in the same region as the stack it belongs to
73845
+ :param format: The format of the key pair. Default: PEM
73846
+ :param key_pair_name: A unique name for the key pair. Default: A generated name
73847
+ :param public_key_material: The public key material. If this is provided the key is considered "imported". For imported keys, it is assumed that you already have the private key material so the private key material will not be returned or stored in AWS Systems Manager Parameter Store. Default: a public and private key will be generated
73848
+ :param type: The type of key pair. Default: RSA (ignored if keyMaterial is provided)
73849
+
73850
+ :exampleMetadata: infused
73851
+
73852
+ Example::
73853
+
73854
+ # vpc: ec2.Vpc
73855
+ # instance_type: ec2.InstanceType
73856
+
73857
+
73858
+ key_pair = ec2.KeyPair(self, "KeyPair",
73859
+ type=ec2.KeyPairType.ED25519,
73860
+ format=ec2.KeyPairFormat.PEM
73861
+ )
73862
+ instance = ec2.Instance(self, "Instance",
73863
+ vpc=vpc,
73864
+ instance_type=instance_type,
73865
+ machine_image=ec2.MachineImage.latest_amazon_linux2023(),
73866
+ # Use the custom key pair
73867
+ key_pair=key_pair
73868
+ )
73869
+ '''
73870
+ if __debug__:
73871
+ type_hints = typing.get_type_hints(_typecheckingstub__7af23eb9509f044383945f68d46a72f0c94f0542177c255d3d31b42f5e9aa98c)
73872
+ check_type(argname="argument account", value=account, expected_type=type_hints["account"])
73873
+ check_type(argname="argument environment_from_arn", value=environment_from_arn, expected_type=type_hints["environment_from_arn"])
73874
+ check_type(argname="argument physical_name", value=physical_name, expected_type=type_hints["physical_name"])
73875
+ check_type(argname="argument region", value=region, expected_type=type_hints["region"])
73876
+ check_type(argname="argument format", value=format, expected_type=type_hints["format"])
73877
+ check_type(argname="argument key_pair_name", value=key_pair_name, expected_type=type_hints["key_pair_name"])
73878
+ check_type(argname="argument public_key_material", value=public_key_material, expected_type=type_hints["public_key_material"])
73879
+ check_type(argname="argument type", value=type, expected_type=type_hints["type"])
73880
+ self._values: typing.Dict[builtins.str, typing.Any] = {}
73881
+ if account is not None:
73882
+ self._values["account"] = account
73883
+ if environment_from_arn is not None:
73884
+ self._values["environment_from_arn"] = environment_from_arn
73885
+ if physical_name is not None:
73886
+ self._values["physical_name"] = physical_name
73887
+ if region is not None:
73888
+ self._values["region"] = region
73889
+ if format is not None:
73890
+ self._values["format"] = format
73891
+ if key_pair_name is not None:
73892
+ self._values["key_pair_name"] = key_pair_name
73893
+ if public_key_material is not None:
73894
+ self._values["public_key_material"] = public_key_material
73895
+ if type is not None:
73896
+ self._values["type"] = type
73897
+
73898
+ @builtins.property
73899
+ def account(self) -> typing.Optional[builtins.str]:
73900
+ '''The AWS account ID this resource belongs to.
73901
+
73902
+ :default: - the resource is in the same account as the stack it belongs to
73903
+ '''
73904
+ result = self._values.get("account")
73905
+ return typing.cast(typing.Optional[builtins.str], result)
73906
+
73907
+ @builtins.property
73908
+ def environment_from_arn(self) -> typing.Optional[builtins.str]:
73909
+ '''ARN to deduce region and account from.
73910
+
73911
+ The ARN is parsed and the account and region are taken from the ARN.
73912
+ This should be used for imported resources.
73913
+
73914
+ Cannot be supplied together with either ``account`` or ``region``.
73915
+
73916
+ :default: - take environment from ``account``, ``region`` parameters, or use Stack environment.
73917
+ '''
73918
+ result = self._values.get("environment_from_arn")
73919
+ return typing.cast(typing.Optional[builtins.str], result)
73920
+
73921
+ @builtins.property
73922
+ def physical_name(self) -> typing.Optional[builtins.str]:
73923
+ '''The value passed in by users to the physical name prop of the resource.
73924
+
73925
+ - ``undefined`` implies that a physical name will be allocated by
73926
+ CloudFormation during deployment.
73927
+ - a concrete value implies a specific physical name
73928
+ - ``PhysicalName.GENERATE_IF_NEEDED`` is a marker that indicates that a physical will only be generated
73929
+ by the CDK if it is needed for cross-environment references. Otherwise, it will be allocated by CloudFormation.
73930
+
73931
+ :default: - The physical name will be allocated by CloudFormation at deployment time
73932
+ '''
73933
+ result = self._values.get("physical_name")
73934
+ return typing.cast(typing.Optional[builtins.str], result)
73935
+
73936
+ @builtins.property
73937
+ def region(self) -> typing.Optional[builtins.str]:
73938
+ '''The AWS region this resource belongs to.
73939
+
73940
+ :default: - the resource is in the same region as the stack it belongs to
73941
+ '''
73942
+ result = self._values.get("region")
73943
+ return typing.cast(typing.Optional[builtins.str], result)
73944
+
73945
+ @builtins.property
73946
+ def format(self) -> typing.Optional[KeyPairFormat]:
73947
+ '''The format of the key pair.
73948
+
73949
+ :default: PEM
73950
+ '''
73951
+ result = self._values.get("format")
73952
+ return typing.cast(typing.Optional[KeyPairFormat], result)
73953
+
73954
+ @builtins.property
73955
+ def key_pair_name(self) -> typing.Optional[builtins.str]:
73956
+ '''A unique name for the key pair.
73957
+
73958
+ :default: A generated name
73959
+ '''
73960
+ result = self._values.get("key_pair_name")
73961
+ return typing.cast(typing.Optional[builtins.str], result)
73962
+
73963
+ @builtins.property
73964
+ def public_key_material(self) -> typing.Optional[builtins.str]:
73965
+ '''The public key material.
73966
+
73967
+ If this is provided the key is considered "imported". For imported
73968
+ keys, it is assumed that you already have the private key material
73969
+ so the private key material will not be returned or stored in
73970
+ AWS Systems Manager Parameter Store.
73971
+
73972
+ :default: a public and private key will be generated
73973
+ '''
73974
+ result = self._values.get("public_key_material")
73975
+ return typing.cast(typing.Optional[builtins.str], result)
73976
+
73977
+ @builtins.property
73978
+ def type(self) -> typing.Optional["KeyPairType"]:
73979
+ '''The type of key pair.
73980
+
73981
+ :default: RSA (ignored if keyMaterial is provided)
73982
+ '''
73983
+ result = self._values.get("type")
73984
+ return typing.cast(typing.Optional["KeyPairType"], result)
73985
+
73986
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
73987
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
73988
+
73989
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
73990
+ return not (rhs == self)
73991
+
73992
+ def __repr__(self) -> str:
73993
+ return "KeyPairProps(%s)" % ", ".join(
73994
+ k + "=" + repr(v) for k, v in self._values.items()
73995
+ )
73996
+
73997
+
73998
+ @jsii.enum(jsii_type="aws-cdk-lib.aws_ec2.KeyPairType")
73999
+ class KeyPairType(enum.Enum):
74000
+ '''The type of the key pair.
74001
+
74002
+ :exampleMetadata: infused
74003
+
74004
+ Example::
74005
+
74006
+ # vpc: ec2.Vpc
74007
+ # instance_type: ec2.InstanceType
74008
+
74009
+
74010
+ key_pair = ec2.KeyPair(self, "KeyPair",
74011
+ type=ec2.KeyPairType.ED25519,
74012
+ format=ec2.KeyPairFormat.PEM
74013
+ )
74014
+ instance = ec2.Instance(self, "Instance",
74015
+ vpc=vpc,
74016
+ instance_type=instance_type,
74017
+ machine_image=ec2.MachineImage.latest_amazon_linux2023(),
74018
+ # Use the custom key pair
74019
+ key_pair=key_pair
74020
+ )
74021
+ '''
74022
+
74023
+ RSA = "RSA"
74024
+ '''An RSA key.'''
74025
+ ED25519 = "ED25519"
74026
+ '''An ED25519 key.
74027
+
74028
+ Note that ED25519 keys are not supported for Windows instances.
74029
+ '''
74030
+
74031
+
73205
74032
  @jsii.implements(ILaunchTemplate, _IGrantable_71c4f5de, IConnectable)
73206
74033
  class LaunchTemplate(
73207
74034
  _Resource_45bc6135,
@@ -73254,6 +74081,7 @@ class LaunchTemplate(
73254
74081
  instance_profile: typing.Optional[_IInstanceProfile_10d5ce2c] = None,
73255
74082
  instance_type: typing.Optional[InstanceType] = None,
73256
74083
  key_name: typing.Optional[builtins.str] = None,
74084
+ key_pair: typing.Optional[IKeyPair] = None,
73257
74085
  launch_template_name: typing.Optional[builtins.str] = None,
73258
74086
  machine_image: typing.Optional[IMachineImage] = None,
73259
74087
  nitro_enclave_enabled: typing.Optional[builtins.bool] = None,
@@ -73281,7 +74109,8 @@ class LaunchTemplate(
73281
74109
  :param instance_metadata_tags: Set to enabled to allow access to instance tags from the instance metadata. Set to disabled to turn off access to instance tags from the instance metadata. Default: false
73282
74110
  :param instance_profile: The instance profile used to pass role information to EC2 instances. Note: You can provide an instanceProfile or a role, but not both. Default: - No instance profile
73283
74111
  :param instance_type: Type of instance to launch. Default: - This Launch Template does not specify a default Instance Type.
73284
- :param key_name: Name of SSH keypair to grant access to instance. Default: - No SSH access will be possible.
74112
+ :param key_name: (deprecated) Name of SSH keypair to grant access to instance. Default: - No SSH access will be possible.
74113
+ :param key_pair: The SSK keypair to grant access to the instance. Default: - No SSH access will be possible.
73285
74114
  :param launch_template_name: Name for this launch template. Default: Automatically generated name
73286
74115
  :param machine_image: The AMI that will be used by instances. Default: - This Launch Template does not specify a default AMI.
73287
74116
  :param nitro_enclave_enabled: If this parameter is set to true, the instance is enabled for AWS Nitro Enclaves; otherwise, it is not enabled for AWS Nitro Enclaves. Default: - Enablement of Nitro enclaves is not specified in the launch template; defaulting to false.
@@ -73312,6 +74141,7 @@ class LaunchTemplate(
73312
74141
  instance_profile=instance_profile,
73313
74142
  instance_type=instance_type,
73314
74143
  key_name=key_name,
74144
+ key_pair=key_pair,
73315
74145
  launch_template_name=launch_template_name,
73316
74146
  machine_image=machine_image,
73317
74147
  nitro_enclave_enabled=nitro_enclave_enabled,
@@ -73619,6 +74449,7 @@ class LaunchTemplateHttpTokens(enum.Enum):
73619
74449
  "instance_profile": "instanceProfile",
73620
74450
  "instance_type": "instanceType",
73621
74451
  "key_name": "keyName",
74452
+ "key_pair": "keyPair",
73622
74453
  "launch_template_name": "launchTemplateName",
73623
74454
  "machine_image": "machineImage",
73624
74455
  "nitro_enclave_enabled": "nitroEnclaveEnabled",
@@ -73649,6 +74480,7 @@ class LaunchTemplateProps:
73649
74480
  instance_profile: typing.Optional[_IInstanceProfile_10d5ce2c] = None,
73650
74481
  instance_type: typing.Optional[InstanceType] = None,
73651
74482
  key_name: typing.Optional[builtins.str] = None,
74483
+ key_pair: typing.Optional[IKeyPair] = None,
73652
74484
  launch_template_name: typing.Optional[builtins.str] = None,
73653
74485
  machine_image: typing.Optional[IMachineImage] = None,
73654
74486
  nitro_enclave_enabled: typing.Optional[builtins.bool] = None,
@@ -73675,7 +74507,8 @@ class LaunchTemplateProps:
73675
74507
  :param instance_metadata_tags: Set to enabled to allow access to instance tags from the instance metadata. Set to disabled to turn off access to instance tags from the instance metadata. Default: false
73676
74508
  :param instance_profile: The instance profile used to pass role information to EC2 instances. Note: You can provide an instanceProfile or a role, but not both. Default: - No instance profile
73677
74509
  :param instance_type: Type of instance to launch. Default: - This Launch Template does not specify a default Instance Type.
73678
- :param key_name: Name of SSH keypair to grant access to instance. Default: - No SSH access will be possible.
74510
+ :param key_name: (deprecated) Name of SSH keypair to grant access to instance. Default: - No SSH access will be possible.
74511
+ :param key_pair: The SSK keypair to grant access to the instance. Default: - No SSH access will be possible.
73679
74512
  :param launch_template_name: Name for this launch template. Default: Automatically generated name
73680
74513
  :param machine_image: The AMI that will be used by instances. Default: - This Launch Template does not specify a default AMI.
73681
74514
  :param nitro_enclave_enabled: If this parameter is set to true, the instance is enabled for AWS Nitro Enclaves; otherwise, it is not enabled for AWS Nitro Enclaves. Default: - Enablement of Nitro enclaves is not specified in the launch template; defaulting to false.
@@ -73726,6 +74559,7 @@ class LaunchTemplateProps:
73726
74559
  check_type(argname="argument instance_profile", value=instance_profile, expected_type=type_hints["instance_profile"])
73727
74560
  check_type(argname="argument instance_type", value=instance_type, expected_type=type_hints["instance_type"])
73728
74561
  check_type(argname="argument key_name", value=key_name, expected_type=type_hints["key_name"])
74562
+ check_type(argname="argument key_pair", value=key_pair, expected_type=type_hints["key_pair"])
73729
74563
  check_type(argname="argument launch_template_name", value=launch_template_name, expected_type=type_hints["launch_template_name"])
73730
74564
  check_type(argname="argument machine_image", value=machine_image, expected_type=type_hints["machine_image"])
73731
74565
  check_type(argname="argument nitro_enclave_enabled", value=nitro_enclave_enabled, expected_type=type_hints["nitro_enclave_enabled"])
@@ -73767,6 +74601,8 @@ class LaunchTemplateProps:
73767
74601
  self._values["instance_type"] = instance_type
73768
74602
  if key_name is not None:
73769
74603
  self._values["key_name"] = key_name
74604
+ if key_pair is not None:
74605
+ self._values["key_pair"] = key_pair
73770
74606
  if launch_template_name is not None:
73771
74607
  self._values["launch_template_name"] = launch_template_name
73772
74608
  if machine_image is not None:
@@ -73961,13 +74797,26 @@ class LaunchTemplateProps:
73961
74797
 
73962
74798
  @builtins.property
73963
74799
  def key_name(self) -> typing.Optional[builtins.str]:
73964
- '''Name of SSH keypair to grant access to instance.
74800
+ '''(deprecated) Name of SSH keypair to grant access to instance.
73965
74801
 
73966
74802
  :default: - No SSH access will be possible.
74803
+
74804
+ :deprecated: - Use ``keyPair`` instead.
74805
+
74806
+ :stability: deprecated
73967
74807
  '''
73968
74808
  result = self._values.get("key_name")
73969
74809
  return typing.cast(typing.Optional[builtins.str], result)
73970
74810
 
74811
+ @builtins.property
74812
+ def key_pair(self) -> typing.Optional[IKeyPair]:
74813
+ '''The SSK keypair to grant access to the instance.
74814
+
74815
+ :default: - No SSH access will be possible.
74816
+ '''
74817
+ result = self._values.get("key_pair")
74818
+ return typing.cast(typing.Optional[IKeyPair], result)
74819
+
73971
74820
  @builtins.property
73972
74821
  def launch_template_name(self) -> typing.Optional[builtins.str]:
73973
74822
  '''Name for this launch template.
@@ -75872,6 +76721,7 @@ class NatInstanceImage(
75872
76721
  "instance_type": "instanceType",
75873
76722
  "default_allowed_traffic": "defaultAllowedTraffic",
75874
76723
  "key_name": "keyName",
76724
+ "key_pair": "keyPair",
75875
76725
  "machine_image": "machineImage",
75876
76726
  "security_group": "securityGroup",
75877
76727
  },
@@ -75883,6 +76733,7 @@ class NatInstanceProps:
75883
76733
  instance_type: InstanceType,
75884
76734
  default_allowed_traffic: typing.Optional["NatTrafficDirection"] = None,
75885
76735
  key_name: typing.Optional[builtins.str] = None,
76736
+ key_pair: typing.Optional[IKeyPair] = None,
75886
76737
  machine_image: typing.Optional[IMachineImage] = None,
75887
76738
  security_group: typing.Optional[ISecurityGroup] = None,
75888
76739
  ) -> None:
@@ -75890,7 +76741,8 @@ class NatInstanceProps:
75890
76741
 
75891
76742
  :param instance_type: Instance type of the NAT instance.
75892
76743
  :param default_allowed_traffic: Direction to allow all traffic through the NAT instance by default. By default, inbound and outbound traffic is allowed. If you set this to another value than INBOUND_AND_OUTBOUND, you must configure the NAT instance's security groups in another way, either by passing in a fully configured Security Group using the ``securityGroup`` property, or by configuring it using the ``.securityGroup`` or ``.connections`` members after passing the NAT Instance Provider to a Vpc. Default: NatTrafficDirection.INBOUND_AND_OUTBOUND
75893
- :param key_name: Name of SSH keypair to grant access to instance. Default: - No SSH access will be possible.
76744
+ :param key_name: (deprecated) Name of SSH keypair to grant access to instance. Default: - No SSH access will be possible.
76745
+ :param key_pair: The SSH keypair to grant access to the instance. Default: - No SSH access will be possible.
75894
76746
  :param machine_image: The machine image (AMI) to use. By default, will do an AMI lookup for the latest NAT instance image. If you have a specific AMI ID you want to use, pass a ``GenericLinuxImage``. For example:: ec2.NatProvider.instance({ instanceType: new ec2.InstanceType('t3.micro'), machineImage: new ec2.GenericLinuxImage({ 'us-east-2': 'ami-0f9c61b5a562a16af' }) }) Default: - Latest NAT instance image
75895
76747
  :param security_group: Security Group for NAT instances. Default: - A new security group will be created
75896
76748
 
@@ -75915,6 +76767,7 @@ class NatInstanceProps:
75915
76767
  check_type(argname="argument instance_type", value=instance_type, expected_type=type_hints["instance_type"])
75916
76768
  check_type(argname="argument default_allowed_traffic", value=default_allowed_traffic, expected_type=type_hints["default_allowed_traffic"])
75917
76769
  check_type(argname="argument key_name", value=key_name, expected_type=type_hints["key_name"])
76770
+ check_type(argname="argument key_pair", value=key_pair, expected_type=type_hints["key_pair"])
75918
76771
  check_type(argname="argument machine_image", value=machine_image, expected_type=type_hints["machine_image"])
75919
76772
  check_type(argname="argument security_group", value=security_group, expected_type=type_hints["security_group"])
75920
76773
  self._values: typing.Dict[builtins.str, typing.Any] = {
@@ -75924,6 +76777,8 @@ class NatInstanceProps:
75924
76777
  self._values["default_allowed_traffic"] = default_allowed_traffic
75925
76778
  if key_name is not None:
75926
76779
  self._values["key_name"] = key_name
76780
+ if key_pair is not None:
76781
+ self._values["key_pair"] = key_pair
75927
76782
  if machine_image is not None:
75928
76783
  self._values["machine_image"] = machine_image
75929
76784
  if security_group is not None:
@@ -75955,13 +76810,26 @@ class NatInstanceProps:
75955
76810
 
75956
76811
  @builtins.property
75957
76812
  def key_name(self) -> typing.Optional[builtins.str]:
75958
- '''Name of SSH keypair to grant access to instance.
76813
+ '''(deprecated) Name of SSH keypair to grant access to instance.
75959
76814
 
75960
76815
  :default: - No SSH access will be possible.
76816
+
76817
+ :deprecated: - Use ``keyPair`` instead.
76818
+
76819
+ :stability: deprecated
75961
76820
  '''
75962
76821
  result = self._values.get("key_name")
75963
76822
  return typing.cast(typing.Optional[builtins.str], result)
75964
76823
 
76824
+ @builtins.property
76825
+ def key_pair(self) -> typing.Optional[IKeyPair]:
76826
+ '''The SSH keypair to grant access to the instance.
76827
+
76828
+ :default: - No SSH access will be possible.
76829
+ '''
76830
+ result = self._values.get("key_pair")
76831
+ return typing.cast(typing.Optional[IKeyPair], result)
76832
+
75965
76833
  @builtins.property
75966
76834
  def machine_image(self) -> typing.Optional[IMachineImage]:
75967
76835
  '''The machine image (AMI) to use.
@@ -76059,6 +76927,7 @@ class NatProvider(
76059
76927
  instance_type: InstanceType,
76060
76928
  default_allowed_traffic: typing.Optional["NatTrafficDirection"] = None,
76061
76929
  key_name: typing.Optional[builtins.str] = None,
76930
+ key_pair: typing.Optional[IKeyPair] = None,
76062
76931
  machine_image: typing.Optional[IMachineImage] = None,
76063
76932
  security_group: typing.Optional[ISecurityGroup] = None,
76064
76933
  ) -> "NatInstanceProvider":
@@ -76072,7 +76941,8 @@ class NatProvider(
76072
76941
 
76073
76942
  :param instance_type: Instance type of the NAT instance.
76074
76943
  :param default_allowed_traffic: Direction to allow all traffic through the NAT instance by default. By default, inbound and outbound traffic is allowed. If you set this to another value than INBOUND_AND_OUTBOUND, you must configure the NAT instance's security groups in another way, either by passing in a fully configured Security Group using the ``securityGroup`` property, or by configuring it using the ``.securityGroup`` or ``.connections`` members after passing the NAT Instance Provider to a Vpc. Default: NatTrafficDirection.INBOUND_AND_OUTBOUND
76075
- :param key_name: Name of SSH keypair to grant access to instance. Default: - No SSH access will be possible.
76944
+ :param key_name: (deprecated) Name of SSH keypair to grant access to instance. Default: - No SSH access will be possible.
76945
+ :param key_pair: The SSH keypair to grant access to the instance. Default: - No SSH access will be possible.
76076
76946
  :param machine_image: The machine image (AMI) to use. By default, will do an AMI lookup for the latest NAT instance image. If you have a specific AMI ID you want to use, pass a ``GenericLinuxImage``. For example:: ec2.NatProvider.instance({ instanceType: new ec2.InstanceType('t3.micro'), machineImage: new ec2.GenericLinuxImage({ 'us-east-2': 'ami-0f9c61b5a562a16af' }) }) Default: - Latest NAT instance image
76077
76947
  :param security_group: Security Group for NAT instances. Default: - A new security group will be created
76078
76948
 
@@ -76082,6 +76952,7 @@ class NatProvider(
76082
76952
  instance_type=instance_type,
76083
76953
  default_allowed_traffic=default_allowed_traffic,
76084
76954
  key_name=key_name,
76955
+ key_pair=key_pair,
76085
76956
  machine_image=machine_image,
76086
76957
  security_group=security_group,
76087
76958
  )
@@ -88101,13 +88972,15 @@ class NatInstanceProvider(
88101
88972
  instance_type: InstanceType,
88102
88973
  default_allowed_traffic: typing.Optional[NatTrafficDirection] = None,
88103
88974
  key_name: typing.Optional[builtins.str] = None,
88975
+ key_pair: typing.Optional[IKeyPair] = None,
88104
88976
  machine_image: typing.Optional[IMachineImage] = None,
88105
88977
  security_group: typing.Optional[ISecurityGroup] = None,
88106
88978
  ) -> None:
88107
88979
  '''
88108
88980
  :param instance_type: Instance type of the NAT instance.
88109
88981
  :param default_allowed_traffic: Direction to allow all traffic through the NAT instance by default. By default, inbound and outbound traffic is allowed. If you set this to another value than INBOUND_AND_OUTBOUND, you must configure the NAT instance's security groups in another way, either by passing in a fully configured Security Group using the ``securityGroup`` property, or by configuring it using the ``.securityGroup`` or ``.connections`` members after passing the NAT Instance Provider to a Vpc. Default: NatTrafficDirection.INBOUND_AND_OUTBOUND
88110
- :param key_name: Name of SSH keypair to grant access to instance. Default: - No SSH access will be possible.
88982
+ :param key_name: (deprecated) Name of SSH keypair to grant access to instance. Default: - No SSH access will be possible.
88983
+ :param key_pair: The SSH keypair to grant access to the instance. Default: - No SSH access will be possible.
88111
88984
  :param machine_image: The machine image (AMI) to use. By default, will do an AMI lookup for the latest NAT instance image. If you have a specific AMI ID you want to use, pass a ``GenericLinuxImage``. For example:: ec2.NatProvider.instance({ instanceType: new ec2.InstanceType('t3.micro'), machineImage: new ec2.GenericLinuxImage({ 'us-east-2': 'ami-0f9c61b5a562a16af' }) }) Default: - Latest NAT instance image
88112
88985
  :param security_group: Security Group for NAT instances. Default: - A new security group will be created
88113
88986
  '''
@@ -88115,6 +88988,7 @@ class NatInstanceProvider(
88115
88988
  instance_type=instance_type,
88116
88989
  default_allowed_traffic=default_allowed_traffic,
88117
88990
  key_name=key_name,
88991
+ key_pair=key_pair,
88118
88992
  machine_image=machine_image,
88119
88993
  security_group=security_group,
88120
88994
  )
@@ -90004,6 +90878,8 @@ __all__ = [
90004
90878
  "CfnSecurityGroupIngress",
90005
90879
  "CfnSecurityGroupIngressProps",
90006
90880
  "CfnSecurityGroupProps",
90881
+ "CfnSnapshotBlockPublicAccess",
90882
+ "CfnSnapshotBlockPublicAccessProps",
90007
90883
  "CfnSpotFleet",
90008
90884
  "CfnSpotFleetProps",
90009
90885
  "CfnSubnet",
@@ -90146,6 +91022,7 @@ __all__ = [
90146
91022
  "IInterfaceVpcEndpoint",
90147
91023
  "IInterfaceVpcEndpointService",
90148
91024
  "IIpAddresses",
91025
+ "IKeyPair",
90149
91026
  "ILaunchTemplate",
90150
91027
  "IMachineImage",
90151
91028
  "INetworkAcl",
@@ -90200,6 +91077,11 @@ __all__ = [
90200
91077
  "InterfaceVpcEndpointProps",
90201
91078
  "InterfaceVpcEndpointService",
90202
91079
  "IpAddresses",
91080
+ "KeyPair",
91081
+ "KeyPairAttributes",
91082
+ "KeyPairFormat",
91083
+ "KeyPairProps",
91084
+ "KeyPairType",
90203
91085
  "LaunchTemplate",
90204
91086
  "LaunchTemplateAttributes",
90205
91087
  "LaunchTemplateHttpTokens",
@@ -95255,6 +96137,7 @@ def _typecheckingstub__418aadfc2c6984f0ac75cd67e36ca76f23d9cf7bc23846cf55d7b3cdb
95255
96137
  *,
95256
96138
  route_table_id: builtins.str,
95257
96139
  carrier_gateway_id: typing.Optional[builtins.str] = None,
96140
+ core_network_arn: typing.Optional[builtins.str] = None,
95258
96141
  destination_cidr_block: typing.Optional[builtins.str] = None,
95259
96142
  destination_ipv6_cidr_block: typing.Optional[builtins.str] = None,
95260
96143
  destination_prefix_list_id: typing.Optional[builtins.str] = None,
@@ -95295,6 +96178,12 @@ def _typecheckingstub__355c5c80f08453332882507836cf0441e37ed4a5c9fa46ef1c415dd73
95295
96178
  """Type checking stubs"""
95296
96179
  pass
95297
96180
 
96181
+ def _typecheckingstub__535edefe9ec250f819eacd60779bcf6b8d4afa9cd9b9ec8142ddfb03034be5ac(
96182
+ value: typing.Optional[builtins.str],
96183
+ ) -> None:
96184
+ """Type checking stubs"""
96185
+ pass
96186
+
95298
96187
  def _typecheckingstub__1ae05f819fd9822a84fcac1033a9bd983835b0e75eb0d432aa89d5973585cc3e(
95299
96188
  value: typing.Optional[builtins.str],
95300
96189
  ) -> None:
@@ -95371,6 +96260,7 @@ def _typecheckingstub__f90e7814d59b7c562ab4b24d54461eba6a4c88fbd5451ba2b2b0adf84
95371
96260
  *,
95372
96261
  route_table_id: builtins.str,
95373
96262
  carrier_gateway_id: typing.Optional[builtins.str] = None,
96263
+ core_network_arn: typing.Optional[builtins.str] = None,
95374
96264
  destination_cidr_block: typing.Optional[builtins.str] = None,
95375
96265
  destination_ipv6_cidr_block: typing.Optional[builtins.str] = None,
95376
96266
  destination_prefix_list_id: typing.Optional[builtins.str] = None,
@@ -95753,6 +96643,40 @@ def _typecheckingstub__a21c9d7bd7156fd2dd5a288945bbf548f4ab7a9ee07ba36ecb2062ab6
95753
96643
  """Type checking stubs"""
95754
96644
  pass
95755
96645
 
96646
+ def _typecheckingstub__995a1a5869d618c24a624831b2ad5e725b73ab6134ba003d66411c58faf1187e(
96647
+ scope: _constructs_77d1e7e8.Construct,
96648
+ id: builtins.str,
96649
+ *,
96650
+ state: builtins.str,
96651
+ ) -> None:
96652
+ """Type checking stubs"""
96653
+ pass
96654
+
96655
+ def _typecheckingstub__856438104299447428cd955093ead73bce11b3f11c039205bcd5e194beb9b322(
96656
+ inspector: _TreeInspector_488e0dd5,
96657
+ ) -> None:
96658
+ """Type checking stubs"""
96659
+ pass
96660
+
96661
+ def _typecheckingstub__5986589d73c46b7a96fd8cdffc5dd783512e594c0f96cf249a7577ed130d1c96(
96662
+ props: typing.Mapping[builtins.str, typing.Any],
96663
+ ) -> None:
96664
+ """Type checking stubs"""
96665
+ pass
96666
+
96667
+ def _typecheckingstub__a4c8cd7c082b41fda937b1f6a6a1a59e489b437d498c2b75a58ae1582086af7b(
96668
+ value: builtins.str,
96669
+ ) -> None:
96670
+ """Type checking stubs"""
96671
+ pass
96672
+
96673
+ def _typecheckingstub__e66d65de803363af49ef406b4229988fd2680cccdc692b106aff40a80ff135ad(
96674
+ *,
96675
+ state: builtins.str,
96676
+ ) -> None:
96677
+ """Type checking stubs"""
96678
+ pass
96679
+
95756
96680
  def _typecheckingstub__507ab221d4bf8e8520b22850e0df945eba1ce8da26b5b5f4800e98249ec0bb9c(
95757
96681
  scope: _constructs_77d1e7e8.Construct,
95758
96682
  id: builtins.str,
@@ -99966,6 +100890,7 @@ def _typecheckingstub__5fdf31f5ae2497c7efcb56df558011698f38dc19cff28ca7a78a08a6d
99966
100890
  init_options: typing.Optional[typing.Union[ApplyCloudFormationInitOptions, typing.Dict[builtins.str, typing.Any]]] = None,
99967
100891
  instance_name: typing.Optional[builtins.str] = None,
99968
100892
  key_name: typing.Optional[builtins.str] = None,
100893
+ key_pair: typing.Optional[IKeyPair] = None,
99969
100894
  private_ip_address: typing.Optional[builtins.str] = None,
99970
100895
  propagate_tags_to_volume_on_creation: typing.Optional[builtins.bool] = None,
99971
100896
  require_imdsv2: typing.Optional[builtins.bool] = None,
@@ -100013,6 +100938,7 @@ def _typecheckingstub__2d4dc63c6e6ee3ddc68d5dd204d8ac5ef1f1dec37a7b84d636225df1c
100013
100938
  init_options: typing.Optional[typing.Union[ApplyCloudFormationInitOptions, typing.Dict[builtins.str, typing.Any]]] = None,
100014
100939
  instance_name: typing.Optional[builtins.str] = None,
100015
100940
  key_name: typing.Optional[builtins.str] = None,
100941
+ key_pair: typing.Optional[IKeyPair] = None,
100016
100942
  private_ip_address: typing.Optional[builtins.str] = None,
100017
100943
  propagate_tags_to_volume_on_creation: typing.Optional[builtins.bool] = None,
100018
100944
  require_imdsv2: typing.Optional[builtins.bool] = None,
@@ -100123,6 +101049,62 @@ def _typecheckingstub__712e8cdff0857893172d9de86affb30950183e037ef537789198de8ca
100123
101049
  """Type checking stubs"""
100124
101050
  pass
100125
101051
 
101052
+ def _typecheckingstub__723c12f80f8f69703f74949dec0a4305b19d6d27efff9d36830815d8e604283c(
101053
+ scope: _constructs_77d1e7e8.Construct,
101054
+ id: builtins.str,
101055
+ *,
101056
+ format: typing.Optional[KeyPairFormat] = None,
101057
+ key_pair_name: typing.Optional[builtins.str] = None,
101058
+ public_key_material: typing.Optional[builtins.str] = None,
101059
+ type: typing.Optional[KeyPairType] = None,
101060
+ account: typing.Optional[builtins.str] = None,
101061
+ environment_from_arn: typing.Optional[builtins.str] = None,
101062
+ physical_name: typing.Optional[builtins.str] = None,
101063
+ region: typing.Optional[builtins.str] = None,
101064
+ ) -> None:
101065
+ """Type checking stubs"""
101066
+ pass
101067
+
101068
+ def _typecheckingstub__12d377269b610c395f1583e904a11636e952288b5e3f85a3cc1d865eb21f7715(
101069
+ scope: _constructs_77d1e7e8.Construct,
101070
+ id: builtins.str,
101071
+ *,
101072
+ key_pair_name: builtins.str,
101073
+ type: typing.Optional[KeyPairType] = None,
101074
+ ) -> None:
101075
+ """Type checking stubs"""
101076
+ pass
101077
+
101078
+ def _typecheckingstub__7bcad8d69b7ac63eda9832fb42b2e78a5f5570d5ccd5ac181f25d55202b6f74c(
101079
+ scope: _constructs_77d1e7e8.Construct,
101080
+ id: builtins.str,
101081
+ key_pair_name: builtins.str,
101082
+ ) -> None:
101083
+ """Type checking stubs"""
101084
+ pass
101085
+
101086
+ def _typecheckingstub__1c0b1d2207b185c203475dcfffe01485ff1d6dd460f5c0308f88afbd59667178(
101087
+ *,
101088
+ key_pair_name: builtins.str,
101089
+ type: typing.Optional[KeyPairType] = None,
101090
+ ) -> None:
101091
+ """Type checking stubs"""
101092
+ pass
101093
+
101094
+ def _typecheckingstub__7af23eb9509f044383945f68d46a72f0c94f0542177c255d3d31b42f5e9aa98c(
101095
+ *,
101096
+ account: typing.Optional[builtins.str] = None,
101097
+ environment_from_arn: typing.Optional[builtins.str] = None,
101098
+ physical_name: typing.Optional[builtins.str] = None,
101099
+ region: typing.Optional[builtins.str] = None,
101100
+ format: typing.Optional[KeyPairFormat] = None,
101101
+ key_pair_name: typing.Optional[builtins.str] = None,
101102
+ public_key_material: typing.Optional[builtins.str] = None,
101103
+ type: typing.Optional[KeyPairType] = None,
101104
+ ) -> None:
101105
+ """Type checking stubs"""
101106
+ pass
101107
+
100126
101108
  def _typecheckingstub__544aef11081ec87047935491f75a3d5bc9d5075de77f96969bd2ffd1a0d78cc9(
100127
101109
  scope: _constructs_77d1e7e8.Construct,
100128
101110
  id: builtins.str,
@@ -100143,6 +101125,7 @@ def _typecheckingstub__544aef11081ec87047935491f75a3d5bc9d5075de77f96969bd2ffd1a
100143
101125
  instance_profile: typing.Optional[_IInstanceProfile_10d5ce2c] = None,
100144
101126
  instance_type: typing.Optional[InstanceType] = None,
100145
101127
  key_name: typing.Optional[builtins.str] = None,
101128
+ key_pair: typing.Optional[IKeyPair] = None,
100146
101129
  launch_template_name: typing.Optional[builtins.str] = None,
100147
101130
  machine_image: typing.Optional[IMachineImage] = None,
100148
101131
  nitro_enclave_enabled: typing.Optional[builtins.bool] = None,
@@ -100199,6 +101182,7 @@ def _typecheckingstub__e2ebb1bf0fbb2f9e894169a610cd9fb7cc3f827d34d3a10351bd2f517
100199
101182
  instance_profile: typing.Optional[_IInstanceProfile_10d5ce2c] = None,
100200
101183
  instance_type: typing.Optional[InstanceType] = None,
100201
101184
  key_name: typing.Optional[builtins.str] = None,
101185
+ key_pair: typing.Optional[IKeyPair] = None,
100202
101186
  launch_template_name: typing.Optional[builtins.str] = None,
100203
101187
  machine_image: typing.Optional[IMachineImage] = None,
100204
101188
  nitro_enclave_enabled: typing.Optional[builtins.bool] = None,
@@ -100390,6 +101374,7 @@ def _typecheckingstub__d7c7c717447859e1ccc181bc97f7752cc3f7fa7afaee4c3a4266eeac3
100390
101374
  instance_type: InstanceType,
100391
101375
  default_allowed_traffic: typing.Optional[NatTrafficDirection] = None,
100392
101376
  key_name: typing.Optional[builtins.str] = None,
101377
+ key_pair: typing.Optional[IKeyPair] = None,
100393
101378
  machine_image: typing.Optional[IMachineImage] = None,
100394
101379
  security_group: typing.Optional[ISecurityGroup] = None,
100395
101380
  ) -> None: