aws-cdk-lib 2.137.0__py3-none-any.whl → 2.138.0__py3-none-any.whl

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

Potentially problematic release.


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

Files changed (56) hide show
  1. aws_cdk/__init__.py +8 -0
  2. aws_cdk/_jsii/__init__.py +1 -1
  3. aws_cdk/_jsii/{aws-cdk-lib@2.137.0.jsii.tgz → aws-cdk-lib@2.138.0.jsii.tgz} +0 -0
  4. aws_cdk/aws_amplify/__init__.py +29 -113
  5. aws_cdk/aws_appconfig/__init__.py +26 -33
  6. aws_cdk/aws_apprunner/__init__.py +5 -2
  7. aws_cdk/aws_appsync/__init__.py +400 -13
  8. aws_cdk/aws_aps/__init__.py +64 -47
  9. aws_cdk/aws_b2bi/__init__.py +2 -6
  10. aws_cdk/aws_backup/__init__.py +27 -23
  11. aws_cdk/aws_batch/__init__.py +103 -0
  12. aws_cdk/aws_bcmdataexports/__init__.py +1114 -0
  13. aws_cdk/aws_chatbot/__init__.py +6 -4
  14. aws_cdk/aws_cleanrooms/__init__.py +526 -3
  15. aws_cdk/aws_cleanroomsml/__init__.py +960 -0
  16. aws_cdk/aws_cloudtrail/__init__.py +10 -10
  17. aws_cdk/aws_cloudwatch/__init__.py +124 -8
  18. aws_cdk/aws_codebuild/__init__.py +27 -22
  19. aws_cdk/aws_codeconnections/__init__.py +435 -0
  20. aws_cdk/aws_cognito/__init__.py +175 -79
  21. aws_cdk/aws_deadline/__init__.py +5394 -0
  22. aws_cdk/aws_ec2/__init__.py +279 -163
  23. aws_cdk/aws_ecs/__init__.py +240 -1
  24. aws_cdk/aws_efs/__init__.py +2 -2
  25. aws_cdk/aws_elasticache/__init__.py +86 -32
  26. aws_cdk/aws_elasticloadbalancingv2/__init__.py +52 -2
  27. aws_cdk/aws_emr/__init__.py +2 -2
  28. aws_cdk/aws_entityresolution/__init__.py +1982 -773
  29. aws_cdk/aws_globalaccelerator/__init__.py +443 -0
  30. aws_cdk/aws_iam/__init__.py +1 -2
  31. aws_cdk/aws_internetmonitor/__init__.py +14 -6
  32. aws_cdk/aws_ivs/__init__.py +1273 -71
  33. aws_cdk/aws_mediatailor/__init__.py +41 -0
  34. aws_cdk/aws_personalize/__init__.py +8 -6
  35. aws_cdk/aws_pinpoint/__init__.py +5 -3
  36. aws_cdk/aws_pipes/__init__.py +5 -1
  37. aws_cdk/aws_quicksight/__init__.py +12 -6
  38. aws_cdk/aws_rds/__init__.py +355 -85
  39. aws_cdk/aws_route53/__init__.py +587 -14
  40. aws_cdk/aws_sagemaker/__init__.py +233 -2
  41. aws_cdk/aws_securityhub/__init__.py +4940 -102
  42. aws_cdk/aws_securitylake/__init__.py +1237 -55
  43. aws_cdk/aws_sns/__init__.py +61 -4
  44. aws_cdk/aws_ssmcontacts/__init__.py +11 -4
  45. aws_cdk/aws_stepfunctions/__init__.py +8 -16
  46. aws_cdk/aws_stepfunctions_tasks/__init__.py +676 -1
  47. aws_cdk/aws_transfer/__init__.py +4 -4
  48. aws_cdk/aws_verifiedpermissions/__init__.py +114 -37
  49. aws_cdk/aws_workspacesthinclient/__init__.py +8 -8
  50. aws_cdk/custom_resources/__init__.py +248 -26
  51. {aws_cdk_lib-2.137.0.dist-info → aws_cdk_lib-2.138.0.dist-info}/METADATA +3 -3
  52. {aws_cdk_lib-2.137.0.dist-info → aws_cdk_lib-2.138.0.dist-info}/RECORD +56 -52
  53. {aws_cdk_lib-2.137.0.dist-info → aws_cdk_lib-2.138.0.dist-info}/LICENSE +0 -0
  54. {aws_cdk_lib-2.137.0.dist-info → aws_cdk_lib-2.138.0.dist-info}/NOTICE +0 -0
  55. {aws_cdk_lib-2.137.0.dist-info → aws_cdk_lib-2.138.0.dist-info}/WHEEL +0 -0
  56. {aws_cdk_lib-2.137.0.dist-info → aws_cdk_lib-2.138.0.dist-info}/top_level.txt +0 -0
@@ -218,10 +218,11 @@ provider = ec2.NatProvider.instance_v2(
218
218
  ec2.Vpc(self, "TheVPC",
219
219
  nat_gateway_provider=provider
220
220
  )
221
- provider.connections.allow_from(ec2.Peer.ipv4("1.2.3.4/8"), ec2.Port.tcp(80))
221
+ provider.connections.allow_from(ec2.Peer.ipv4("1.2.3.4/8"), ec2.Port.HTTP)
222
222
  ```
223
223
 
224
- You can also customize the characteristics of your NAT instances, as well as their initialization scripts:
224
+ You can also customize the characteristics of your NAT instances, including their security group,
225
+ as well as their initialization scripts:
225
226
 
226
227
  ```python
227
228
  # bucket: s3.Bucket
@@ -234,16 +235,20 @@ user_data.add_commands(
234
235
 
235
236
  provider = ec2.NatProvider.instance_v2(
236
237
  instance_type=ec2.InstanceType("t3.small"),
237
- credit_specification=ec2.CpuCredits.UNLIMITED
238
+ credit_specification=ec2.CpuCredits.UNLIMITED,
239
+ default_allowed_traffic=ec2.NatTrafficDirection.NONE
238
240
  )
239
241
 
240
- ec2.Vpc(self, "TheVPC",
242
+ vpc = ec2.Vpc(self, "TheVPC",
241
243
  nat_gateway_provider=provider,
242
244
  nat_gateways=2
243
245
  )
244
246
 
247
+ security_group = ec2.SecurityGroup(self, "SecurityGroup", vpc=vpc)
248
+ security_group.add_egress_rule(ec2.Peer.any_ipv4(), ec2.Port.tcp(443))
245
249
  for gateway in provider.gateway_instances:
246
250
  bucket.grant_write(gateway)
251
+ gateway.add_security_group(security_group)
247
252
  ```
248
253
 
249
254
  ```python
@@ -275,7 +280,7 @@ provider = ec2.NatProvider.instance(
275
280
  ec2.Vpc(self, "TheVPC",
276
281
  nat_gateway_provider=provider
277
282
  )
278
- provider.connections.allow_from(ec2.Peer.ipv4("1.2.3.4/8"), ec2.Port.tcp(80))
283
+ provider.connections.allow_from(ec2.Peer.ipv4("1.2.3.4/8"), ec2.Port.HTTP)
279
284
  ```
280
285
 
281
286
  ### Ip Address Management
@@ -762,13 +767,13 @@ take care of this for you:
762
767
 
763
768
 
764
769
  # Allow connections from anywhere
765
- load_balancer.connections.allow_from_any_ipv4(ec2.Port.tcp(443), "Allow inbound HTTPS")
770
+ load_balancer.connections.allow_from_any_ipv4(ec2.Port.HTTPS, "Allow inbound HTTPS")
766
771
 
767
772
  # The same, but an explicit IP address
768
- load_balancer.connections.allow_from(ec2.Peer.ipv4("1.2.3.4/32"), ec2.Port.tcp(443), "Allow inbound HTTPS")
773
+ load_balancer.connections.allow_from(ec2.Peer.ipv4("1.2.3.4/32"), ec2.Port.HTTPS, "Allow inbound HTTPS")
769
774
 
770
775
  # Allow connection between AutoScalingGroups
771
- app_fleet.connections.allow_to(db_fleet, ec2.Port.tcp(443), "App can call database")
776
+ app_fleet.connections.allow_to(db_fleet, ec2.Port.HTTPS, "App can call database")
772
777
  ```
773
778
 
774
779
  ### Connection Peers
@@ -786,7 +791,7 @@ peer = ec2.Peer.any_ipv4()
786
791
  peer = ec2.Peer.ipv6("::0/0")
787
792
  peer = ec2.Peer.any_ipv6()
788
793
  peer = ec2.Peer.prefix_list("pl-12345")
789
- app_fleet.connections.allow_to(peer, ec2.Port.tcp(443), "Allow outbound HTTPS")
794
+ app_fleet.connections.allow_to(peer, ec2.Port.HTTPS, "Allow outbound HTTPS")
790
795
  ```
791
796
 
792
797
  Any object that has a security group can itself be used as a connection peer:
@@ -798,9 +803,9 @@ Any object that has a security group can itself be used as a connection peer:
798
803
 
799
804
 
800
805
  # These automatically create appropriate ingress and egress rules in both security groups
801
- fleet1.connections.allow_to(fleet2, ec2.Port.tcp(80), "Allow between fleets")
806
+ fleet1.connections.allow_to(fleet2, ec2.Port.HTTP, "Allow between fleets")
802
807
 
803
- app_fleet.connections.allow_from_any_ipv4(ec2.Port.tcp(80), "Allow from load balancer")
808
+ app_fleet.connections.allow_from_any_ipv4(ec2.Port.HTTP, "Allow from load balancer")
804
809
  ```
805
810
 
806
811
  ### Port Ranges
@@ -810,6 +815,7 @@ the connection specifier:
810
815
 
811
816
  ```python
812
817
  ec2.Port.tcp(80)
818
+ ec2.Port.HTTPS
813
819
  ec2.Port.tcp_range(60000, 65535)
814
820
  ec2.Port.all_tcp()
815
821
  ec2.Port.all_icmp()
@@ -864,7 +870,7 @@ my_security_group_without_inline_rules = ec2.SecurityGroup(self, "SecurityGroup"
864
870
  disable_inline_rules=True
865
871
  )
866
872
  # This will add the rule as an external cloud formation construct
867
- my_security_group_without_inline_rules.add_ingress_rule(ec2.Peer.any_ipv4(), ec2.Port.tcp(22), "allow ssh access from the world")
873
+ my_security_group_without_inline_rules.add_ingress_rule(ec2.Peer.any_ipv4(), ec2.Port.SSH, "allow ssh access from the world")
868
874
  ```
869
875
 
870
876
  ### Importing an existing security group
@@ -9348,6 +9354,7 @@ class CfnCustomerGateway(
9348
9354
  type="type",
9349
9355
 
9350
9356
  # the properties below are optional
9357
+ certificate_arn="certificateArn",
9351
9358
  device_name="deviceName",
9352
9359
  tags=[CfnTag(
9353
9360
  key="key",
@@ -9364,6 +9371,7 @@ class CfnCustomerGateway(
9364
9371
  bgp_asn: jsii.Number,
9365
9372
  ip_address: builtins.str,
9366
9373
  type: builtins.str,
9374
+ certificate_arn: typing.Optional[builtins.str] = None,
9367
9375
  device_name: typing.Optional[builtins.str] = None,
9368
9376
  tags: typing.Optional[typing.Sequence[typing.Union[_CfnTag_f6864754, typing.Dict[builtins.str, typing.Any]]]] = None,
9369
9377
  ) -> None:
@@ -9373,6 +9381,7 @@ class CfnCustomerGateway(
9373
9381
  :param bgp_asn: For devices that support BGP, the customer gateway's BGP ASN. Default: 65000 Default: - 65000
9374
9382
  :param ip_address: IPv4 address for the customer gateway device's outside interface. The address must be static.
9375
9383
  :param type: The type of VPN connection that this customer gateway supports ( ``ipsec.1`` ).
9384
+ :param certificate_arn: The Amazon Resource Name (ARN) for the customer gateway certificate.
9376
9385
  :param device_name: The name of customer gateway device.
9377
9386
  :param tags: One or more tags for the customer gateway.
9378
9387
  '''
@@ -9384,6 +9393,7 @@ class CfnCustomerGateway(
9384
9393
  bgp_asn=bgp_asn,
9385
9394
  ip_address=ip_address,
9386
9395
  type=type,
9396
+ certificate_arn=certificate_arn,
9387
9397
  device_name=device_name,
9388
9398
  tags=tags,
9389
9399
  )
@@ -9479,6 +9489,19 @@ class CfnCustomerGateway(
9479
9489
  check_type(argname="argument value", value=value, expected_type=type_hints["value"])
9480
9490
  jsii.set(self, "type", value)
9481
9491
 
9492
+ @builtins.property
9493
+ @jsii.member(jsii_name="certificateArn")
9494
+ def certificate_arn(self) -> typing.Optional[builtins.str]:
9495
+ '''The Amazon Resource Name (ARN) for the customer gateway certificate.'''
9496
+ return typing.cast(typing.Optional[builtins.str], jsii.get(self, "certificateArn"))
9497
+
9498
+ @certificate_arn.setter
9499
+ def certificate_arn(self, value: typing.Optional[builtins.str]) -> None:
9500
+ if __debug__:
9501
+ type_hints = typing.get_type_hints(_typecheckingstub__4a4b900e840c5be3a2b16a5177f91335cf813daeca359e549a639cb05a03ac63)
9502
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
9503
+ jsii.set(self, "certificateArn", value)
9504
+
9482
9505
  @builtins.property
9483
9506
  @jsii.member(jsii_name="deviceName")
9484
9507
  def device_name(self) -> typing.Optional[builtins.str]:
@@ -9513,6 +9536,7 @@ class CfnCustomerGateway(
9513
9536
  "bgp_asn": "bgpAsn",
9514
9537
  "ip_address": "ipAddress",
9515
9538
  "type": "type",
9539
+ "certificate_arn": "certificateArn",
9516
9540
  "device_name": "deviceName",
9517
9541
  "tags": "tags",
9518
9542
  },
@@ -9524,6 +9548,7 @@ class CfnCustomerGatewayProps:
9524
9548
  bgp_asn: jsii.Number,
9525
9549
  ip_address: builtins.str,
9526
9550
  type: builtins.str,
9551
+ certificate_arn: typing.Optional[builtins.str] = None,
9527
9552
  device_name: typing.Optional[builtins.str] = None,
9528
9553
  tags: typing.Optional[typing.Sequence[typing.Union[_CfnTag_f6864754, typing.Dict[builtins.str, typing.Any]]]] = None,
9529
9554
  ) -> None:
@@ -9532,6 +9557,7 @@ class CfnCustomerGatewayProps:
9532
9557
  :param bgp_asn: For devices that support BGP, the customer gateway's BGP ASN. Default: 65000 Default: - 65000
9533
9558
  :param ip_address: IPv4 address for the customer gateway device's outside interface. The address must be static.
9534
9559
  :param type: The type of VPN connection that this customer gateway supports ( ``ipsec.1`` ).
9560
+ :param certificate_arn: The Amazon Resource Name (ARN) for the customer gateway certificate.
9535
9561
  :param device_name: The name of customer gateway device.
9536
9562
  :param tags: One or more tags for the customer gateway.
9537
9563
 
@@ -9550,6 +9576,7 @@ class CfnCustomerGatewayProps:
9550
9576
  type="type",
9551
9577
 
9552
9578
  # the properties below are optional
9579
+ certificate_arn="certificateArn",
9553
9580
  device_name="deviceName",
9554
9581
  tags=[CfnTag(
9555
9582
  key="key",
@@ -9562,6 +9589,7 @@ class CfnCustomerGatewayProps:
9562
9589
  check_type(argname="argument bgp_asn", value=bgp_asn, expected_type=type_hints["bgp_asn"])
9563
9590
  check_type(argname="argument ip_address", value=ip_address, expected_type=type_hints["ip_address"])
9564
9591
  check_type(argname="argument type", value=type, expected_type=type_hints["type"])
9592
+ check_type(argname="argument certificate_arn", value=certificate_arn, expected_type=type_hints["certificate_arn"])
9565
9593
  check_type(argname="argument device_name", value=device_name, expected_type=type_hints["device_name"])
9566
9594
  check_type(argname="argument tags", value=tags, expected_type=type_hints["tags"])
9567
9595
  self._values: typing.Dict[builtins.str, typing.Any] = {
@@ -9569,6 +9597,8 @@ class CfnCustomerGatewayProps:
9569
9597
  "ip_address": ip_address,
9570
9598
  "type": type,
9571
9599
  }
9600
+ if certificate_arn is not None:
9601
+ self._values["certificate_arn"] = certificate_arn
9572
9602
  if device_name is not None:
9573
9603
  self._values["device_name"] = device_name
9574
9604
  if tags is not None:
@@ -9610,6 +9640,15 @@ class CfnCustomerGatewayProps:
9610
9640
  assert result is not None, "Required property 'type' is missing"
9611
9641
  return typing.cast(builtins.str, result)
9612
9642
 
9643
+ @builtins.property
9644
+ def certificate_arn(self) -> typing.Optional[builtins.str]:
9645
+ '''The Amazon Resource Name (ARN) for the customer gateway certificate.
9646
+
9647
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-customergateway.html#cfn-ec2-customergateway-certificatearn
9648
+ '''
9649
+ result = self._values.get("certificate_arn")
9650
+ return typing.cast(typing.Optional[builtins.str], result)
9651
+
9613
9652
  @builtins.property
9614
9653
  def device_name(self) -> typing.Optional[builtins.str]:
9615
9654
  '''The name of customer gateway device.
@@ -19177,8 +19216,8 @@ class CfnInstance(
19177
19216
  :param credit_specification: The credit option for CPU usage of the burstable performance instance. Valid values are ``standard`` and ``unlimited`` . To change this attribute after launch, use `ModifyInstanceCreditSpecification <https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_ModifyInstanceCreditSpecification.html>`_ . For more information, see `Burstable performance instances <https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/burstable-performance-instances.html>`_ in the *Amazon EC2 User Guide* . Default: ``standard`` (T2 instances) or ``unlimited`` (T3/T3a/T4g instances) For T3 instances with ``host`` tenancy, only ``standard`` is supported.
19178
19217
  :param disable_api_termination: If you set this parameter to ``true`` , you can't terminate the instance using the Amazon EC2 console, CLI, or API; otherwise, you can. To change this attribute after launch, use `ModifyInstanceAttribute <https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_ModifyInstanceAttribute.html>`_ . Alternatively, if you set ``InstanceInitiatedShutdownBehavior`` to ``terminate`` , you can terminate the instance by running the shutdown command from the instance. Default: ``false``
19179
19218
  :param ebs_optimized: Indicates whether the instance is optimized for Amazon EBS I/O. This optimization provides dedicated throughput to Amazon EBS and an optimized configuration stack to provide optimal Amazon EBS I/O performance. This optimization isn't available with all instance types. Additional usage charges apply when using an EBS-optimized instance. Default: ``false``
19180
- :param elastic_gpu_specifications: Deprecated. .. epigraph:: Amazon Elastic Graphics reached end of life on January 8, 2024. For workloads that require graphics acceleration, we recommend that you use Amazon EC2 G4ad, G4dn, or G5 instances.
19181
- :param elastic_inference_accelerators: An elastic inference accelerator to associate with the instance. Elastic inference accelerators are a resource you can attach to your Amazon EC2 instances to accelerate your Deep Learning (DL) inference workloads. You cannot specify accelerators from different generations in the same request. .. epigraph:: Starting April 15, 2023, AWS will not onboard new customers to Amazon Elastic Inference (EI), and will help current customers migrate their workloads to options that offer better price and performance. After April 15, 2023, new customers will not be able to launch instances with Amazon EI accelerators in Amazon SageMaker, Amazon ECS, or Amazon EC2. However, customers who have used Amazon EI at least once during the past 30-day period are considered current customers and will be able to continue using the service.
19219
+ :param elastic_gpu_specifications: An elastic GPU to associate with the instance. .. epigraph:: Amazon Elastic Graphics reached end of life on January 8, 2024.
19220
+ :param elastic_inference_accelerators: An elastic inference accelerator to associate with the instance. .. epigraph:: Amazon Elastic Inference (EI) is no longer available to new customers. For more information, see `Amazon Elastic Inference FAQs <https://docs.aws.amazon.com/machine-learning/elastic-inference/faqs/>`_ .
19182
19221
  :param enclave_options: Indicates whether the instance is enabled for AWS Nitro Enclaves.
19183
19222
  :param hibernation_options: Indicates whether an instance is enabled for hibernation. This parameter is valid only if the instance meets the `hibernation prerequisites <https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/hibernating-prerequisites.html>`_ . For more information, see `Hibernate your instance <https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Hibernate.html>`_ in the *Amazon EC2 User Guide* . You can't enable hibernation and AWS Nitro Enclaves on the same instance.
19184
19223
  :param host_id: If you specify host for the ``Affinity`` property, the ID of a dedicated host that the instance is associated with. If you don't specify an ID, Amazon EC2 launches the instance onto any available, compatible dedicated host in your account. This type of launch is called an untargeted launch. Note that for untargeted launches, you must have a compatible, dedicated host available to successfully launch instances.
@@ -19204,7 +19243,7 @@ class CfnInstance(
19204
19243
  :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.
19205
19244
  :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.
19206
19245
  :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.
19207
- :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.
19246
+ :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 instead of using this parameter.
19208
19247
  :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`` .
19209
19248
  :param tenancy: The tenancy of the instance. An instance with a tenancy of ``dedicated`` runs on single-tenant hardware.
19210
19249
  :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.
@@ -19297,14 +19336,6 @@ class CfnInstance(
19297
19336
  '''
19298
19337
  return typing.cast(builtins.str, jsii.get(self, "attrAvailabilityZone"))
19299
19338
 
19300
- @builtins.property
19301
- @jsii.member(jsii_name="attrId")
19302
- def attr_id(self) -> builtins.str:
19303
- '''
19304
- :cloudformationAttribute: Id
19305
- '''
19306
- return typing.cast(builtins.str, jsii.get(self, "attrId"))
19307
-
19308
19339
  @builtins.property
19309
19340
  @jsii.member(jsii_name="attrInstanceId")
19310
19341
  def attr_instance_id(self) -> builtins.str:
@@ -19512,7 +19543,7 @@ class CfnInstance(
19512
19543
  def elastic_gpu_specifications(
19513
19544
  self,
19514
19545
  ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, "CfnInstance.ElasticGpuSpecificationProperty"]]]]:
19515
- '''Deprecated.'''
19546
+ '''An elastic GPU to associate with the instance.'''
19516
19547
  return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, "CfnInstance.ElasticGpuSpecificationProperty"]]]], jsii.get(self, "elasticGpuSpecifications"))
19517
19548
 
19518
19549
  @elastic_gpu_specifications.setter
@@ -20940,11 +20971,9 @@ class CfnInstance(
20940
20971
  - The ID or the name of the launch template, but not both.
20941
20972
  - The version of the launch template.
20942
20973
 
20943
- ``LaunchTemplateSpecification`` is a property of the `AWS::EC2::Instance <https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance.html>`_ resource.
20944
-
20945
20974
  For information about creating a launch template, see `AWS::EC2::LaunchTemplate <https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-launchtemplate.html>`_ and `Create a launch template <https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-launch-templates.html#create-launch-template>`_ in the *Amazon EC2 User Guide* .
20946
20975
 
20947
- For examples of launch templates, see `Examples <https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-launchtemplate.html#aws-resource-ec2-launchtemplate--examples>`_ .
20976
+ For example launch templates, see the `Examples <https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-launchtemplate.html#aws-resource-ec2-launchtemplate--examples>`_ for ``AWS::EC2::LaunchTemplate`` .
20948
20977
 
20949
20978
  :param version: The version number of the launch template. Specifying ``$Latest`` or ``$Default`` for the template version number is not supported. However, you can specify ``LatestVersionNumber`` or ``DefaultVersionNumber`` using the ``Fn::GetAtt`` intrinsic function. For more information, see `Fn::GetAtt <https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-launchtemplate.html#aws-resource-ec2-launchtemplate-return-values-fn--getatt>`_ .
20950
20979
  :param launch_template_id: The ID of the launch template. You must specify the ``LaunchTemplateId`` or the ``LaunchTemplateName`` , but not both.
@@ -21134,7 +21163,7 @@ class CfnInstance(
21134
21163
  :param private_ip_address: The private IPv4 address of the network interface. Applies only if creating a network interface when launching an instance.
21135
21164
  :param private_ip_addresses: One or more private IPv4 addresses to assign to the network interface. Only one private IPv4 address can be designated as primary.
21136
21165
  :param secondary_private_ip_address_count: The number of secondary private IPv4 addresses. You can't specify this option and specify more than one private IP address using the private IP addresses option.
21137
- :param subnet_id: The ID of the subnet associated with the network interface. Applies only if creating a network interface when launching an instance.
21166
+ :param subnet_id: The ID of the subnet associated with the network interface.
21138
21167
 
21139
21168
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance-networkinterface.html
21140
21169
  :exampleMetadata: fixture=_generated
@@ -21360,8 +21389,6 @@ class CfnInstance(
21360
21389
  def subnet_id(self) -> typing.Optional[builtins.str]:
21361
21390
  '''The ID of the subnet associated with the network interface.
21362
21391
 
21363
- Applies only if creating a network interface when launching an instance.
21364
-
21365
21392
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance-networkinterface.html#cfn-ec2-instance-networkinterface-subnetid
21366
21393
  '''
21367
21394
  result = self._values.get("subnet_id")
@@ -22171,8 +22198,8 @@ class CfnInstanceProps:
22171
22198
  :param credit_specification: The credit option for CPU usage of the burstable performance instance. Valid values are ``standard`` and ``unlimited`` . To change this attribute after launch, use `ModifyInstanceCreditSpecification <https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_ModifyInstanceCreditSpecification.html>`_ . For more information, see `Burstable performance instances <https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/burstable-performance-instances.html>`_ in the *Amazon EC2 User Guide* . Default: ``standard`` (T2 instances) or ``unlimited`` (T3/T3a/T4g instances) For T3 instances with ``host`` tenancy, only ``standard`` is supported.
22172
22199
  :param disable_api_termination: If you set this parameter to ``true`` , you can't terminate the instance using the Amazon EC2 console, CLI, or API; otherwise, you can. To change this attribute after launch, use `ModifyInstanceAttribute <https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_ModifyInstanceAttribute.html>`_ . Alternatively, if you set ``InstanceInitiatedShutdownBehavior`` to ``terminate`` , you can terminate the instance by running the shutdown command from the instance. Default: ``false``
22173
22200
  :param ebs_optimized: Indicates whether the instance is optimized for Amazon EBS I/O. This optimization provides dedicated throughput to Amazon EBS and an optimized configuration stack to provide optimal Amazon EBS I/O performance. This optimization isn't available with all instance types. Additional usage charges apply when using an EBS-optimized instance. Default: ``false``
22174
- :param elastic_gpu_specifications: Deprecated. .. epigraph:: Amazon Elastic Graphics reached end of life on January 8, 2024. For workloads that require graphics acceleration, we recommend that you use Amazon EC2 G4ad, G4dn, or G5 instances.
22175
- :param elastic_inference_accelerators: An elastic inference accelerator to associate with the instance. Elastic inference accelerators are a resource you can attach to your Amazon EC2 instances to accelerate your Deep Learning (DL) inference workloads. You cannot specify accelerators from different generations in the same request. .. epigraph:: Starting April 15, 2023, AWS will not onboard new customers to Amazon Elastic Inference (EI), and will help current customers migrate their workloads to options that offer better price and performance. After April 15, 2023, new customers will not be able to launch instances with Amazon EI accelerators in Amazon SageMaker, Amazon ECS, or Amazon EC2. However, customers who have used Amazon EI at least once during the past 30-day period are considered current customers and will be able to continue using the service.
22201
+ :param elastic_gpu_specifications: An elastic GPU to associate with the instance. .. epigraph:: Amazon Elastic Graphics reached end of life on January 8, 2024.
22202
+ :param elastic_inference_accelerators: An elastic inference accelerator to associate with the instance. .. epigraph:: Amazon Elastic Inference (EI) is no longer available to new customers. For more information, see `Amazon Elastic Inference FAQs <https://docs.aws.amazon.com/machine-learning/elastic-inference/faqs/>`_ .
22176
22203
  :param enclave_options: Indicates whether the instance is enabled for AWS Nitro Enclaves.
22177
22204
  :param hibernation_options: Indicates whether an instance is enabled for hibernation. This parameter is valid only if the instance meets the `hibernation prerequisites <https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/hibernating-prerequisites.html>`_ . For more information, see `Hibernate your instance <https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Hibernate.html>`_ in the *Amazon EC2 User Guide* . You can't enable hibernation and AWS Nitro Enclaves on the same instance.
22178
22205
  :param host_id: If you specify host for the ``Affinity`` property, the ID of a dedicated host that the instance is associated with. If you don't specify an ID, Amazon EC2 launches the instance onto any available, compatible dedicated host in your account. This type of launch is called an untargeted launch. Note that for untargeted launches, you must have a compatible, dedicated host available to successfully launch instances.
@@ -22198,7 +22225,7 @@ class CfnInstanceProps:
22198
22225
  :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.
22199
22226
  :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.
22200
22227
  :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.
22201
- :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.
22228
+ :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 instead of using this parameter.
22202
22229
  :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`` .
22203
22230
  :param tenancy: The tenancy of the instance. An instance with a tenancy of ``dedicated`` runs on single-tenant hardware.
22204
22231
  :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.
@@ -22575,11 +22602,11 @@ class CfnInstanceProps:
22575
22602
  def elastic_gpu_specifications(
22576
22603
  self,
22577
22604
  ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, CfnInstance.ElasticGpuSpecificationProperty]]]]:
22578
- '''Deprecated.
22605
+ '''An elastic GPU to associate with the instance.
22579
22606
 
22580
22607
  .. epigraph::
22581
22608
 
22582
- Amazon Elastic Graphics reached end of life on January 8, 2024. For workloads that require graphics acceleration, we recommend that you use Amazon EC2 G4ad, G4dn, or G5 instances.
22609
+ Amazon Elastic Graphics reached end of life on January 8, 2024.
22583
22610
 
22584
22611
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-instance.html#cfn-ec2-instance-elasticgpuspecifications
22585
22612
  '''
@@ -22592,12 +22619,9 @@ class CfnInstanceProps:
22592
22619
  ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, CfnInstance.ElasticInferenceAcceleratorProperty]]]]:
22593
22620
  '''An elastic inference accelerator to associate with the instance.
22594
22621
 
22595
- Elastic inference accelerators are a resource you can attach to your Amazon EC2 instances to accelerate your Deep Learning (DL) inference workloads.
22596
-
22597
- You cannot specify accelerators from different generations in the same request.
22598
22622
  .. epigraph::
22599
22623
 
22600
- Starting April 15, 2023, AWS will not onboard new customers to Amazon Elastic Inference (EI), and will help current customers migrate their workloads to options that offer better price and performance. After April 15, 2023, new customers will not be able to launch instances with Amazon EI accelerators in Amazon SageMaker, Amazon ECS, or Amazon EC2. However, customers who have used Amazon EI at least once during the past 30-day period are considered current customers and will be able to continue using the service.
22624
+ Amazon Elastic Inference (EI) is no longer available to new customers. For more information, see `Amazon Elastic Inference FAQs <https://docs.aws.amazon.com/machine-learning/elastic-inference/faqs/>`_ .
22601
22625
 
22602
22626
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-instance.html#cfn-ec2-instance-elasticinferenceaccelerators
22603
22627
  '''
@@ -22924,7 +22948,7 @@ class CfnInstanceProps:
22924
22948
  def subnet_id(self) -> typing.Optional[builtins.str]:
22925
22949
  '''The ID of the subnet to launch the instance into.
22926
22950
 
22927
- If you specify a network interface, you must specify any subnets as part of the network interface.
22951
+ If you specify a network interface, you must specify any subnets as part of the network interface instead of using this parameter.
22928
22952
 
22929
22953
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-instance.html#cfn-ec2-instance-subnetid
22930
22954
  '''
@@ -26092,12 +26116,12 @@ class CfnLaunchTemplate(
26092
26116
  :param maintenance_options: The maintenance options of your instance.
26093
26117
  :param metadata_options: The metadata options for the instance. For more information, see `Instance metadata and user data <https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-metadata.html>`_ in the *Amazon Elastic Compute Cloud User Guide* .
26094
26118
  :param monitoring: The monitoring for the instance.
26095
- :param network_interfaces: One or more network interfaces. If you specify a network interface, you must specify any security groups and subnets as part of the network interface.
26119
+ :param network_interfaces: The network interfaces for the instance.
26096
26120
  :param placement: The placement for the instance.
26097
26121
  :param private_dns_name_options: The hostname type for EC2 instances launched into this subnet and how DNS A and AAAA record queries 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* .
26098
26122
  :param ram_disk_id: The ID of the RAM disk. .. epigraph:: We recommend that you use PV-GRUB instead of kernels and RAM disks. For more information, see `User provided kernels <https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/UserProvidedkernels.html>`_ in the *Amazon Elastic Compute Cloud User Guide* .
26099
- :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.
26100
- :param security_groups: One or more security group names. For a nondefault VPC, you must use security group IDs instead.
26123
+ :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 instead.
26124
+ :param security_groups: The names of the security groups. For a nondefault VPC, you must use security group IDs instead. If you specify a network interface, you must specify any security groups as part of the network interface instead of using this parameter.
26101
26125
  :param tag_specifications: The tags to apply to the resources that are created during instance launch. To tag a resource after it has been created, see `CreateTags <https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateTags.html>`_ . To tag the launch template itself, use `TagSpecifications <https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-launchtemplate.html#cfn-ec2-launchtemplate-tagspecifications>`_ .
26102
26126
  :param user_data: The user data to make available to the instance. You must provide base64-encoded text. User data is limited to 16 KB. For more information, see `Run commands on your Linux instance at launch <https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/user-data.html>`_ (Linux) or `Work with instance user data <https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/instancedata-add-user-data.html>`_ (Windows) in the *Amazon Elastic Compute Cloud User Guide* . If you are creating the launch template for use with AWS Batch , the user data must be provided in the `MIME multi-part archive format <https://docs.aws.amazon.com/https://cloudinit.readthedocs.io/en/latest/topics/format.html#mime-multi-part-archive>`_ . For more information, see `Amazon EC2 user data in launch templates <https://docs.aws.amazon.com/batch/latest/userguide/launch-templates.html>`_ in the *AWS Batch User Guide* .
26103
26127
 
@@ -26233,8 +26257,7 @@ class CfnLaunchTemplate(
26233
26257
  license_configuration_arn="licenseConfigurationArn"
26234
26258
  )],
26235
26259
  maintenance_options=ec2.CfnLaunchTemplate.MaintenanceOptionsProperty(
26236
- auto_recovery="autoRecovery",
26237
- reboot_migration="rebootMigration"
26260
+ auto_recovery="autoRecovery"
26238
26261
  ),
26239
26262
  metadata_options=ec2.CfnLaunchTemplate.MetadataOptionsProperty(
26240
26263
  http_endpoint="httpEndpoint",
@@ -26732,9 +26755,7 @@ class CfnLaunchTemplate(
26732
26755
  def network_interfaces(
26733
26756
  self,
26734
26757
  ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, "CfnLaunchTemplate.NetworkInterfaceProperty"]]]]:
26735
- '''One or more network interfaces.
26736
-
26737
- If you specify a network interface, you must specify any security groups and subnets as part of the network interface.
26758
+ '''The network interfaces for the instance.
26738
26759
 
26739
26760
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata.html#cfn-ec2-launchtemplate-launchtemplatedata-networkinterfaces
26740
26761
  '''
@@ -26784,6 +26805,8 @@ class CfnLaunchTemplate(
26784
26805
 
26785
26806
  You can specify the IDs of existing security groups and references to resources created by the stack template.
26786
26807
 
26808
+ If you specify a network interface, you must specify any security groups as part of the network interface instead.
26809
+
26787
26810
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata.html#cfn-ec2-launchtemplate-launchtemplatedata-securitygroupids
26788
26811
  '''
26789
26812
  result = self._values.get("security_group_ids")
@@ -26791,9 +26814,9 @@ class CfnLaunchTemplate(
26791
26814
 
26792
26815
  @builtins.property
26793
26816
  def security_groups(self) -> typing.Optional[typing.List[builtins.str]]:
26794
- '''One or more security group names.
26817
+ '''The names of the security groups. For a nondefault VPC, you must use security group IDs instead.
26795
26818
 
26796
- For a nondefault VPC, you must use security group IDs instead.
26819
+ If you specify a network interface, you must specify any security groups as part of the network interface instead of using this parameter.
26797
26820
 
26798
26821
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata.html#cfn-ec2-launchtemplate-launchtemplatedata-securitygroups
26799
26822
  '''
@@ -27052,22 +27075,17 @@ class CfnLaunchTemplate(
27052
27075
  @jsii.data_type(
27053
27076
  jsii_type="aws-cdk-lib.aws_ec2.CfnLaunchTemplate.MaintenanceOptionsProperty",
27054
27077
  jsii_struct_bases=[],
27055
- name_mapping={
27056
- "auto_recovery": "autoRecovery",
27057
- "reboot_migration": "rebootMigration",
27058
- },
27078
+ name_mapping={"auto_recovery": "autoRecovery"},
27059
27079
  )
27060
27080
  class MaintenanceOptionsProperty:
27061
27081
  def __init__(
27062
27082
  self,
27063
27083
  *,
27064
27084
  auto_recovery: typing.Optional[builtins.str] = None,
27065
- reboot_migration: typing.Optional[builtins.str] = None,
27066
27085
  ) -> None:
27067
27086
  '''The maintenance options of your instance.
27068
27087
 
27069
27088
  :param auto_recovery: Disables the automatic recovery behavior of your instance or sets it to default.
27070
- :param reboot_migration:
27071
27089
 
27072
27090
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-maintenanceoptions.html
27073
27091
  :exampleMetadata: fixture=_generated
@@ -27079,19 +27097,15 @@ class CfnLaunchTemplate(
27079
27097
  from aws_cdk import aws_ec2 as ec2
27080
27098
 
27081
27099
  maintenance_options_property = ec2.CfnLaunchTemplate.MaintenanceOptionsProperty(
27082
- auto_recovery="autoRecovery",
27083
- reboot_migration="rebootMigration"
27100
+ auto_recovery="autoRecovery"
27084
27101
  )
27085
27102
  '''
27086
27103
  if __debug__:
27087
27104
  type_hints = typing.get_type_hints(_typecheckingstub__62e0d77a7fa9500aab5a08e932dc82213f11e05b31cf56f4654431c48342979e)
27088
27105
  check_type(argname="argument auto_recovery", value=auto_recovery, expected_type=type_hints["auto_recovery"])
27089
- check_type(argname="argument reboot_migration", value=reboot_migration, expected_type=type_hints["reboot_migration"])
27090
27106
  self._values: typing.Dict[builtins.str, typing.Any] = {}
27091
27107
  if auto_recovery is not None:
27092
27108
  self._values["auto_recovery"] = auto_recovery
27093
- if reboot_migration is not None:
27094
- self._values["reboot_migration"] = reboot_migration
27095
27109
 
27096
27110
  @builtins.property
27097
27111
  def auto_recovery(self) -> typing.Optional[builtins.str]:
@@ -27102,14 +27116,6 @@ class CfnLaunchTemplate(
27102
27116
  result = self._values.get("auto_recovery")
27103
27117
  return typing.cast(typing.Optional[builtins.str], result)
27104
27118
 
27105
- @builtins.property
27106
- def reboot_migration(self) -> typing.Optional[builtins.str]:
27107
- '''
27108
- :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-maintenanceoptions.html#cfn-ec2-launchtemplate-maintenanceoptions-rebootmigration
27109
- '''
27110
- result = self._values.get("reboot_migration")
27111
- return typing.cast(typing.Optional[builtins.str], result)
27112
-
27113
27119
  def __eq__(self, rhs: typing.Any) -> builtins.bool:
27114
27120
  return isinstance(rhs, self.__class__) and rhs._values == self._values
27115
27121
 
@@ -40429,7 +40435,7 @@ class CfnSecurityGroup(
40429
40435
 
40430
40436
  To create a security group, use the `VpcId <https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-security-group.html#cfn-ec2-securitygroup-vpcid>`_ property to specify the VPC for which to create the security group.
40431
40437
 
40432
- If you do not specify an egress rule, we add egress rules that allow IPv4 and IPv6 traffic on all ports and protocols to any destination. We do not add these rules if you specify your own egress rules. If you later remove your egress rules, we restore the default egress rules.
40438
+ If you do not specify an egress rule, we add egress rules that allow IPv4 and IPv6 traffic on all ports and protocols to any destination. We do not add these rules if you specify your own egress rules.
40433
40439
 
40434
40440
  This type supports updates. For more information about updating stacks, see `AWS CloudFormation Stacks Updates <https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks.html>`_ .
40435
40441
  .. epigraph::
@@ -40461,7 +40467,6 @@ class CfnSecurityGroup(
40461
40467
  destination_prefix_list_id="destinationPrefixListId",
40462
40468
  destination_security_group_id="destinationSecurityGroupId",
40463
40469
  from_port=123,
40464
- source_security_group_id="sourceSecurityGroupId",
40465
40470
  to_port=123
40466
40471
  )],
40467
40472
  security_group_ingress=[ec2.CfnSecurityGroup.IngressProperty(
@@ -40692,7 +40697,6 @@ class CfnSecurityGroup(
40692
40697
  "destination_prefix_list_id": "destinationPrefixListId",
40693
40698
  "destination_security_group_id": "destinationSecurityGroupId",
40694
40699
  "from_port": "fromPort",
40695
- "source_security_group_id": "sourceSecurityGroupId",
40696
40700
  "to_port": "toPort",
40697
40701
  },
40698
40702
  )
@@ -40707,7 +40711,6 @@ class CfnSecurityGroup(
40707
40711
  destination_prefix_list_id: typing.Optional[builtins.str] = None,
40708
40712
  destination_security_group_id: typing.Optional[builtins.str] = None,
40709
40713
  from_port: typing.Optional[jsii.Number] = None,
40710
- source_security_group_id: typing.Optional[builtins.str] = None,
40711
40714
  to_port: typing.Optional[jsii.Number] = None,
40712
40715
  ) -> None:
40713
40716
  '''Adds the specified outbound (egress) rule to a security group.
@@ -40727,7 +40730,6 @@ class CfnSecurityGroup(
40727
40730
  :param destination_prefix_list_id: The prefix list IDs for the destination AWS service. This is the AWS service that you want to access through a VPC endpoint from instances associated with the security group. You must specify exactly one of the following: ``CidrIp`` , ``CidrIpv6`` , ``DestinationPrefixListId`` , or ``DestinationSecurityGroupId`` .
40728
40731
  :param destination_security_group_id: The ID of the destination VPC security group. You must specify exactly one of the following: ``CidrIp`` , ``CidrIpv6`` , ``DestinationPrefixListId`` , or ``DestinationSecurityGroupId`` .
40729
40732
  :param from_port: If the protocol is TCP or UDP, this is the start of the port range. If the protocol is ICMP or ICMPv6, this is the ICMP type or -1 (all ICMP types).
40730
- :param source_security_group_id:
40731
40733
  :param to_port: If the protocol is TCP or UDP, this is the end of the port range. If the protocol is ICMP or ICMPv6, this is the ICMP code or -1 (all ICMP codes). If the start port is -1 (all ICMP types), then the end port must be -1 (all ICMP codes).
40732
40734
 
40733
40735
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-securitygroup-egress.html
@@ -40749,7 +40751,6 @@ class CfnSecurityGroup(
40749
40751
  destination_prefix_list_id="destinationPrefixListId",
40750
40752
  destination_security_group_id="destinationSecurityGroupId",
40751
40753
  from_port=123,
40752
- source_security_group_id="sourceSecurityGroupId",
40753
40754
  to_port=123
40754
40755
  )
40755
40756
  '''
@@ -40762,7 +40763,6 @@ class CfnSecurityGroup(
40762
40763
  check_type(argname="argument destination_prefix_list_id", value=destination_prefix_list_id, expected_type=type_hints["destination_prefix_list_id"])
40763
40764
  check_type(argname="argument destination_security_group_id", value=destination_security_group_id, expected_type=type_hints["destination_security_group_id"])
40764
40765
  check_type(argname="argument from_port", value=from_port, expected_type=type_hints["from_port"])
40765
- check_type(argname="argument source_security_group_id", value=source_security_group_id, expected_type=type_hints["source_security_group_id"])
40766
40766
  check_type(argname="argument to_port", value=to_port, expected_type=type_hints["to_port"])
40767
40767
  self._values: typing.Dict[builtins.str, typing.Any] = {
40768
40768
  "ip_protocol": ip_protocol,
@@ -40779,8 +40779,6 @@ class CfnSecurityGroup(
40779
40779
  self._values["destination_security_group_id"] = destination_security_group_id
40780
40780
  if from_port is not None:
40781
40781
  self._values["from_port"] = from_port
40782
- if source_security_group_id is not None:
40783
- self._values["source_security_group_id"] = source_security_group_id
40784
40782
  if to_port is not None:
40785
40783
  self._values["to_port"] = to_port
40786
40784
 
@@ -40868,14 +40866,6 @@ class CfnSecurityGroup(
40868
40866
  result = self._values.get("from_port")
40869
40867
  return typing.cast(typing.Optional[jsii.Number], result)
40870
40868
 
40871
- @builtins.property
40872
- def source_security_group_id(self) -> typing.Optional[builtins.str]:
40873
- '''
40874
- :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-securitygroup-egress.html#cfn-ec2-securitygroup-egress-sourcesecuritygroupid
40875
- '''
40876
- result = self._values.get("source_security_group_id")
40877
- return typing.cast(typing.Optional[builtins.str], result)
40878
-
40879
40869
  @builtins.property
40880
40870
  def to_port(self) -> typing.Optional[jsii.Number]:
40881
40871
  '''If the protocol is TCP or UDP, this is the end of the port range.
@@ -42233,7 +42223,6 @@ class CfnSecurityGroupProps:
42233
42223
  destination_prefix_list_id="destinationPrefixListId",
42234
42224
  destination_security_group_id="destinationSecurityGroupId",
42235
42225
  from_port=123,
42236
- source_security_group_id="sourceSecurityGroupId",
42237
42226
  to_port=123
42238
42227
  )],
42239
42228
  security_group_ingress=[ec2.CfnSecurityGroup.IngressProperty(
@@ -42548,10 +42537,7 @@ class CfnSpotFleet(
42548
42537
 
42549
42538
  You can specify tags for the Spot Fleet request and instances launched by the fleet. You cannot tag other resource types in a Spot Fleet request because only the ``spot-fleet-request`` and ``instance`` resource types are supported.
42550
42539
 
42551
- For more information, see `Spot Fleet <https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/spot-fleet.html>`_ in the *Amazon EC2 User Guide for Linux Instances* .
42552
- .. epigraph::
42553
-
42554
- We strongly discourage using the RequestSpotFleet API because it is a legacy API with no planned investment. For options for requesting Spot Instances, see `Which is the best Spot request method to use? <https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/spot-best-practices.html#which-spot-request-method-to-use>`_ in the *Amazon EC2 User Guide for Linux Instances* .
42540
+ For more information, see `Spot Fleet <https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/spot-fleet.html>`_ in the *Amazon EC2 User Guide* .
42555
42541
 
42556
42542
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-spotfleet.html
42557
42543
  :cloudformationResource: AWS::EC2::SpotFleet
@@ -43842,7 +43828,7 @@ class CfnSpotFleet(
43842
43828
  :param network_interface_id: The ID of the network interface. If you are creating a Spot Fleet, omit this parameter because you can’t specify a network interface ID in a launch specification.
43843
43829
  :param private_ip_addresses: The private IPv4 addresses to assign to the network interface. Only one private IPv4 address can be designated as primary. You cannot specify this option if you're launching more than one instance in a `RunInstances <https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_RunInstances.html>`_ request.
43844
43830
  :param secondary_private_ip_address_count: The number of secondary private IPv4 addresses. You can't specify this option and specify more than one private IP address using the private IP addresses option. You cannot specify this option if you're launching more than one instance in a `RunInstances <https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_RunInstances.html>`_ request.
43845
- :param subnet_id: The ID of the subnet associated with the network interface. Applies only if creating a network interface when launching an instance.
43831
+ :param subnet_id: The ID of the subnet associated with the network interface.
43846
43832
 
43847
43833
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-instancenetworkinterfacespecification.html
43848
43834
  :exampleMetadata: fixture=_generated
@@ -44035,8 +44021,6 @@ class CfnSpotFleet(
44035
44021
  def subnet_id(self) -> typing.Optional[builtins.str]:
44036
44022
  '''The ID of the subnet associated with the network interface.
44037
44023
 
44038
- Applies only if creating a network interface when launching an instance.
44039
-
44040
44024
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-instancenetworkinterfacespecification.html#cfn-ec2-spotfleet-instancenetworkinterfacespecification-subnetid
44041
44025
  '''
44042
44026
  result = self._values.get("subnet_id")
@@ -45684,12 +45668,12 @@ class CfnSpotFleet(
45684
45668
  :param kernel_id: The ID of the kernel.
45685
45669
  :param key_name: The name of the key pair.
45686
45670
  :param monitoring: Enable or disable monitoring for the instances.
45687
- :param network_interfaces: One or more network interfaces. If you specify a network interface, you must specify subnet IDs and security group IDs using the network interface. .. epigraph:: ``SpotFleetLaunchSpecification`` currently does not support Elastic Fabric Adapter (EFA). To specify an EFA, you must use `LaunchTemplateConfig <https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_LaunchTemplateConfig.html>`_ .
45671
+ :param network_interfaces: The network interfaces.
45688
45672
  :param placement: The placement information.
45689
45673
  :param ramdisk_id: The ID of the RAM disk. Some kernels require additional drivers at launch. Check the kernel requirements for information about whether you need to specify a RAM disk. To find kernel requirements, refer to the AWS Resource Center and search for the kernel ID.
45690
- :param security_groups: The security groups.
45674
+ :param security_groups: The security groups. If you specify a network interface, you must specify any security groups as part of the network interface instead of using this parameter.
45691
45675
  :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.
45692
- :param subnet_id: The IDs of the subnets in which to launch the instances. To specify multiple subnets, separate them using commas; for example, "subnet-1234abcdeexample1, subnet-0987cdef6example2".
45676
+ :param subnet_id: The IDs of the subnets in which to launch the instances. To specify multiple subnets, separate them using commas; for example, "subnet-1234abcdeexample1, subnet-0987cdef6example2". If you specify a network interface, you must specify any subnets as part of the network interface instead of using this parameter.
45693
45677
  :param tag_specifications: The tags to apply during creation.
45694
45678
  :param user_data: The base64-encoded user data that instances use when starting up. User data is limited to 16 KB.
45695
45679
  :param weighted_capacity: The number of units provided by the specified instance type. These are the same units that you chose to set the target capacity in terms of instances, or a performance characteristic such as vCPUs, memory, or I/O. If the target capacity divided by this value is not a whole number, Amazon EC2 rounds the number of instances to the next whole number. If this value is not specified, the default is 1.
@@ -45994,12 +45978,7 @@ class CfnSpotFleet(
45994
45978
  def network_interfaces(
45995
45979
  self,
45996
45980
  ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, "CfnSpotFleet.InstanceNetworkInterfaceSpecificationProperty"]]]]:
45997
- '''One or more network interfaces.
45998
-
45999
- If you specify a network interface, you must specify subnet IDs and security group IDs using the network interface.
46000
- .. epigraph::
46001
-
46002
- ``SpotFleetLaunchSpecification`` currently does not support Elastic Fabric Adapter (EFA). To specify an EFA, you must use `LaunchTemplateConfig <https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_LaunchTemplateConfig.html>`_ .
45981
+ '''The network interfaces.
46003
45982
 
46004
45983
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-spotfleetlaunchspecification.html#cfn-ec2-spotfleet-spotfleetlaunchspecification-networkinterfaces
46005
45984
  '''
@@ -46034,6 +46013,8 @@ class CfnSpotFleet(
46034
46013
  ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, "CfnSpotFleet.GroupIdentifierProperty"]]]]:
46035
46014
  '''The security groups.
46036
46015
 
46016
+ If you specify a network interface, you must specify any security groups as part of the network interface instead of using this parameter.
46017
+
46037
46018
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-spotfleetlaunchspecification.html#cfn-ec2-spotfleet-spotfleetlaunchspecification-securitygroups
46038
46019
  '''
46039
46020
  result = self._values.get("security_groups")
@@ -46059,6 +46040,8 @@ class CfnSpotFleet(
46059
46040
 
46060
46041
  To specify multiple subnets, separate them using commas; for example, "subnet-1234abcdeexample1, subnet-0987cdef6example2".
46061
46042
 
46043
+ If you specify a network interface, you must specify any subnets as part of the network interface instead of using this parameter.
46044
+
46062
46045
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-spotfleetlaunchspecification.html#cfn-ec2-spotfleet-spotfleetlaunchspecification-subnetid
46063
46046
  '''
46064
46047
  result = self._values.get("subnet_id")
@@ -54312,14 +54295,6 @@ class CfnTransitGatewayRouteTableAssociation(
54312
54295
  '''The CloudFormation resource type name for this resource class.'''
54313
54296
  return typing.cast(builtins.str, jsii.sget(cls, "CFN_RESOURCE_TYPE_NAME"))
54314
54297
 
54315
- @builtins.property
54316
- @jsii.member(jsii_name="attrId")
54317
- def attr_id(self) -> builtins.str:
54318
- '''
54319
- :cloudformationAttribute: Id
54320
- '''
54321
- return typing.cast(builtins.str, jsii.get(self, "attrId"))
54322
-
54323
54298
  @builtins.property
54324
54299
  @jsii.member(jsii_name="cfnProperties")
54325
54300
  def _cfn_properties(self) -> typing.Mapping[builtins.str, typing.Any]:
@@ -78891,7 +78866,7 @@ class NatInstanceProps:
78891
78866
  :param key_name: (deprecated) Name of SSH keypair to grant access to instance. Default: - No SSH access will be possible.
78892
78867
  :param key_pair: The SSH keypair to grant access to the instance. Default: - No SSH access will be possible.
78893
78868
  :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
78894
- :param security_group: Security Group for NAT instances. Default: - A new security group will be created
78869
+ :param security_group: (deprecated) Security Group for NAT instances. Default: - A new security group will be created
78895
78870
  :param user_data: Custom user data to run on the NAT instances. Default: UserData.forLinux().addCommands(...NatInstanceProviderV2.DEFAULT_USER_DATA_COMMANDS); - Appropriate user data commands to initialize and configure the NAT instances
78896
78871
 
78897
78872
  :exampleMetadata: infused
@@ -78908,7 +78883,7 @@ class NatInstanceProps:
78908
78883
  ec2.Vpc(self, "TheVPC",
78909
78884
  nat_gateway_provider=provider
78910
78885
  )
78911
- provider.connections.allow_from(ec2.Peer.ipv4("1.2.3.4/8"), ec2.Port.tcp(80))
78886
+ provider.connections.allow_from(ec2.Peer.ipv4("1.2.3.4/8"), ec2.Port.HTTP)
78912
78887
  '''
78913
78888
  if __debug__:
78914
78889
  type_hints = typing.get_type_hints(_typecheckingstub__d7c7c717447859e1ccc181bc97f7752cc3f7fa7afaee4c3a4266eeac32c08643)
@@ -79017,9 +78992,35 @@ class NatInstanceProps:
79017
78992
 
79018
78993
  @builtins.property
79019
78994
  def security_group(self) -> typing.Optional[ISecurityGroup]:
79020
- '''Security Group for NAT instances.
78995
+ '''(deprecated) Security Group for NAT instances.
79021
78996
 
79022
78997
  :default: - A new security group will be created
78998
+
78999
+ :deprecated:
79000
+
79001
+ - Cannot create a new security group before the VPC is created,
79002
+ and cannot create the VPC without the NAT provider.
79003
+ Set {@link defaultAllowedTraffic } to {@link NatTrafficDirection.NONE }
79004
+ and use {@link NatInstanceProviderV2.gatewayInstances } to retrieve
79005
+ the instances on the fly and add security groups
79006
+
79007
+ :stability: deprecated
79008
+
79009
+ Example::
79010
+
79011
+ nat_gateway_provider = ec2.NatProvider.instance_v2(
79012
+ instance_type=ec2.InstanceType("t3.small"),
79013
+ default_allowed_traffic=ec2.NatTrafficDirection.NONE
79014
+ )
79015
+ vpc = ec2.Vpc(self, "Vpc", nat_gateway_provider=nat_gateway_provider)
79016
+
79017
+ security_group = ec2.SecurityGroup(self, "SecurityGroup",
79018
+ vpc=vpc,
79019
+ allow_all_outbound=False
79020
+ )
79021
+ security_group.add_egress_rule(ec2.Peer.any_ipv4(), ec2.Port.tcp(443))
79022
+ for gateway_instance in nat_gateway_provider.gateway_instances:
79023
+ gateway_instance.add_security_group(security_group)
79023
79024
  '''
79024
79025
  result = self._values.get("security_group")
79025
79026
  return typing.cast(typing.Optional[ISecurityGroup], result)
@@ -79070,7 +79071,7 @@ class NatProvider(
79070
79071
  ec2.Vpc(self, "TheVPC",
79071
79072
  nat_gateway_provider=provider
79072
79073
  )
79073
- provider.connections.allow_from(ec2.Peer.ipv4("1.2.3.4/8"), ec2.Port.tcp(80))
79074
+ provider.connections.allow_from(ec2.Peer.ipv4("1.2.3.4/8"), ec2.Port.HTTP)
79074
79075
  '''
79075
79076
 
79076
79077
  def __init__(self) -> None:
@@ -79123,7 +79124,7 @@ class NatProvider(
79123
79124
  :param key_name: (deprecated) Name of SSH keypair to grant access to instance. Default: - No SSH access will be possible.
79124
79125
  :param key_pair: The SSH keypair to grant access to the instance. Default: - No SSH access will be possible.
79125
79126
  :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
79126
- :param security_group: Security Group for NAT instances. Default: - A new security group will be created
79127
+ :param security_group: (deprecated) Security Group for NAT instances. Default: - A new security group will be created
79127
79128
  :param user_data: Custom user data to run on the NAT instances. Default: UserData.forLinux().addCommands(...NatInstanceProviderV2.DEFAULT_USER_DATA_COMMANDS); - Appropriate user data commands to initialize and configure the NAT instances
79128
79129
 
79129
79130
  :deprecated:
@@ -79175,7 +79176,7 @@ class NatProvider(
79175
79176
  :param key_name: (deprecated) Name of SSH keypair to grant access to instance. Default: - No SSH access will be possible.
79176
79177
  :param key_pair: The SSH keypair to grant access to the instance. Default: - No SSH access will be possible.
79177
79178
  :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
79178
- :param security_group: Security Group for NAT instances. Default: - A new security group will be created
79179
+ :param security_group: (deprecated) Security Group for NAT instances. Default: - A new security group will be created
79179
79180
  :param user_data: Custom user data to run on the NAT instances. Default: UserData.forLinux().addCommands(...NatInstanceProviderV2.DEFAULT_USER_DATA_COMMANDS); - Appropriate user data commands to initialize and configure the NAT instances
79180
79181
 
79181
79182
  :see: https://docs.aws.amazon.com/vpc/latest/userguide/VPC_NAT_Instance.html
@@ -79285,17 +79286,19 @@ class NatTrafficDirection(enum.Enum):
79285
79286
 
79286
79287
  Example::
79287
79288
 
79288
- # instance_type: ec2.InstanceType
79289
-
79290
-
79291
- provider = ec2.NatProvider.instance_v2(
79292
- instance_type=instance_type,
79293
- default_allowed_traffic=ec2.NatTrafficDirection.OUTBOUND_ONLY
79289
+ nat_gateway_provider = ec2.NatProvider.instance_v2(
79290
+ instance_type=ec2.InstanceType("t3.small"),
79291
+ default_allowed_traffic=ec2.NatTrafficDirection.NONE
79294
79292
  )
79295
- ec2.Vpc(self, "TheVPC",
79296
- nat_gateway_provider=provider
79293
+ vpc = ec2.Vpc(self, "Vpc", nat_gateway_provider=nat_gateway_provider)
79294
+
79295
+ security_group = ec2.SecurityGroup(self, "SecurityGroup",
79296
+ vpc=vpc,
79297
+ allow_all_outbound=False
79297
79298
  )
79298
- provider.connections.allow_from(ec2.Peer.ipv4("1.2.3.4/8"), ec2.Port.tcp(80))
79299
+ security_group.add_egress_rule(ec2.Peer.any_ipv4(), ec2.Port.tcp(443))
79300
+ for gateway_instance in nat_gateway_provider.gateway_instances:
79301
+ gateway_instance.add_security_group(security_group)
79299
79302
  '''
79300
79303
 
79301
79304
  OUTBOUND_ONLY = "OUTBOUND_ONLY"
@@ -79902,17 +79905,20 @@ class Peer(metaclass=jsii.JSIIMeta, jsii_type="aws-cdk-lib.aws_ec2.Peer"):
79902
79905
 
79903
79906
  Example::
79904
79907
 
79905
- # instance_type: ec2.InstanceType
79906
-
79908
+ # vpc: ec2.Vpc
79907
79909
 
79908
- provider = ec2.NatProvider.instance_v2(
79909
- instance_type=instance_type,
79910
- default_allowed_traffic=ec2.NatTrafficDirection.OUTBOUND_ONLY
79911
- )
79912
- ec2.Vpc(self, "TheVPC",
79913
- nat_gateway_provider=provider
79910
+ cluster = msk.Cluster(self, "Cluster",
79911
+ cluster_name="myCluster",
79912
+ kafka_version=msk.KafkaVersion.V2_8_1,
79913
+ vpc=vpc
79914
79914
  )
79915
- provider.connections.allow_from(ec2.Peer.ipv4("1.2.3.4/8"), ec2.Port.tcp(80))
79915
+
79916
+ cluster.connections.allow_from(
79917
+ ec2.Peer.ipv4("1.2.3.4/8"),
79918
+ ec2.Port.tcp(2181))
79919
+ cluster.connections.allow_from(
79920
+ ec2.Peer.ipv4("1.2.3.4/8"),
79921
+ ec2.Port.tcp(9094))
79916
79922
  '''
79917
79923
 
79918
79924
  def __init__(self) -> None:
@@ -80284,7 +80290,7 @@ class Port(metaclass=jsii.JSIIMeta, jsii_type="aws-cdk-lib.aws_ec2.Port"):
80284
80290
  ec2.Vpc(self, "TheVPC",
80285
80291
  nat_gateway_provider=provider
80286
80292
  )
80287
- provider.connections.allow_from(ec2.Peer.ipv4("1.2.3.4/8"), ec2.Port.tcp(80))
80293
+ provider.connections.allow_from(ec2.Peer.ipv4("1.2.3.4/8"), ec2.Port.HTTP)
80288
80294
  '''
80289
80295
 
80290
80296
  def __init__(
@@ -80447,6 +80453,108 @@ class Port(metaclass=jsii.JSIIMeta, jsii_type="aws-cdk-lib.aws_ec2.Port"):
80447
80453
  def to_string(self) -> builtins.str:
80448
80454
  return typing.cast(builtins.str, jsii.invoke(self, "toString", []))
80449
80455
 
80456
+ @jsii.python.classproperty
80457
+ @jsii.member(jsii_name="DNS_TCP")
80458
+ def DNS_TCP(cls) -> "Port":
80459
+ '''Well-known DNS port (TCP 53).'''
80460
+ return typing.cast("Port", jsii.sget(cls, "DNS_TCP"))
80461
+
80462
+ @jsii.python.classproperty
80463
+ @jsii.member(jsii_name="DNS_UDP")
80464
+ def DNS_UDP(cls) -> "Port":
80465
+ '''Well-known DNS port (UDP 53).'''
80466
+ return typing.cast("Port", jsii.sget(cls, "DNS_UDP"))
80467
+
80468
+ @jsii.python.classproperty
80469
+ @jsii.member(jsii_name="HTTP")
80470
+ def HTTP(cls) -> "Port":
80471
+ '''Well-known HTTP port (TCP 80).'''
80472
+ return typing.cast("Port", jsii.sget(cls, "HTTP"))
80473
+
80474
+ @jsii.python.classproperty
80475
+ @jsii.member(jsii_name="HTTPS")
80476
+ def HTTPS(cls) -> "Port":
80477
+ '''Well-known HTTPS port (TCP 443).'''
80478
+ return typing.cast("Port", jsii.sget(cls, "HTTPS"))
80479
+
80480
+ @jsii.python.classproperty
80481
+ @jsii.member(jsii_name="IMAP")
80482
+ def IMAP(cls) -> "Port":
80483
+ '''Well-known IMAP port (TCP 143).'''
80484
+ return typing.cast("Port", jsii.sget(cls, "IMAP"))
80485
+
80486
+ @jsii.python.classproperty
80487
+ @jsii.member(jsii_name="IMAPS")
80488
+ def IMAPS(cls) -> "Port":
80489
+ '''Well-known IMAPS port (TCP 993).'''
80490
+ return typing.cast("Port", jsii.sget(cls, "IMAPS"))
80491
+
80492
+ @jsii.python.classproperty
80493
+ @jsii.member(jsii_name="LDAP")
80494
+ def LDAP(cls) -> "Port":
80495
+ '''Well-known LDAP port (TCP 389).'''
80496
+ return typing.cast("Port", jsii.sget(cls, "LDAP"))
80497
+
80498
+ @jsii.python.classproperty
80499
+ @jsii.member(jsii_name="MSSQL")
80500
+ def MSSQL(cls) -> "Port":
80501
+ '''Well-known Microsoft SQL Server port (TCP 1433).'''
80502
+ return typing.cast("Port", jsii.sget(cls, "MSSQL"))
80503
+
80504
+ @jsii.python.classproperty
80505
+ @jsii.member(jsii_name="MYSQL_AURORA")
80506
+ def MYSQL_AURORA(cls) -> "Port":
80507
+ '''Well-known MySQL and Aurora port (TCP 3306).'''
80508
+ return typing.cast("Port", jsii.sget(cls, "MYSQL_AURORA"))
80509
+
80510
+ @jsii.python.classproperty
80511
+ @jsii.member(jsii_name="NFS")
80512
+ def NFS(cls) -> "Port":
80513
+ '''Well-known NFS port (TCP 2049).'''
80514
+ return typing.cast("Port", jsii.sget(cls, "NFS"))
80515
+
80516
+ @jsii.python.classproperty
80517
+ @jsii.member(jsii_name="POP3")
80518
+ def POP3(cls) -> "Port":
80519
+ '''Well-known POP3 port (TCP 110).'''
80520
+ return typing.cast("Port", jsii.sget(cls, "POP3"))
80521
+
80522
+ @jsii.python.classproperty
80523
+ @jsii.member(jsii_name="POP3S")
80524
+ def POP3_S(cls) -> "Port":
80525
+ '''Well-known POP3S port (TCP 995).'''
80526
+ return typing.cast("Port", jsii.sget(cls, "POP3S"))
80527
+
80528
+ @jsii.python.classproperty
80529
+ @jsii.member(jsii_name="POSTGRES")
80530
+ def POSTGRES(cls) -> "Port":
80531
+ '''Well-known PostgreSQL port (TCP 5432).'''
80532
+ return typing.cast("Port", jsii.sget(cls, "POSTGRES"))
80533
+
80534
+ @jsii.python.classproperty
80535
+ @jsii.member(jsii_name="RDP")
80536
+ def RDP(cls) -> "Port":
80537
+ '''Well-known Microsoft Remote Desktop Protocol port (TCP 3389).'''
80538
+ return typing.cast("Port", jsii.sget(cls, "RDP"))
80539
+
80540
+ @jsii.python.classproperty
80541
+ @jsii.member(jsii_name="SMB")
80542
+ def SMB(cls) -> "Port":
80543
+ '''Well-known SMB port (TCP 445).'''
80544
+ return typing.cast("Port", jsii.sget(cls, "SMB"))
80545
+
80546
+ @jsii.python.classproperty
80547
+ @jsii.member(jsii_name="SMTP")
80548
+ def SMTP(cls) -> "Port":
80549
+ '''Well-known SMTP port (TCP 25).'''
80550
+ return typing.cast("Port", jsii.sget(cls, "SMTP"))
80551
+
80552
+ @jsii.python.classproperty
80553
+ @jsii.member(jsii_name="SSH")
80554
+ def SSH(cls) -> "Port":
80555
+ '''Well-known SSH port (TCP 22).'''
80556
+ return typing.cast("Port", jsii.sget(cls, "SSH"))
80557
+
80450
80558
  @builtins.property
80451
80559
  @jsii.member(jsii_name="canInlineRule")
80452
80560
  def can_inline_rule(self) -> builtins.bool:
@@ -81499,18 +81607,20 @@ class SecurityGroup(
81499
81607
  mutable=False
81500
81608
  )
81501
81609
 
81502
- :exampleMetadata: fixture=with-vpc infused
81610
+ :exampleMetadata: infused
81503
81611
 
81504
81612
  Example::
81505
81613
 
81506
- my_security_group_without_inline_rules = ec2.SecurityGroup(self, "SecurityGroup",
81614
+ # vpc: ec2.Vpc
81615
+
81616
+
81617
+ my_security_group = ec2.SecurityGroup(self, "SecurityGroup", vpc=vpc)
81618
+ autoscaling.AutoScalingGroup(self, "ASG",
81507
81619
  vpc=vpc,
81508
- description="Allow ssh access to ec2 instances",
81509
- allow_all_outbound=True,
81510
- disable_inline_rules=True
81620
+ instance_type=ec2.InstanceType.of(ec2.InstanceClass.BURSTABLE2, ec2.InstanceSize.MICRO),
81621
+ machine_image=ec2.MachineImage.latest_amazon_linux2(),
81622
+ security_group=my_security_group
81511
81623
  )
81512
- # This will add the rule as an external cloud formation construct
81513
- my_security_group_without_inline_rules.add_ingress_rule(ec2.Peer.any_ipv4(), ec2.Port.tcp(22), "allow ssh access from the world")
81514
81624
  '''
81515
81625
 
81516
81626
  def __init__(
@@ -81970,15 +82080,13 @@ class SecurityGroupProps:
81970
82080
  # vpc: ec2.Vpc
81971
82081
 
81972
82082
 
81973
- security_group1 = ec2.SecurityGroup(self, "SecurityGroup1", vpc=vpc)
81974
- lb = elbv2.ApplicationLoadBalancer(self, "LB",
82083
+ my_security_group = ec2.SecurityGroup(self, "SecurityGroup", vpc=vpc)
82084
+ autoscaling.AutoScalingGroup(self, "ASG",
81975
82085
  vpc=vpc,
81976
- internet_facing=True,
81977
- security_group=security_group1
82086
+ instance_type=ec2.InstanceType.of(ec2.InstanceClass.BURSTABLE2, ec2.InstanceSize.MICRO),
82087
+ machine_image=ec2.MachineImage.latest_amazon_linux2(),
82088
+ security_group=my_security_group
81978
82089
  )
81979
-
81980
- security_group2 = ec2.SecurityGroup(self, "SecurityGroup2", vpc=vpc)
81981
- lb.add_security_group(security_group2)
81982
82090
  '''
81983
82091
  if __debug__:
81984
82092
  type_hints = typing.get_type_hints(_typecheckingstub__4e55e0c52b51f92e83b1f8d6b7a5b22268d0369a14dab808b8f2f5f233e5b622)
@@ -91384,7 +91492,7 @@ class NatInstanceProvider(
91384
91492
  :param key_name: (deprecated) Name of SSH keypair to grant access to instance. Default: - No SSH access will be possible.
91385
91493
  :param key_pair: The SSH keypair to grant access to the instance. Default: - No SSH access will be possible.
91386
91494
  :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
91387
- :param security_group: Security Group for NAT instances. Default: - A new security group will be created
91495
+ :param security_group: (deprecated) Security Group for NAT instances. Default: - A new security group will be created
91388
91496
  :param user_data: Custom user data to run on the NAT instances. Default: UserData.forLinux().addCommands(...NatInstanceProviderV2.DEFAULT_USER_DATA_COMMANDS); - Appropriate user data commands to initialize and configure the NAT instances
91389
91497
 
91390
91498
  :stability: deprecated
@@ -91483,17 +91591,19 @@ class NatInstanceProviderV2(
91483
91591
 
91484
91592
  Example::
91485
91593
 
91486
- # instance_type: ec2.InstanceType
91487
-
91488
-
91489
- provider = ec2.NatProvider.instance_v2(
91490
- instance_type=instance_type,
91491
- default_allowed_traffic=ec2.NatTrafficDirection.OUTBOUND_ONLY
91594
+ nat_gateway_provider = ec2.NatProvider.instance_v2(
91595
+ instance_type=ec2.InstanceType("t3.small"),
91596
+ default_allowed_traffic=ec2.NatTrafficDirection.NONE
91492
91597
  )
91493
- ec2.Vpc(self, "TheVPC",
91494
- nat_gateway_provider=provider
91598
+ vpc = ec2.Vpc(self, "Vpc", nat_gateway_provider=nat_gateway_provider)
91599
+
91600
+ security_group = ec2.SecurityGroup(self, "SecurityGroup",
91601
+ vpc=vpc,
91602
+ allow_all_outbound=False
91495
91603
  )
91496
- provider.connections.allow_from(ec2.Peer.ipv4("1.2.3.4/8"), ec2.Port.tcp(80))
91604
+ security_group.add_egress_rule(ec2.Peer.any_ipv4(), ec2.Port.tcp(443))
91605
+ for gateway_instance in nat_gateway_provider.gateway_instances:
91606
+ gateway_instance.add_security_group(security_group)
91497
91607
  '''
91498
91608
 
91499
91609
  def __init__(
@@ -91515,7 +91625,7 @@ class NatInstanceProviderV2(
91515
91625
  :param key_name: (deprecated) Name of SSH keypair to grant access to instance. Default: - No SSH access will be possible.
91516
91626
  :param key_pair: The SSH keypair to grant access to the instance. Default: - No SSH access will be possible.
91517
91627
  :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
91518
- :param security_group: Security Group for NAT instances. Default: - A new security group will be created
91628
+ :param security_group: (deprecated) Security Group for NAT instances. Default: - A new security group will be created
91519
91629
  :param user_data: Custom user data to run on the NAT instances. Default: UserData.forLinux().addCommands(...NatInstanceProviderV2.DEFAULT_USER_DATA_COMMANDS); - Appropriate user data commands to initialize and configure the NAT instances
91520
91630
  '''
91521
91631
  props = NatInstanceProps(
@@ -94788,6 +94898,7 @@ def _typecheckingstub__16b41182e007e05b84fd0c97afc1e26001e78a56de2eb5b10c9f809de
94788
94898
  bgp_asn: jsii.Number,
94789
94899
  ip_address: builtins.str,
94790
94900
  type: builtins.str,
94901
+ certificate_arn: typing.Optional[builtins.str] = None,
94791
94902
  device_name: typing.Optional[builtins.str] = None,
94792
94903
  tags: typing.Optional[typing.Sequence[typing.Union[_CfnTag_f6864754, typing.Dict[builtins.str, typing.Any]]]] = None,
94793
94904
  ) -> None:
@@ -94824,6 +94935,12 @@ def _typecheckingstub__ae973d5ca9904c069d03cbf10a1e3fdf7736cc00ca43663eb07598f97
94824
94935
  """Type checking stubs"""
94825
94936
  pass
94826
94937
 
94938
+ def _typecheckingstub__4a4b900e840c5be3a2b16a5177f91335cf813daeca359e549a639cb05a03ac63(
94939
+ value: typing.Optional[builtins.str],
94940
+ ) -> None:
94941
+ """Type checking stubs"""
94942
+ pass
94943
+
94827
94944
  def _typecheckingstub__71d74664cf79e34328f5f6958fdd674c45b2780c9910dd252b7c5e9caba963f0(
94828
94945
  value: typing.Optional[builtins.str],
94829
94946
  ) -> None:
@@ -94841,6 +94958,7 @@ def _typecheckingstub__b0ef9a2e3e2b6937b21db500a1cd795126e924d9b920931a413ecdb66
94841
94958
  bgp_asn: jsii.Number,
94842
94959
  ip_address: builtins.str,
94843
94960
  type: builtins.str,
94961
+ certificate_arn: typing.Optional[builtins.str] = None,
94844
94962
  device_name: typing.Optional[builtins.str] = None,
94845
94963
  tags: typing.Optional[typing.Sequence[typing.Union[_CfnTag_f6864754, typing.Dict[builtins.str, typing.Any]]]] = None,
94846
94964
  ) -> None:
@@ -97210,7 +97328,6 @@ def _typecheckingstub__da6f057643821e4198778db605300559763cd1d337144d841e7dd3934
97210
97328
  def _typecheckingstub__62e0d77a7fa9500aab5a08e932dc82213f11e05b31cf56f4654431c48342979e(
97211
97329
  *,
97212
97330
  auto_recovery: typing.Optional[builtins.str] = None,
97213
- reboot_migration: typing.Optional[builtins.str] = None,
97214
97331
  ) -> None:
97215
97332
  """Type checking stubs"""
97216
97333
  pass
@@ -99120,7 +99237,6 @@ def _typecheckingstub__f7f9c3e8bd9fe395c2fb15fd9d38e6ef1ebca888c954597574840d202
99120
99237
  destination_prefix_list_id: typing.Optional[builtins.str] = None,
99121
99238
  destination_security_group_id: typing.Optional[builtins.str] = None,
99122
99239
  from_port: typing.Optional[jsii.Number] = None,
99123
- source_security_group_id: typing.Optional[builtins.str] = None,
99124
99240
  to_port: typing.Optional[jsii.Number] = None,
99125
99241
  ) -> None:
99126
99242
  """Type checking stubs"""