aws-cdk-lib 2.137.0__py3-none-any.whl → 2.139.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 (73) 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.139.0.jsii.tgz} +0 -0
  4. aws_cdk/aws_amplify/__init__.py +29 -113
  5. aws_cdk/aws_apigateway/__init__.py +29 -16
  6. aws_cdk/aws_appconfig/__init__.py +315 -77
  7. aws_cdk/aws_appintegrations/__init__.py +55 -6
  8. aws_cdk/aws_apprunner/__init__.py +5 -2
  9. aws_cdk/aws_appsync/__init__.py +400 -13
  10. aws_cdk/aws_aps/__init__.py +64 -47
  11. aws_cdk/aws_autoscaling/__init__.py +62 -60
  12. aws_cdk/aws_b2bi/__init__.py +2 -6
  13. aws_cdk/aws_backup/__init__.py +53 -57
  14. aws_cdk/aws_batch/__init__.py +109 -0
  15. aws_cdk/aws_bcmdataexports/__init__.py +1114 -0
  16. aws_cdk/aws_bedrock/__init__.py +4144 -0
  17. aws_cdk/aws_chatbot/__init__.py +6 -4
  18. aws_cdk/aws_cleanrooms/__init__.py +526 -3
  19. aws_cdk/aws_cleanroomsml/__init__.py +960 -0
  20. aws_cdk/aws_cloudtrail/__init__.py +10 -10
  21. aws_cdk/aws_cloudwatch/__init__.py +244 -8
  22. aws_cdk/aws_codebuild/__init__.py +27 -22
  23. aws_cdk/aws_codeconnections/__init__.py +435 -0
  24. aws_cdk/aws_cognito/__init__.py +175 -79
  25. aws_cdk/aws_datazone/__init__.py +22 -0
  26. aws_cdk/aws_deadline/__init__.py +5394 -0
  27. aws_cdk/aws_dms/__init__.py +2 -4
  28. aws_cdk/aws_ec2/__init__.py +402 -247
  29. aws_cdk/aws_ecr/__init__.py +630 -0
  30. aws_cdk/aws_ecs/__init__.py +361 -20
  31. aws_cdk/aws_efs/__init__.py +594 -2
  32. aws_cdk/aws_elasticache/__init__.py +86 -32
  33. aws_cdk/aws_elasticloadbalancingv2/__init__.py +75 -10
  34. aws_cdk/aws_emr/__init__.py +2 -2
  35. aws_cdk/aws_entityresolution/__init__.py +1982 -773
  36. aws_cdk/aws_events_targets/__init__.py +17 -4
  37. aws_cdk/aws_globalaccelerator/__init__.py +443 -0
  38. aws_cdk/aws_iam/__init__.py +1 -2
  39. aws_cdk/aws_internetmonitor/__init__.py +14 -6
  40. aws_cdk/aws_ivs/__init__.py +1273 -71
  41. aws_cdk/aws_kms/__init__.py +44 -0
  42. aws_cdk/aws_lambda/__init__.py +9 -0
  43. aws_cdk/aws_mediatailor/__init__.py +41 -0
  44. aws_cdk/aws_oam/__init__.py +204 -0
  45. aws_cdk/aws_personalize/__init__.py +8 -6
  46. aws_cdk/aws_pinpoint/__init__.py +5 -3
  47. aws_cdk/aws_pipes/__init__.py +5 -1
  48. aws_cdk/aws_quicksight/__init__.py +12 -6
  49. aws_cdk/aws_rds/__init__.py +370 -96
  50. aws_cdk/aws_redshiftserverless/__init__.py +157 -0
  51. aws_cdk/aws_route53/__init__.py +587 -14
  52. aws_cdk/aws_sagemaker/__init__.py +233 -2
  53. aws_cdk/aws_securityhub/__init__.py +4940 -102
  54. aws_cdk/aws_securitylake/__init__.py +1326 -89
  55. aws_cdk/aws_ses_actions/__init__.py +155 -0
  56. aws_cdk/aws_sns/__init__.py +61 -4
  57. aws_cdk/aws_ssm/__init__.py +5 -2
  58. aws_cdk/aws_ssmcontacts/__init__.py +11 -4
  59. aws_cdk/aws_stepfunctions/__init__.py +8 -16
  60. aws_cdk/aws_stepfunctions_tasks/__init__.py +676 -1
  61. aws_cdk/aws_timestream/__init__.py +1045 -0
  62. aws_cdk/aws_transfer/__init__.py +19 -10
  63. aws_cdk/aws_verifiedpermissions/__init__.py +114 -37
  64. aws_cdk/aws_wisdom/__init__.py +2 -2
  65. aws_cdk/aws_workspacesthinclient/__init__.py +8 -8
  66. aws_cdk/custom_resources/__init__.py +688 -26
  67. aws_cdk/cx_api/__init__.py +17 -0
  68. {aws_cdk_lib-2.137.0.dist-info → aws_cdk_lib-2.139.0.dist-info}/METADATA +3 -3
  69. {aws_cdk_lib-2.137.0.dist-info → aws_cdk_lib-2.139.0.dist-info}/RECORD +73 -69
  70. {aws_cdk_lib-2.137.0.dist-info → aws_cdk_lib-2.139.0.dist-info}/LICENSE +0 -0
  71. {aws_cdk_lib-2.137.0.dist-info → aws_cdk_lib-2.139.0.dist-info}/NOTICE +0 -0
  72. {aws_cdk_lib-2.137.0.dist-info → aws_cdk_lib-2.139.0.dist-info}/WHEEL +0 -0
  73. {aws_cdk_lib-2.137.0.dist-info → aws_cdk_lib-2.139.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
@@ -9343,11 +9349,13 @@ class CfnCustomerGateway(
9343
9349
  from aws_cdk import aws_ec2 as ec2
9344
9350
 
9345
9351
  cfn_customer_gateway = ec2.CfnCustomerGateway(self, "MyCfnCustomerGateway",
9346
- bgp_asn=123,
9347
9352
  ip_address="ipAddress",
9348
9353
  type="type",
9349
9354
 
9350
9355
  # the properties below are optional
9356
+ bgp_asn=123,
9357
+ bgp_asn_extended=123,
9358
+ certificate_arn="certificateArn",
9351
9359
  device_name="deviceName",
9352
9360
  tags=[CfnTag(
9353
9361
  key="key",
@@ -9361,18 +9369,22 @@ class CfnCustomerGateway(
9361
9369
  scope: _constructs_77d1e7e8.Construct,
9362
9370
  id: builtins.str,
9363
9371
  *,
9364
- bgp_asn: jsii.Number,
9365
9372
  ip_address: builtins.str,
9366
9373
  type: builtins.str,
9374
+ bgp_asn: typing.Optional[jsii.Number] = None,
9375
+ bgp_asn_extended: typing.Optional[jsii.Number] = None,
9376
+ certificate_arn: typing.Optional[builtins.str] = None,
9367
9377
  device_name: typing.Optional[builtins.str] = None,
9368
9378
  tags: typing.Optional[typing.Sequence[typing.Union[_CfnTag_f6864754, typing.Dict[builtins.str, typing.Any]]]] = None,
9369
9379
  ) -> None:
9370
9380
  '''
9371
9381
  :param scope: Scope in which this resource is defined.
9372
9382
  :param id: Construct identifier for this resource (unique in its scope).
9373
- :param bgp_asn: For devices that support BGP, the customer gateway's BGP ASN. Default: 65000 Default: - 65000
9374
9383
  :param ip_address: IPv4 address for the customer gateway device's outside interface. The address must be static.
9375
9384
  :param type: The type of VPN connection that this customer gateway supports ( ``ipsec.1`` ).
9385
+ :param bgp_asn: For devices that support BGP, the customer gateway's BGP ASN. Default: 65000 Default: - 65000
9386
+ :param bgp_asn_extended:
9387
+ :param certificate_arn: The Amazon Resource Name (ARN) for the customer gateway certificate.
9376
9388
  :param device_name: The name of customer gateway device.
9377
9389
  :param tags: One or more tags for the customer gateway.
9378
9390
  '''
@@ -9381,9 +9393,11 @@ class CfnCustomerGateway(
9381
9393
  check_type(argname="argument scope", value=scope, expected_type=type_hints["scope"])
9382
9394
  check_type(argname="argument id", value=id, expected_type=type_hints["id"])
9383
9395
  props = CfnCustomerGatewayProps(
9384
- bgp_asn=bgp_asn,
9385
9396
  ip_address=ip_address,
9386
9397
  type=type,
9398
+ bgp_asn=bgp_asn,
9399
+ bgp_asn_extended=bgp_asn_extended,
9400
+ certificate_arn=certificate_arn,
9387
9401
  device_name=device_name,
9388
9402
  tags=tags,
9389
9403
  )
@@ -9440,19 +9454,6 @@ class CfnCustomerGateway(
9440
9454
  '''Tag Manager which manages the tags for this resource.'''
9441
9455
  return typing.cast(_TagManager_0a598cb3, jsii.get(self, "tags"))
9442
9456
 
9443
- @builtins.property
9444
- @jsii.member(jsii_name="bgpAsn")
9445
- def bgp_asn(self) -> jsii.Number:
9446
- '''For devices that support BGP, the customer gateway's BGP ASN.'''
9447
- return typing.cast(jsii.Number, jsii.get(self, "bgpAsn"))
9448
-
9449
- @bgp_asn.setter
9450
- def bgp_asn(self, value: jsii.Number) -> None:
9451
- if __debug__:
9452
- type_hints = typing.get_type_hints(_typecheckingstub__84dfb7d1775bd2bb124f990570c9a2ef23fafd01744cfe248fcb360562f57ca9)
9453
- check_type(argname="argument value", value=value, expected_type=type_hints["value"])
9454
- jsii.set(self, "bgpAsn", value)
9455
-
9456
9457
  @builtins.property
9457
9458
  @jsii.member(jsii_name="ipAddress")
9458
9459
  def ip_address(self) -> builtins.str:
@@ -9479,6 +9480,44 @@ class CfnCustomerGateway(
9479
9480
  check_type(argname="argument value", value=value, expected_type=type_hints["value"])
9480
9481
  jsii.set(self, "type", value)
9481
9482
 
9483
+ @builtins.property
9484
+ @jsii.member(jsii_name="bgpAsn")
9485
+ def bgp_asn(self) -> typing.Optional[jsii.Number]:
9486
+ '''For devices that support BGP, the customer gateway's BGP ASN.'''
9487
+ return typing.cast(typing.Optional[jsii.Number], jsii.get(self, "bgpAsn"))
9488
+
9489
+ @bgp_asn.setter
9490
+ def bgp_asn(self, value: typing.Optional[jsii.Number]) -> None:
9491
+ if __debug__:
9492
+ type_hints = typing.get_type_hints(_typecheckingstub__84dfb7d1775bd2bb124f990570c9a2ef23fafd01744cfe248fcb360562f57ca9)
9493
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
9494
+ jsii.set(self, "bgpAsn", value)
9495
+
9496
+ @builtins.property
9497
+ @jsii.member(jsii_name="bgpAsnExtended")
9498
+ def bgp_asn_extended(self) -> typing.Optional[jsii.Number]:
9499
+ return typing.cast(typing.Optional[jsii.Number], jsii.get(self, "bgpAsnExtended"))
9500
+
9501
+ @bgp_asn_extended.setter
9502
+ def bgp_asn_extended(self, value: typing.Optional[jsii.Number]) -> None:
9503
+ if __debug__:
9504
+ type_hints = typing.get_type_hints(_typecheckingstub__f41644d25c48e5c3c87a361ba478bdb4a18bf473fe1582fa35c6311f6d5284d8)
9505
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
9506
+ jsii.set(self, "bgpAsnExtended", value)
9507
+
9508
+ @builtins.property
9509
+ @jsii.member(jsii_name="certificateArn")
9510
+ def certificate_arn(self) -> typing.Optional[builtins.str]:
9511
+ '''The Amazon Resource Name (ARN) for the customer gateway certificate.'''
9512
+ return typing.cast(typing.Optional[builtins.str], jsii.get(self, "certificateArn"))
9513
+
9514
+ @certificate_arn.setter
9515
+ def certificate_arn(self, value: typing.Optional[builtins.str]) -> None:
9516
+ if __debug__:
9517
+ type_hints = typing.get_type_hints(_typecheckingstub__4a4b900e840c5be3a2b16a5177f91335cf813daeca359e549a639cb05a03ac63)
9518
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
9519
+ jsii.set(self, "certificateArn", value)
9520
+
9482
9521
  @builtins.property
9483
9522
  @jsii.member(jsii_name="deviceName")
9484
9523
  def device_name(self) -> typing.Optional[builtins.str]:
@@ -9510,9 +9549,11 @@ class CfnCustomerGateway(
9510
9549
  jsii_type="aws-cdk-lib.aws_ec2.CfnCustomerGatewayProps",
9511
9550
  jsii_struct_bases=[],
9512
9551
  name_mapping={
9513
- "bgp_asn": "bgpAsn",
9514
9552
  "ip_address": "ipAddress",
9515
9553
  "type": "type",
9554
+ "bgp_asn": "bgpAsn",
9555
+ "bgp_asn_extended": "bgpAsnExtended",
9556
+ "certificate_arn": "certificateArn",
9516
9557
  "device_name": "deviceName",
9517
9558
  "tags": "tags",
9518
9559
  },
@@ -9521,17 +9562,21 @@ class CfnCustomerGatewayProps:
9521
9562
  def __init__(
9522
9563
  self,
9523
9564
  *,
9524
- bgp_asn: jsii.Number,
9525
9565
  ip_address: builtins.str,
9526
9566
  type: builtins.str,
9567
+ bgp_asn: typing.Optional[jsii.Number] = None,
9568
+ bgp_asn_extended: typing.Optional[jsii.Number] = None,
9569
+ certificate_arn: typing.Optional[builtins.str] = None,
9527
9570
  device_name: typing.Optional[builtins.str] = None,
9528
9571
  tags: typing.Optional[typing.Sequence[typing.Union[_CfnTag_f6864754, typing.Dict[builtins.str, typing.Any]]]] = None,
9529
9572
  ) -> None:
9530
9573
  '''Properties for defining a ``CfnCustomerGateway``.
9531
9574
 
9532
- :param bgp_asn: For devices that support BGP, the customer gateway's BGP ASN. Default: 65000 Default: - 65000
9533
9575
  :param ip_address: IPv4 address for the customer gateway device's outside interface. The address must be static.
9534
9576
  :param type: The type of VPN connection that this customer gateway supports ( ``ipsec.1`` ).
9577
+ :param bgp_asn: For devices that support BGP, the customer gateway's BGP ASN. Default: 65000 Default: - 65000
9578
+ :param bgp_asn_extended:
9579
+ :param certificate_arn: The Amazon Resource Name (ARN) for the customer gateway certificate.
9535
9580
  :param device_name: The name of customer gateway device.
9536
9581
  :param tags: One or more tags for the customer gateway.
9537
9582
 
@@ -9545,11 +9590,13 @@ class CfnCustomerGatewayProps:
9545
9590
  from aws_cdk import aws_ec2 as ec2
9546
9591
 
9547
9592
  cfn_customer_gateway_props = ec2.CfnCustomerGatewayProps(
9548
- bgp_asn=123,
9549
9593
  ip_address="ipAddress",
9550
9594
  type="type",
9551
9595
 
9552
9596
  # the properties below are optional
9597
+ bgp_asn=123,
9598
+ bgp_asn_extended=123,
9599
+ certificate_arn="certificateArn",
9553
9600
  device_name="deviceName",
9554
9601
  tags=[CfnTag(
9555
9602
  key="key",
@@ -9559,35 +9606,28 @@ class CfnCustomerGatewayProps:
9559
9606
  '''
9560
9607
  if __debug__:
9561
9608
  type_hints = typing.get_type_hints(_typecheckingstub__b0ef9a2e3e2b6937b21db500a1cd795126e924d9b920931a413ecdb668bfc7ec)
9562
- check_type(argname="argument bgp_asn", value=bgp_asn, expected_type=type_hints["bgp_asn"])
9563
9609
  check_type(argname="argument ip_address", value=ip_address, expected_type=type_hints["ip_address"])
9564
9610
  check_type(argname="argument type", value=type, expected_type=type_hints["type"])
9611
+ check_type(argname="argument bgp_asn", value=bgp_asn, expected_type=type_hints["bgp_asn"])
9612
+ check_type(argname="argument bgp_asn_extended", value=bgp_asn_extended, expected_type=type_hints["bgp_asn_extended"])
9613
+ check_type(argname="argument certificate_arn", value=certificate_arn, expected_type=type_hints["certificate_arn"])
9565
9614
  check_type(argname="argument device_name", value=device_name, expected_type=type_hints["device_name"])
9566
9615
  check_type(argname="argument tags", value=tags, expected_type=type_hints["tags"])
9567
9616
  self._values: typing.Dict[builtins.str, typing.Any] = {
9568
- "bgp_asn": bgp_asn,
9569
9617
  "ip_address": ip_address,
9570
9618
  "type": type,
9571
9619
  }
9620
+ if bgp_asn is not None:
9621
+ self._values["bgp_asn"] = bgp_asn
9622
+ if bgp_asn_extended is not None:
9623
+ self._values["bgp_asn_extended"] = bgp_asn_extended
9624
+ if certificate_arn is not None:
9625
+ self._values["certificate_arn"] = certificate_arn
9572
9626
  if device_name is not None:
9573
9627
  self._values["device_name"] = device_name
9574
9628
  if tags is not None:
9575
9629
  self._values["tags"] = tags
9576
9630
 
9577
- @builtins.property
9578
- def bgp_asn(self) -> jsii.Number:
9579
- '''For devices that support BGP, the customer gateway's BGP ASN.
9580
-
9581
- Default: 65000
9582
-
9583
- :default: - 65000
9584
-
9585
- :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-customergateway.html#cfn-ec2-customergateway-bgpasn
9586
- '''
9587
- result = self._values.get("bgp_asn")
9588
- assert result is not None, "Required property 'bgp_asn' is missing"
9589
- return typing.cast(jsii.Number, result)
9590
-
9591
9631
  @builtins.property
9592
9632
  def ip_address(self) -> builtins.str:
9593
9633
  '''IPv4 address for the customer gateway device's outside interface.
@@ -9610,6 +9650,36 @@ class CfnCustomerGatewayProps:
9610
9650
  assert result is not None, "Required property 'type' is missing"
9611
9651
  return typing.cast(builtins.str, result)
9612
9652
 
9653
+ @builtins.property
9654
+ def bgp_asn(self) -> typing.Optional[jsii.Number]:
9655
+ '''For devices that support BGP, the customer gateway's BGP ASN.
9656
+
9657
+ Default: 65000
9658
+
9659
+ :default: - 65000
9660
+
9661
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-customergateway.html#cfn-ec2-customergateway-bgpasn
9662
+ '''
9663
+ result = self._values.get("bgp_asn")
9664
+ return typing.cast(typing.Optional[jsii.Number], result)
9665
+
9666
+ @builtins.property
9667
+ def bgp_asn_extended(self) -> typing.Optional[jsii.Number]:
9668
+ '''
9669
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-customergateway.html#cfn-ec2-customergateway-bgpasnextended
9670
+ '''
9671
+ result = self._values.get("bgp_asn_extended")
9672
+ return typing.cast(typing.Optional[jsii.Number], result)
9673
+
9674
+ @builtins.property
9675
+ def certificate_arn(self) -> typing.Optional[builtins.str]:
9676
+ '''The Amazon Resource Name (ARN) for the customer gateway certificate.
9677
+
9678
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-customergateway.html#cfn-ec2-customergateway-certificatearn
9679
+ '''
9680
+ result = self._values.get("certificate_arn")
9681
+ return typing.cast(typing.Optional[builtins.str], result)
9682
+
9613
9683
  @builtins.property
9614
9684
  def device_name(self) -> typing.Optional[builtins.str]:
9615
9685
  '''The name of customer gateway device.
@@ -19177,8 +19247,8 @@ class CfnInstance(
19177
19247
  :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
19248
  :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
19249
  :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.
19250
+ :param elastic_gpu_specifications: An elastic GPU to associate with the instance. .. epigraph:: Amazon Elastic Graphics reached end of life on January 8, 2024.
19251
+ :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
19252
  :param enclave_options: Indicates whether the instance is enabled for AWS Nitro Enclaves.
19183
19253
  :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
19254
  :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 +19274,7 @@ class CfnInstance(
19204
19274
  :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
19275
  :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
19276
  :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.
19277
+ :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
19278
  :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
19279
  :param tenancy: The tenancy of the instance. An instance with a tenancy of ``dedicated`` runs on single-tenant hardware.
19210
19280
  :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 +19367,6 @@ class CfnInstance(
19297
19367
  '''
19298
19368
  return typing.cast(builtins.str, jsii.get(self, "attrAvailabilityZone"))
19299
19369
 
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
19370
  @builtins.property
19309
19371
  @jsii.member(jsii_name="attrInstanceId")
19310
19372
  def attr_instance_id(self) -> builtins.str:
@@ -19512,7 +19574,7 @@ class CfnInstance(
19512
19574
  def elastic_gpu_specifications(
19513
19575
  self,
19514
19576
  ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, "CfnInstance.ElasticGpuSpecificationProperty"]]]]:
19515
- '''Deprecated.'''
19577
+ '''An elastic GPU to associate with the instance.'''
19516
19578
  return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, "CfnInstance.ElasticGpuSpecificationProperty"]]]], jsii.get(self, "elasticGpuSpecifications"))
19517
19579
 
19518
19580
  @elastic_gpu_specifications.setter
@@ -20940,11 +21002,9 @@ class CfnInstance(
20940
21002
  - The ID or the name of the launch template, but not both.
20941
21003
  - The version of the launch template.
20942
21004
 
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
21005
  For information about creating a launch template, see `AWS::EC2::LaunchTemplate <https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-launchtemplate.html>`_ and `Create a launch template <https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-launch-templates.html#create-launch-template>`_ in the *Amazon EC2 User Guide* .
20946
21006
 
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>`_ .
21007
+ For example launch templates, see the `Examples <https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-launchtemplate.html#aws-resource-ec2-launchtemplate--examples>`_ for ``AWS::EC2::LaunchTemplate`` .
20948
21008
 
20949
21009
  :param version: The version number of the launch template. Specifying ``$Latest`` or ``$Default`` for the template version number is not supported. However, you can specify ``LatestVersionNumber`` or ``DefaultVersionNumber`` using the ``Fn::GetAtt`` intrinsic function. For more information, see `Fn::GetAtt <https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-launchtemplate.html#aws-resource-ec2-launchtemplate-return-values-fn--getatt>`_ .
20950
21010
  :param launch_template_id: The ID of the launch template. You must specify the ``LaunchTemplateId`` or the ``LaunchTemplateName`` , but not both.
@@ -21134,7 +21194,7 @@ class CfnInstance(
21134
21194
  :param private_ip_address: The private IPv4 address of the network interface. Applies only if creating a network interface when launching an instance.
21135
21195
  :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
21196
  :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.
21197
+ :param subnet_id: The ID of the subnet associated with the network interface.
21138
21198
 
21139
21199
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance-networkinterface.html
21140
21200
  :exampleMetadata: fixture=_generated
@@ -21360,8 +21420,6 @@ class CfnInstance(
21360
21420
  def subnet_id(self) -> typing.Optional[builtins.str]:
21361
21421
  '''The ID of the subnet associated with the network interface.
21362
21422
 
21363
- Applies only if creating a network interface when launching an instance.
21364
-
21365
21423
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance-networkinterface.html#cfn-ec2-instance-networkinterface-subnetid
21366
21424
  '''
21367
21425
  result = self._values.get("subnet_id")
@@ -22171,8 +22229,8 @@ class CfnInstanceProps:
22171
22229
  :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
22230
  :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
22231
  :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.
22232
+ :param elastic_gpu_specifications: An elastic GPU to associate with the instance. .. epigraph:: Amazon Elastic Graphics reached end of life on January 8, 2024.
22233
+ :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
22234
  :param enclave_options: Indicates whether the instance is enabled for AWS Nitro Enclaves.
22177
22235
  :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
22236
  :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 +22256,7 @@ class CfnInstanceProps:
22198
22256
  :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
22257
  :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
22258
  :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.
22259
+ :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
22260
  :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
22261
  :param tenancy: The tenancy of the instance. An instance with a tenancy of ``dedicated`` runs on single-tenant hardware.
22204
22262
  :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 +22633,11 @@ class CfnInstanceProps:
22575
22633
  def elastic_gpu_specifications(
22576
22634
  self,
22577
22635
  ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, CfnInstance.ElasticGpuSpecificationProperty]]]]:
22578
- '''Deprecated.
22636
+ '''An elastic GPU to associate with the instance.
22579
22637
 
22580
22638
  .. epigraph::
22581
22639
 
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.
22640
+ Amazon Elastic Graphics reached end of life on January 8, 2024.
22583
22641
 
22584
22642
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-instance.html#cfn-ec2-instance-elasticgpuspecifications
22585
22643
  '''
@@ -22592,12 +22650,9 @@ class CfnInstanceProps:
22592
22650
  ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, CfnInstance.ElasticInferenceAcceleratorProperty]]]]:
22593
22651
  '''An elastic inference accelerator to associate with the instance.
22594
22652
 
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
22653
  .. epigraph::
22599
22654
 
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.
22655
+ 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
22656
 
22602
22657
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-instance.html#cfn-ec2-instance-elasticinferenceaccelerators
22603
22658
  '''
@@ -22924,7 +22979,7 @@ class CfnInstanceProps:
22924
22979
  def subnet_id(self) -> typing.Optional[builtins.str]:
22925
22980
  '''The ID of the subnet to launch the instance into.
22926
22981
 
22927
- If you specify a network interface, you must specify any subnets as part of the network interface.
22982
+ If you specify a network interface, you must specify any subnets as part of the network interface instead of using this parameter.
22928
22983
 
22929
22984
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-instance.html#cfn-ec2-instance-subnetid
22930
22985
  '''
@@ -26092,12 +26147,12 @@ class CfnLaunchTemplate(
26092
26147
  :param maintenance_options: The maintenance options of your instance.
26093
26148
  :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
26149
  :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.
26150
+ :param network_interfaces: The network interfaces for the instance.
26096
26151
  :param placement: The placement for the instance.
26097
26152
  :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
26153
  :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.
26154
+ :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.
26155
+ :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
26156
  :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
26157
  :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
26158
 
@@ -26233,8 +26288,7 @@ class CfnLaunchTemplate(
26233
26288
  license_configuration_arn="licenseConfigurationArn"
26234
26289
  )],
26235
26290
  maintenance_options=ec2.CfnLaunchTemplate.MaintenanceOptionsProperty(
26236
- auto_recovery="autoRecovery",
26237
- reboot_migration="rebootMigration"
26291
+ auto_recovery="autoRecovery"
26238
26292
  ),
26239
26293
  metadata_options=ec2.CfnLaunchTemplate.MetadataOptionsProperty(
26240
26294
  http_endpoint="httpEndpoint",
@@ -26732,9 +26786,7 @@ class CfnLaunchTemplate(
26732
26786
  def network_interfaces(
26733
26787
  self,
26734
26788
  ) -> 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.
26789
+ '''The network interfaces for the instance.
26738
26790
 
26739
26791
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata.html#cfn-ec2-launchtemplate-launchtemplatedata-networkinterfaces
26740
26792
  '''
@@ -26784,6 +26836,8 @@ class CfnLaunchTemplate(
26784
26836
 
26785
26837
  You can specify the IDs of existing security groups and references to resources created by the stack template.
26786
26838
 
26839
+ If you specify a network interface, you must specify any security groups as part of the network interface instead.
26840
+
26787
26841
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata.html#cfn-ec2-launchtemplate-launchtemplatedata-securitygroupids
26788
26842
  '''
26789
26843
  result = self._values.get("security_group_ids")
@@ -26791,9 +26845,9 @@ class CfnLaunchTemplate(
26791
26845
 
26792
26846
  @builtins.property
26793
26847
  def security_groups(self) -> typing.Optional[typing.List[builtins.str]]:
26794
- '''One or more security group names.
26848
+ '''The names of the security groups. For a nondefault VPC, you must use security group IDs instead.
26795
26849
 
26796
- For a nondefault VPC, you must use security group IDs instead.
26850
+ If you specify a network interface, you must specify any security groups as part of the network interface instead of using this parameter.
26797
26851
 
26798
26852
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata.html#cfn-ec2-launchtemplate-launchtemplatedata-securitygroups
26799
26853
  '''
@@ -27052,22 +27106,17 @@ class CfnLaunchTemplate(
27052
27106
  @jsii.data_type(
27053
27107
  jsii_type="aws-cdk-lib.aws_ec2.CfnLaunchTemplate.MaintenanceOptionsProperty",
27054
27108
  jsii_struct_bases=[],
27055
- name_mapping={
27056
- "auto_recovery": "autoRecovery",
27057
- "reboot_migration": "rebootMigration",
27058
- },
27109
+ name_mapping={"auto_recovery": "autoRecovery"},
27059
27110
  )
27060
27111
  class MaintenanceOptionsProperty:
27061
27112
  def __init__(
27062
27113
  self,
27063
27114
  *,
27064
27115
  auto_recovery: typing.Optional[builtins.str] = None,
27065
- reboot_migration: typing.Optional[builtins.str] = None,
27066
27116
  ) -> None:
27067
27117
  '''The maintenance options of your instance.
27068
27118
 
27069
27119
  :param auto_recovery: Disables the automatic recovery behavior of your instance or sets it to default.
27070
- :param reboot_migration:
27071
27120
 
27072
27121
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-maintenanceoptions.html
27073
27122
  :exampleMetadata: fixture=_generated
@@ -27079,19 +27128,15 @@ class CfnLaunchTemplate(
27079
27128
  from aws_cdk import aws_ec2 as ec2
27080
27129
 
27081
27130
  maintenance_options_property = ec2.CfnLaunchTemplate.MaintenanceOptionsProperty(
27082
- auto_recovery="autoRecovery",
27083
- reboot_migration="rebootMigration"
27131
+ auto_recovery="autoRecovery"
27084
27132
  )
27085
27133
  '''
27086
27134
  if __debug__:
27087
27135
  type_hints = typing.get_type_hints(_typecheckingstub__62e0d77a7fa9500aab5a08e932dc82213f11e05b31cf56f4654431c48342979e)
27088
27136
  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
27137
  self._values: typing.Dict[builtins.str, typing.Any] = {}
27091
27138
  if auto_recovery is not None:
27092
27139
  self._values["auto_recovery"] = auto_recovery
27093
- if reboot_migration is not None:
27094
- self._values["reboot_migration"] = reboot_migration
27095
27140
 
27096
27141
  @builtins.property
27097
27142
  def auto_recovery(self) -> typing.Optional[builtins.str]:
@@ -27102,14 +27147,6 @@ class CfnLaunchTemplate(
27102
27147
  result = self._values.get("auto_recovery")
27103
27148
  return typing.cast(typing.Optional[builtins.str], result)
27104
27149
 
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
27150
  def __eq__(self, rhs: typing.Any) -> builtins.bool:
27114
27151
  return isinstance(rhs, self.__class__) and rhs._values == self._values
27115
27152
 
@@ -40429,7 +40466,7 @@ class CfnSecurityGroup(
40429
40466
 
40430
40467
  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
40468
 
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.
40469
+ 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
40470
 
40434
40471
  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
40472
  .. epigraph::
@@ -40461,7 +40498,6 @@ class CfnSecurityGroup(
40461
40498
  destination_prefix_list_id="destinationPrefixListId",
40462
40499
  destination_security_group_id="destinationSecurityGroupId",
40463
40500
  from_port=123,
40464
- source_security_group_id="sourceSecurityGroupId",
40465
40501
  to_port=123
40466
40502
  )],
40467
40503
  security_group_ingress=[ec2.CfnSecurityGroup.IngressProperty(
@@ -40692,7 +40728,6 @@ class CfnSecurityGroup(
40692
40728
  "destination_prefix_list_id": "destinationPrefixListId",
40693
40729
  "destination_security_group_id": "destinationSecurityGroupId",
40694
40730
  "from_port": "fromPort",
40695
- "source_security_group_id": "sourceSecurityGroupId",
40696
40731
  "to_port": "toPort",
40697
40732
  },
40698
40733
  )
@@ -40707,7 +40742,6 @@ class CfnSecurityGroup(
40707
40742
  destination_prefix_list_id: typing.Optional[builtins.str] = None,
40708
40743
  destination_security_group_id: typing.Optional[builtins.str] = None,
40709
40744
  from_port: typing.Optional[jsii.Number] = None,
40710
- source_security_group_id: typing.Optional[builtins.str] = None,
40711
40745
  to_port: typing.Optional[jsii.Number] = None,
40712
40746
  ) -> None:
40713
40747
  '''Adds the specified outbound (egress) rule to a security group.
@@ -40727,7 +40761,6 @@ class CfnSecurityGroup(
40727
40761
  :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
40762
  :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
40763
  :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
40764
  :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
40765
 
40733
40766
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-securitygroup-egress.html
@@ -40749,7 +40782,6 @@ class CfnSecurityGroup(
40749
40782
  destination_prefix_list_id="destinationPrefixListId",
40750
40783
  destination_security_group_id="destinationSecurityGroupId",
40751
40784
  from_port=123,
40752
- source_security_group_id="sourceSecurityGroupId",
40753
40785
  to_port=123
40754
40786
  )
40755
40787
  '''
@@ -40762,7 +40794,6 @@ class CfnSecurityGroup(
40762
40794
  check_type(argname="argument destination_prefix_list_id", value=destination_prefix_list_id, expected_type=type_hints["destination_prefix_list_id"])
40763
40795
  check_type(argname="argument destination_security_group_id", value=destination_security_group_id, expected_type=type_hints["destination_security_group_id"])
40764
40796
  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
40797
  check_type(argname="argument to_port", value=to_port, expected_type=type_hints["to_port"])
40767
40798
  self._values: typing.Dict[builtins.str, typing.Any] = {
40768
40799
  "ip_protocol": ip_protocol,
@@ -40779,8 +40810,6 @@ class CfnSecurityGroup(
40779
40810
  self._values["destination_security_group_id"] = destination_security_group_id
40780
40811
  if from_port is not None:
40781
40812
  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
40813
  if to_port is not None:
40785
40814
  self._values["to_port"] = to_port
40786
40815
 
@@ -40868,14 +40897,6 @@ class CfnSecurityGroup(
40868
40897
  result = self._values.get("from_port")
40869
40898
  return typing.cast(typing.Optional[jsii.Number], result)
40870
40899
 
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
40900
  @builtins.property
40880
40901
  def to_port(self) -> typing.Optional[jsii.Number]:
40881
40902
  '''If the protocol is TCP or UDP, this is the end of the port range.
@@ -42233,7 +42254,6 @@ class CfnSecurityGroupProps:
42233
42254
  destination_prefix_list_id="destinationPrefixListId",
42234
42255
  destination_security_group_id="destinationSecurityGroupId",
42235
42256
  from_port=123,
42236
- source_security_group_id="sourceSecurityGroupId",
42237
42257
  to_port=123
42238
42258
  )],
42239
42259
  security_group_ingress=[ec2.CfnSecurityGroup.IngressProperty(
@@ -42548,10 +42568,7 @@ class CfnSpotFleet(
42548
42568
 
42549
42569
  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
42570
 
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* .
42571
+ For more information, see `Spot Fleet <https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/spot-fleet.html>`_ in the *Amazon EC2 User Guide* .
42555
42572
 
42556
42573
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-spotfleet.html
42557
42574
  :cloudformationResource: AWS::EC2::SpotFleet
@@ -43842,7 +43859,7 @@ class CfnSpotFleet(
43842
43859
  :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
43860
  :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
43861
  :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.
43862
+ :param subnet_id: The ID of the subnet associated with the network interface.
43846
43863
 
43847
43864
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-instancenetworkinterfacespecification.html
43848
43865
  :exampleMetadata: fixture=_generated
@@ -44035,8 +44052,6 @@ class CfnSpotFleet(
44035
44052
  def subnet_id(self) -> typing.Optional[builtins.str]:
44036
44053
  '''The ID of the subnet associated with the network interface.
44037
44054
 
44038
- Applies only if creating a network interface when launching an instance.
44039
-
44040
44055
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-instancenetworkinterfacespecification.html#cfn-ec2-spotfleet-instancenetworkinterfacespecification-subnetid
44041
44056
  '''
44042
44057
  result = self._values.get("subnet_id")
@@ -45684,12 +45699,12 @@ class CfnSpotFleet(
45684
45699
  :param kernel_id: The ID of the kernel.
45685
45700
  :param key_name: The name of the key pair.
45686
45701
  :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>`_ .
45702
+ :param network_interfaces: The network interfaces.
45688
45703
  :param placement: The placement information.
45689
45704
  :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.
45705
+ :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
45706
  :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".
45707
+ :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
45708
  :param tag_specifications: The tags to apply during creation.
45694
45709
  :param user_data: The base64-encoded user data that instances use when starting up. User data is limited to 16 KB.
45695
45710
  :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 +46009,7 @@ class CfnSpotFleet(
45994
46009
  def network_interfaces(
45995
46010
  self,
45996
46011
  ) -> 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>`_ .
46012
+ '''The network interfaces.
46003
46013
 
46004
46014
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-spotfleetlaunchspecification.html#cfn-ec2-spotfleet-spotfleetlaunchspecification-networkinterfaces
46005
46015
  '''
@@ -46034,6 +46044,8 @@ class CfnSpotFleet(
46034
46044
  ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, "CfnSpotFleet.GroupIdentifierProperty"]]]]:
46035
46045
  '''The security groups.
46036
46046
 
46047
+ If you specify a network interface, you must specify any security groups as part of the network interface instead of using this parameter.
46048
+
46037
46049
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-spotfleetlaunchspecification.html#cfn-ec2-spotfleet-spotfleetlaunchspecification-securitygroups
46038
46050
  '''
46039
46051
  result = self._values.get("security_groups")
@@ -46059,6 +46071,8 @@ class CfnSpotFleet(
46059
46071
 
46060
46072
  To specify multiple subnets, separate them using commas; for example, "subnet-1234abcdeexample1, subnet-0987cdef6example2".
46061
46073
 
46074
+ If you specify a network interface, you must specify any subnets as part of the network interface instead of using this parameter.
46075
+
46062
46076
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-spotfleetlaunchspecification.html#cfn-ec2-spotfleet-spotfleetlaunchspecification-subnetid
46063
46077
  '''
46064
46078
  result = self._values.get("subnet_id")
@@ -53844,11 +53858,11 @@ class CfnTransitGatewayRoute(
53844
53858
  from aws_cdk import aws_ec2 as ec2
53845
53859
 
53846
53860
  cfn_transit_gateway_route = ec2.CfnTransitGatewayRoute(self, "MyCfnTransitGatewayRoute",
53861
+ destination_cidr_block="destinationCidrBlock",
53847
53862
  transit_gateway_route_table_id="transitGatewayRouteTableId",
53848
53863
 
53849
53864
  # the properties below are optional
53850
53865
  blackhole=False,
53851
- destination_cidr_block="destinationCidrBlock",
53852
53866
  transit_gateway_attachment_id="transitGatewayAttachmentId"
53853
53867
  )
53854
53868
  '''
@@ -53858,17 +53872,17 @@ class CfnTransitGatewayRoute(
53858
53872
  scope: _constructs_77d1e7e8.Construct,
53859
53873
  id: builtins.str,
53860
53874
  *,
53875
+ destination_cidr_block: builtins.str,
53861
53876
  transit_gateway_route_table_id: builtins.str,
53862
53877
  blackhole: typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]] = None,
53863
- destination_cidr_block: typing.Optional[builtins.str] = None,
53864
53878
  transit_gateway_attachment_id: typing.Optional[builtins.str] = None,
53865
53879
  ) -> None:
53866
53880
  '''
53867
53881
  :param scope: Scope in which this resource is defined.
53868
53882
  :param id: Construct identifier for this resource (unique in its scope).
53883
+ :param destination_cidr_block: The CIDR block used for destination matches.
53869
53884
  :param transit_gateway_route_table_id: The ID of the transit gateway route table.
53870
53885
  :param blackhole: Indicates whether to drop traffic that matches this route.
53871
- :param destination_cidr_block: The CIDR block used for destination matches.
53872
53886
  :param transit_gateway_attachment_id: The ID of the attachment.
53873
53887
  '''
53874
53888
  if __debug__:
@@ -53876,9 +53890,9 @@ class CfnTransitGatewayRoute(
53876
53890
  check_type(argname="argument scope", value=scope, expected_type=type_hints["scope"])
53877
53891
  check_type(argname="argument id", value=id, expected_type=type_hints["id"])
53878
53892
  props = CfnTransitGatewayRouteProps(
53893
+ destination_cidr_block=destination_cidr_block,
53879
53894
  transit_gateway_route_table_id=transit_gateway_route_table_id,
53880
53895
  blackhole=blackhole,
53881
- destination_cidr_block=destination_cidr_block,
53882
53896
  transit_gateway_attachment_id=transit_gateway_attachment_id,
53883
53897
  )
53884
53898
 
@@ -53927,6 +53941,19 @@ class CfnTransitGatewayRoute(
53927
53941
  def _cfn_properties(self) -> typing.Mapping[builtins.str, typing.Any]:
53928
53942
  return typing.cast(typing.Mapping[builtins.str, typing.Any], jsii.get(self, "cfnProperties"))
53929
53943
 
53944
+ @builtins.property
53945
+ @jsii.member(jsii_name="destinationCidrBlock")
53946
+ def destination_cidr_block(self) -> builtins.str:
53947
+ '''The CIDR block used for destination matches.'''
53948
+ return typing.cast(builtins.str, jsii.get(self, "destinationCidrBlock"))
53949
+
53950
+ @destination_cidr_block.setter
53951
+ def destination_cidr_block(self, value: builtins.str) -> None:
53952
+ if __debug__:
53953
+ type_hints = typing.get_type_hints(_typecheckingstub__30150d874e802337a21fe5c33c5e59055a33af9ec33282c5c08706bcd1082c1c)
53954
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
53955
+ jsii.set(self, "destinationCidrBlock", value)
53956
+
53930
53957
  @builtins.property
53931
53958
  @jsii.member(jsii_name="transitGatewayRouteTableId")
53932
53959
  def transit_gateway_route_table_id(self) -> builtins.str:
@@ -53958,19 +53985,6 @@ class CfnTransitGatewayRoute(
53958
53985
  check_type(argname="argument value", value=value, expected_type=type_hints["value"])
53959
53986
  jsii.set(self, "blackhole", value)
53960
53987
 
53961
- @builtins.property
53962
- @jsii.member(jsii_name="destinationCidrBlock")
53963
- def destination_cidr_block(self) -> typing.Optional[builtins.str]:
53964
- '''The CIDR block used for destination matches.'''
53965
- return typing.cast(typing.Optional[builtins.str], jsii.get(self, "destinationCidrBlock"))
53966
-
53967
- @destination_cidr_block.setter
53968
- def destination_cidr_block(self, value: typing.Optional[builtins.str]) -> None:
53969
- if __debug__:
53970
- type_hints = typing.get_type_hints(_typecheckingstub__30150d874e802337a21fe5c33c5e59055a33af9ec33282c5c08706bcd1082c1c)
53971
- check_type(argname="argument value", value=value, expected_type=type_hints["value"])
53972
- jsii.set(self, "destinationCidrBlock", value)
53973
-
53974
53988
  @builtins.property
53975
53989
  @jsii.member(jsii_name="transitGatewayAttachmentId")
53976
53990
  def transit_gateway_attachment_id(self) -> typing.Optional[builtins.str]:
@@ -53992,9 +54006,9 @@ class CfnTransitGatewayRoute(
53992
54006
  jsii_type="aws-cdk-lib.aws_ec2.CfnTransitGatewayRouteProps",
53993
54007
  jsii_struct_bases=[],
53994
54008
  name_mapping={
54009
+ "destination_cidr_block": "destinationCidrBlock",
53995
54010
  "transit_gateway_route_table_id": "transitGatewayRouteTableId",
53996
54011
  "blackhole": "blackhole",
53997
- "destination_cidr_block": "destinationCidrBlock",
53998
54012
  "transit_gateway_attachment_id": "transitGatewayAttachmentId",
53999
54013
  },
54000
54014
  )
@@ -54002,16 +54016,16 @@ class CfnTransitGatewayRouteProps:
54002
54016
  def __init__(
54003
54017
  self,
54004
54018
  *,
54019
+ destination_cidr_block: builtins.str,
54005
54020
  transit_gateway_route_table_id: builtins.str,
54006
54021
  blackhole: typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]] = None,
54007
- destination_cidr_block: typing.Optional[builtins.str] = None,
54008
54022
  transit_gateway_attachment_id: typing.Optional[builtins.str] = None,
54009
54023
  ) -> None:
54010
54024
  '''Properties for defining a ``CfnTransitGatewayRoute``.
54011
54025
 
54026
+ :param destination_cidr_block: The CIDR block used for destination matches.
54012
54027
  :param transit_gateway_route_table_id: The ID of the transit gateway route table.
54013
54028
  :param blackhole: Indicates whether to drop traffic that matches this route.
54014
- :param destination_cidr_block: The CIDR block used for destination matches.
54015
54029
  :param transit_gateway_attachment_id: The ID of the attachment.
54016
54030
 
54017
54031
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-transitgatewayroute.html
@@ -54024,30 +54038,39 @@ class CfnTransitGatewayRouteProps:
54024
54038
  from aws_cdk import aws_ec2 as ec2
54025
54039
 
54026
54040
  cfn_transit_gateway_route_props = ec2.CfnTransitGatewayRouteProps(
54041
+ destination_cidr_block="destinationCidrBlock",
54027
54042
  transit_gateway_route_table_id="transitGatewayRouteTableId",
54028
54043
 
54029
54044
  # the properties below are optional
54030
54045
  blackhole=False,
54031
- destination_cidr_block="destinationCidrBlock",
54032
54046
  transit_gateway_attachment_id="transitGatewayAttachmentId"
54033
54047
  )
54034
54048
  '''
54035
54049
  if __debug__:
54036
54050
  type_hints = typing.get_type_hints(_typecheckingstub__234e56a6f757b6cae89b22252317937e5caf6081f899789f9dfaf239987ad5e3)
54051
+ check_type(argname="argument destination_cidr_block", value=destination_cidr_block, expected_type=type_hints["destination_cidr_block"])
54037
54052
  check_type(argname="argument transit_gateway_route_table_id", value=transit_gateway_route_table_id, expected_type=type_hints["transit_gateway_route_table_id"])
54038
54053
  check_type(argname="argument blackhole", value=blackhole, expected_type=type_hints["blackhole"])
54039
- check_type(argname="argument destination_cidr_block", value=destination_cidr_block, expected_type=type_hints["destination_cidr_block"])
54040
54054
  check_type(argname="argument transit_gateway_attachment_id", value=transit_gateway_attachment_id, expected_type=type_hints["transit_gateway_attachment_id"])
54041
54055
  self._values: typing.Dict[builtins.str, typing.Any] = {
54056
+ "destination_cidr_block": destination_cidr_block,
54042
54057
  "transit_gateway_route_table_id": transit_gateway_route_table_id,
54043
54058
  }
54044
54059
  if blackhole is not None:
54045
54060
  self._values["blackhole"] = blackhole
54046
- if destination_cidr_block is not None:
54047
- self._values["destination_cidr_block"] = destination_cidr_block
54048
54061
  if transit_gateway_attachment_id is not None:
54049
54062
  self._values["transit_gateway_attachment_id"] = transit_gateway_attachment_id
54050
54063
 
54064
+ @builtins.property
54065
+ def destination_cidr_block(self) -> builtins.str:
54066
+ '''The CIDR block used for destination matches.
54067
+
54068
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-transitgatewayroute.html#cfn-ec2-transitgatewayroute-destinationcidrblock
54069
+ '''
54070
+ result = self._values.get("destination_cidr_block")
54071
+ assert result is not None, "Required property 'destination_cidr_block' is missing"
54072
+ return typing.cast(builtins.str, result)
54073
+
54051
54074
  @builtins.property
54052
54075
  def transit_gateway_route_table_id(self) -> builtins.str:
54053
54076
  '''The ID of the transit gateway route table.
@@ -54069,15 +54092,6 @@ class CfnTransitGatewayRouteProps:
54069
54092
  result = self._values.get("blackhole")
54070
54093
  return typing.cast(typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]], result)
54071
54094
 
54072
- @builtins.property
54073
- def destination_cidr_block(self) -> typing.Optional[builtins.str]:
54074
- '''The CIDR block used for destination matches.
54075
-
54076
- :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-transitgatewayroute.html#cfn-ec2-transitgatewayroute-destinationcidrblock
54077
- '''
54078
- result = self._values.get("destination_cidr_block")
54079
- return typing.cast(typing.Optional[builtins.str], result)
54080
-
54081
54095
  @builtins.property
54082
54096
  def transit_gateway_attachment_id(self) -> typing.Optional[builtins.str]:
54083
54097
  '''The ID of the attachment.
@@ -54312,14 +54326,6 @@ class CfnTransitGatewayRouteTableAssociation(
54312
54326
  '''The CloudFormation resource type name for this resource class.'''
54313
54327
  return typing.cast(builtins.str, jsii.sget(cls, "CFN_RESOURCE_TYPE_NAME"))
54314
54328
 
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
54329
  @builtins.property
54324
54330
  @jsii.member(jsii_name="cfnProperties")
54325
54331
  def _cfn_properties(self) -> typing.Mapping[builtins.str, typing.Any]:
@@ -78891,7 +78897,7 @@ class NatInstanceProps:
78891
78897
  :param key_name: (deprecated) Name of SSH keypair to grant access to instance. Default: - No SSH access will be possible.
78892
78898
  :param key_pair: The SSH keypair to grant access to the instance. Default: - No SSH access will be possible.
78893
78899
  :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
78900
+ :param security_group: (deprecated) Security Group for NAT instances. Default: - A new security group will be created
78895
78901
  :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
78902
 
78897
78903
  :exampleMetadata: infused
@@ -78908,7 +78914,7 @@ class NatInstanceProps:
78908
78914
  ec2.Vpc(self, "TheVPC",
78909
78915
  nat_gateway_provider=provider
78910
78916
  )
78911
- provider.connections.allow_from(ec2.Peer.ipv4("1.2.3.4/8"), ec2.Port.tcp(80))
78917
+ provider.connections.allow_from(ec2.Peer.ipv4("1.2.3.4/8"), ec2.Port.HTTP)
78912
78918
  '''
78913
78919
  if __debug__:
78914
78920
  type_hints = typing.get_type_hints(_typecheckingstub__d7c7c717447859e1ccc181bc97f7752cc3f7fa7afaee4c3a4266eeac32c08643)
@@ -79017,9 +79023,35 @@ class NatInstanceProps:
79017
79023
 
79018
79024
  @builtins.property
79019
79025
  def security_group(self) -> typing.Optional[ISecurityGroup]:
79020
- '''Security Group for NAT instances.
79026
+ '''(deprecated) Security Group for NAT instances.
79021
79027
 
79022
79028
  :default: - A new security group will be created
79029
+
79030
+ :deprecated:
79031
+
79032
+ - Cannot create a new security group before the VPC is created,
79033
+ and cannot create the VPC without the NAT provider.
79034
+ Set {@link defaultAllowedTraffic } to {@link NatTrafficDirection.NONE }
79035
+ and use {@link NatInstanceProviderV2.gatewayInstances } to retrieve
79036
+ the instances on the fly and add security groups
79037
+
79038
+ :stability: deprecated
79039
+
79040
+ Example::
79041
+
79042
+ nat_gateway_provider = ec2.NatProvider.instance_v2(
79043
+ instance_type=ec2.InstanceType("t3.small"),
79044
+ default_allowed_traffic=ec2.NatTrafficDirection.NONE
79045
+ )
79046
+ vpc = ec2.Vpc(self, "Vpc", nat_gateway_provider=nat_gateway_provider)
79047
+
79048
+ security_group = ec2.SecurityGroup(self, "SecurityGroup",
79049
+ vpc=vpc,
79050
+ allow_all_outbound=False
79051
+ )
79052
+ security_group.add_egress_rule(ec2.Peer.any_ipv4(), ec2.Port.tcp(443))
79053
+ for gateway_instance in nat_gateway_provider.gateway_instances:
79054
+ gateway_instance.add_security_group(security_group)
79023
79055
  '''
79024
79056
  result = self._values.get("security_group")
79025
79057
  return typing.cast(typing.Optional[ISecurityGroup], result)
@@ -79070,7 +79102,7 @@ class NatProvider(
79070
79102
  ec2.Vpc(self, "TheVPC",
79071
79103
  nat_gateway_provider=provider
79072
79104
  )
79073
- provider.connections.allow_from(ec2.Peer.ipv4("1.2.3.4/8"), ec2.Port.tcp(80))
79105
+ provider.connections.allow_from(ec2.Peer.ipv4("1.2.3.4/8"), ec2.Port.HTTP)
79074
79106
  '''
79075
79107
 
79076
79108
  def __init__(self) -> None:
@@ -79123,7 +79155,7 @@ class NatProvider(
79123
79155
  :param key_name: (deprecated) Name of SSH keypair to grant access to instance. Default: - No SSH access will be possible.
79124
79156
  :param key_pair: The SSH keypair to grant access to the instance. Default: - No SSH access will be possible.
79125
79157
  :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
79158
+ :param security_group: (deprecated) Security Group for NAT instances. Default: - A new security group will be created
79127
79159
  :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
79160
 
79129
79161
  :deprecated:
@@ -79175,7 +79207,7 @@ class NatProvider(
79175
79207
  :param key_name: (deprecated) Name of SSH keypair to grant access to instance. Default: - No SSH access will be possible.
79176
79208
  :param key_pair: The SSH keypair to grant access to the instance. Default: - No SSH access will be possible.
79177
79209
  :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
79210
+ :param security_group: (deprecated) Security Group for NAT instances. Default: - A new security group will be created
79179
79211
  :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
79212
 
79181
79213
  :see: https://docs.aws.amazon.com/vpc/latest/userguide/VPC_NAT_Instance.html
@@ -79285,17 +79317,19 @@ class NatTrafficDirection(enum.Enum):
79285
79317
 
79286
79318
  Example::
79287
79319
 
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
79320
+ nat_gateway_provider = ec2.NatProvider.instance_v2(
79321
+ instance_type=ec2.InstanceType("t3.small"),
79322
+ default_allowed_traffic=ec2.NatTrafficDirection.NONE
79294
79323
  )
79295
- ec2.Vpc(self, "TheVPC",
79296
- nat_gateway_provider=provider
79324
+ vpc = ec2.Vpc(self, "Vpc", nat_gateway_provider=nat_gateway_provider)
79325
+
79326
+ security_group = ec2.SecurityGroup(self, "SecurityGroup",
79327
+ vpc=vpc,
79328
+ allow_all_outbound=False
79297
79329
  )
79298
- provider.connections.allow_from(ec2.Peer.ipv4("1.2.3.4/8"), ec2.Port.tcp(80))
79330
+ security_group.add_egress_rule(ec2.Peer.any_ipv4(), ec2.Port.tcp(443))
79331
+ for gateway_instance in nat_gateway_provider.gateway_instances:
79332
+ gateway_instance.add_security_group(security_group)
79299
79333
  '''
79300
79334
 
79301
79335
  OUTBOUND_ONLY = "OUTBOUND_ONLY"
@@ -79902,17 +79936,20 @@ class Peer(metaclass=jsii.JSIIMeta, jsii_type="aws-cdk-lib.aws_ec2.Peer"):
79902
79936
 
79903
79937
  Example::
79904
79938
 
79905
- # instance_type: ec2.InstanceType
79906
-
79939
+ # vpc: ec2.Vpc
79907
79940
 
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
79941
+ cluster = msk.Cluster(self, "Cluster",
79942
+ cluster_name="myCluster",
79943
+ kafka_version=msk.KafkaVersion.V2_8_1,
79944
+ vpc=vpc
79914
79945
  )
79915
- provider.connections.allow_from(ec2.Peer.ipv4("1.2.3.4/8"), ec2.Port.tcp(80))
79946
+
79947
+ cluster.connections.allow_from(
79948
+ ec2.Peer.ipv4("1.2.3.4/8"),
79949
+ ec2.Port.tcp(2181))
79950
+ cluster.connections.allow_from(
79951
+ ec2.Peer.ipv4("1.2.3.4/8"),
79952
+ ec2.Port.tcp(9094))
79916
79953
  '''
79917
79954
 
79918
79955
  def __init__(self) -> None:
@@ -80284,7 +80321,7 @@ class Port(metaclass=jsii.JSIIMeta, jsii_type="aws-cdk-lib.aws_ec2.Port"):
80284
80321
  ec2.Vpc(self, "TheVPC",
80285
80322
  nat_gateway_provider=provider
80286
80323
  )
80287
- provider.connections.allow_from(ec2.Peer.ipv4("1.2.3.4/8"), ec2.Port.tcp(80))
80324
+ provider.connections.allow_from(ec2.Peer.ipv4("1.2.3.4/8"), ec2.Port.HTTP)
80288
80325
  '''
80289
80326
 
80290
80327
  def __init__(
@@ -80447,6 +80484,108 @@ class Port(metaclass=jsii.JSIIMeta, jsii_type="aws-cdk-lib.aws_ec2.Port"):
80447
80484
  def to_string(self) -> builtins.str:
80448
80485
  return typing.cast(builtins.str, jsii.invoke(self, "toString", []))
80449
80486
 
80487
+ @jsii.python.classproperty
80488
+ @jsii.member(jsii_name="DNS_TCP")
80489
+ def DNS_TCP(cls) -> "Port":
80490
+ '''Well-known DNS port (TCP 53).'''
80491
+ return typing.cast("Port", jsii.sget(cls, "DNS_TCP"))
80492
+
80493
+ @jsii.python.classproperty
80494
+ @jsii.member(jsii_name="DNS_UDP")
80495
+ def DNS_UDP(cls) -> "Port":
80496
+ '''Well-known DNS port (UDP 53).'''
80497
+ return typing.cast("Port", jsii.sget(cls, "DNS_UDP"))
80498
+
80499
+ @jsii.python.classproperty
80500
+ @jsii.member(jsii_name="HTTP")
80501
+ def HTTP(cls) -> "Port":
80502
+ '''Well-known HTTP port (TCP 80).'''
80503
+ return typing.cast("Port", jsii.sget(cls, "HTTP"))
80504
+
80505
+ @jsii.python.classproperty
80506
+ @jsii.member(jsii_name="HTTPS")
80507
+ def HTTPS(cls) -> "Port":
80508
+ '''Well-known HTTPS port (TCP 443).'''
80509
+ return typing.cast("Port", jsii.sget(cls, "HTTPS"))
80510
+
80511
+ @jsii.python.classproperty
80512
+ @jsii.member(jsii_name="IMAP")
80513
+ def IMAP(cls) -> "Port":
80514
+ '''Well-known IMAP port (TCP 143).'''
80515
+ return typing.cast("Port", jsii.sget(cls, "IMAP"))
80516
+
80517
+ @jsii.python.classproperty
80518
+ @jsii.member(jsii_name="IMAPS")
80519
+ def IMAPS(cls) -> "Port":
80520
+ '''Well-known IMAPS port (TCP 993).'''
80521
+ return typing.cast("Port", jsii.sget(cls, "IMAPS"))
80522
+
80523
+ @jsii.python.classproperty
80524
+ @jsii.member(jsii_name="LDAP")
80525
+ def LDAP(cls) -> "Port":
80526
+ '''Well-known LDAP port (TCP 389).'''
80527
+ return typing.cast("Port", jsii.sget(cls, "LDAP"))
80528
+
80529
+ @jsii.python.classproperty
80530
+ @jsii.member(jsii_name="MSSQL")
80531
+ def MSSQL(cls) -> "Port":
80532
+ '''Well-known Microsoft SQL Server port (TCP 1433).'''
80533
+ return typing.cast("Port", jsii.sget(cls, "MSSQL"))
80534
+
80535
+ @jsii.python.classproperty
80536
+ @jsii.member(jsii_name="MYSQL_AURORA")
80537
+ def MYSQL_AURORA(cls) -> "Port":
80538
+ '''Well-known MySQL and Aurora port (TCP 3306).'''
80539
+ return typing.cast("Port", jsii.sget(cls, "MYSQL_AURORA"))
80540
+
80541
+ @jsii.python.classproperty
80542
+ @jsii.member(jsii_name="NFS")
80543
+ def NFS(cls) -> "Port":
80544
+ '''Well-known NFS port (TCP 2049).'''
80545
+ return typing.cast("Port", jsii.sget(cls, "NFS"))
80546
+
80547
+ @jsii.python.classproperty
80548
+ @jsii.member(jsii_name="POP3")
80549
+ def POP3(cls) -> "Port":
80550
+ '''Well-known POP3 port (TCP 110).'''
80551
+ return typing.cast("Port", jsii.sget(cls, "POP3"))
80552
+
80553
+ @jsii.python.classproperty
80554
+ @jsii.member(jsii_name="POP3S")
80555
+ def POP3_S(cls) -> "Port":
80556
+ '''Well-known POP3S port (TCP 995).'''
80557
+ return typing.cast("Port", jsii.sget(cls, "POP3S"))
80558
+
80559
+ @jsii.python.classproperty
80560
+ @jsii.member(jsii_name="POSTGRES")
80561
+ def POSTGRES(cls) -> "Port":
80562
+ '''Well-known PostgreSQL port (TCP 5432).'''
80563
+ return typing.cast("Port", jsii.sget(cls, "POSTGRES"))
80564
+
80565
+ @jsii.python.classproperty
80566
+ @jsii.member(jsii_name="RDP")
80567
+ def RDP(cls) -> "Port":
80568
+ '''Well-known Microsoft Remote Desktop Protocol port (TCP 3389).'''
80569
+ return typing.cast("Port", jsii.sget(cls, "RDP"))
80570
+
80571
+ @jsii.python.classproperty
80572
+ @jsii.member(jsii_name="SMB")
80573
+ def SMB(cls) -> "Port":
80574
+ '''Well-known SMB port (TCP 445).'''
80575
+ return typing.cast("Port", jsii.sget(cls, "SMB"))
80576
+
80577
+ @jsii.python.classproperty
80578
+ @jsii.member(jsii_name="SMTP")
80579
+ def SMTP(cls) -> "Port":
80580
+ '''Well-known SMTP port (TCP 25).'''
80581
+ return typing.cast("Port", jsii.sget(cls, "SMTP"))
80582
+
80583
+ @jsii.python.classproperty
80584
+ @jsii.member(jsii_name="SSH")
80585
+ def SSH(cls) -> "Port":
80586
+ '''Well-known SSH port (TCP 22).'''
80587
+ return typing.cast("Port", jsii.sget(cls, "SSH"))
80588
+
80450
80589
  @builtins.property
80451
80590
  @jsii.member(jsii_name="canInlineRule")
80452
80591
  def can_inline_rule(self) -> builtins.bool:
@@ -81499,18 +81638,20 @@ class SecurityGroup(
81499
81638
  mutable=False
81500
81639
  )
81501
81640
 
81502
- :exampleMetadata: fixture=with-vpc infused
81641
+ :exampleMetadata: infused
81503
81642
 
81504
81643
  Example::
81505
81644
 
81506
- my_security_group_without_inline_rules = ec2.SecurityGroup(self, "SecurityGroup",
81645
+ # vpc: ec2.Vpc
81646
+
81647
+
81648
+ my_security_group = ec2.SecurityGroup(self, "SecurityGroup", vpc=vpc)
81649
+ autoscaling.AutoScalingGroup(self, "ASG",
81507
81650
  vpc=vpc,
81508
- description="Allow ssh access to ec2 instances",
81509
- allow_all_outbound=True,
81510
- disable_inline_rules=True
81651
+ instance_type=ec2.InstanceType.of(ec2.InstanceClass.BURSTABLE2, ec2.InstanceSize.MICRO),
81652
+ machine_image=ec2.MachineImage.latest_amazon_linux2(),
81653
+ security_group=my_security_group
81511
81654
  )
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
81655
  '''
81515
81656
 
81516
81657
  def __init__(
@@ -81970,15 +82111,13 @@ class SecurityGroupProps:
81970
82111
  # vpc: ec2.Vpc
81971
82112
 
81972
82113
 
81973
- security_group1 = ec2.SecurityGroup(self, "SecurityGroup1", vpc=vpc)
81974
- lb = elbv2.ApplicationLoadBalancer(self, "LB",
82114
+ my_security_group = ec2.SecurityGroup(self, "SecurityGroup", vpc=vpc)
82115
+ autoscaling.AutoScalingGroup(self, "ASG",
81975
82116
  vpc=vpc,
81976
- internet_facing=True,
81977
- security_group=security_group1
82117
+ instance_type=ec2.InstanceType.of(ec2.InstanceClass.BURSTABLE2, ec2.InstanceSize.MICRO),
82118
+ machine_image=ec2.MachineImage.latest_amazon_linux2(),
82119
+ security_group=my_security_group
81978
82120
  )
81979
-
81980
- security_group2 = ec2.SecurityGroup(self, "SecurityGroup2", vpc=vpc)
81981
- lb.add_security_group(security_group2)
81982
82121
  '''
81983
82122
  if __debug__:
81984
82123
  type_hints = typing.get_type_hints(_typecheckingstub__4e55e0c52b51f92e83b1f8d6b7a5b22268d0369a14dab808b8f2f5f233e5b622)
@@ -91384,7 +91523,7 @@ class NatInstanceProvider(
91384
91523
  :param key_name: (deprecated) Name of SSH keypair to grant access to instance. Default: - No SSH access will be possible.
91385
91524
  :param key_pair: The SSH keypair to grant access to the instance. Default: - No SSH access will be possible.
91386
91525
  :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
91526
+ :param security_group: (deprecated) Security Group for NAT instances. Default: - A new security group will be created
91388
91527
  :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
91528
 
91390
91529
  :stability: deprecated
@@ -91483,17 +91622,19 @@ class NatInstanceProviderV2(
91483
91622
 
91484
91623
  Example::
91485
91624
 
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
91625
+ nat_gateway_provider = ec2.NatProvider.instance_v2(
91626
+ instance_type=ec2.InstanceType("t3.small"),
91627
+ default_allowed_traffic=ec2.NatTrafficDirection.NONE
91492
91628
  )
91493
- ec2.Vpc(self, "TheVPC",
91494
- nat_gateway_provider=provider
91629
+ vpc = ec2.Vpc(self, "Vpc", nat_gateway_provider=nat_gateway_provider)
91630
+
91631
+ security_group = ec2.SecurityGroup(self, "SecurityGroup",
91632
+ vpc=vpc,
91633
+ allow_all_outbound=False
91495
91634
  )
91496
- provider.connections.allow_from(ec2.Peer.ipv4("1.2.3.4/8"), ec2.Port.tcp(80))
91635
+ security_group.add_egress_rule(ec2.Peer.any_ipv4(), ec2.Port.tcp(443))
91636
+ for gateway_instance in nat_gateway_provider.gateway_instances:
91637
+ gateway_instance.add_security_group(security_group)
91497
91638
  '''
91498
91639
 
91499
91640
  def __init__(
@@ -91515,7 +91656,7 @@ class NatInstanceProviderV2(
91515
91656
  :param key_name: (deprecated) Name of SSH keypair to grant access to instance. Default: - No SSH access will be possible.
91516
91657
  :param key_pair: The SSH keypair to grant access to the instance. Default: - No SSH access will be possible.
91517
91658
  :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
91659
+ :param security_group: (deprecated) Security Group for NAT instances. Default: - A new security group will be created
91519
91660
  :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
91661
  '''
91521
91662
  props = NatInstanceProps(
@@ -94785,9 +94926,11 @@ def _typecheckingstub__16b41182e007e05b84fd0c97afc1e26001e78a56de2eb5b10c9f809de
94785
94926
  scope: _constructs_77d1e7e8.Construct,
94786
94927
  id: builtins.str,
94787
94928
  *,
94788
- bgp_asn: jsii.Number,
94789
94929
  ip_address: builtins.str,
94790
94930
  type: builtins.str,
94931
+ bgp_asn: typing.Optional[jsii.Number] = None,
94932
+ bgp_asn_extended: typing.Optional[jsii.Number] = None,
94933
+ certificate_arn: typing.Optional[builtins.str] = None,
94791
94934
  device_name: typing.Optional[builtins.str] = None,
94792
94935
  tags: typing.Optional[typing.Sequence[typing.Union[_CfnTag_f6864754, typing.Dict[builtins.str, typing.Any]]]] = None,
94793
94936
  ) -> None:
@@ -94806,20 +94949,32 @@ def _typecheckingstub__a44104c4ad329cfdabba2866cf426d821fa85ba6f3aa04801988c746b
94806
94949
  """Type checking stubs"""
94807
94950
  pass
94808
94951
 
94809
- def _typecheckingstub__84dfb7d1775bd2bb124f990570c9a2ef23fafd01744cfe248fcb360562f57ca9(
94810
- value: jsii.Number,
94952
+ def _typecheckingstub__a312c99e6832f0396cbd7c4d05fbab836db0503cf37ecee5f1f64bd213516c2e(
94953
+ value: builtins.str,
94811
94954
  ) -> None:
94812
94955
  """Type checking stubs"""
94813
94956
  pass
94814
94957
 
94815
- def _typecheckingstub__a312c99e6832f0396cbd7c4d05fbab836db0503cf37ecee5f1f64bd213516c2e(
94958
+ def _typecheckingstub__ae973d5ca9904c069d03cbf10a1e3fdf7736cc00ca43663eb07598f97c4e5771(
94816
94959
  value: builtins.str,
94817
94960
  ) -> None:
94818
94961
  """Type checking stubs"""
94819
94962
  pass
94820
94963
 
94821
- def _typecheckingstub__ae973d5ca9904c069d03cbf10a1e3fdf7736cc00ca43663eb07598f97c4e5771(
94822
- value: builtins.str,
94964
+ def _typecheckingstub__84dfb7d1775bd2bb124f990570c9a2ef23fafd01744cfe248fcb360562f57ca9(
94965
+ value: typing.Optional[jsii.Number],
94966
+ ) -> None:
94967
+ """Type checking stubs"""
94968
+ pass
94969
+
94970
+ def _typecheckingstub__f41644d25c48e5c3c87a361ba478bdb4a18bf473fe1582fa35c6311f6d5284d8(
94971
+ value: typing.Optional[jsii.Number],
94972
+ ) -> None:
94973
+ """Type checking stubs"""
94974
+ pass
94975
+
94976
+ def _typecheckingstub__4a4b900e840c5be3a2b16a5177f91335cf813daeca359e549a639cb05a03ac63(
94977
+ value: typing.Optional[builtins.str],
94823
94978
  ) -> None:
94824
94979
  """Type checking stubs"""
94825
94980
  pass
@@ -94838,9 +94993,11 @@ def _typecheckingstub__05a111d13df5583de4721245805f1cb23e3c81e0e12774d2a044cf75b
94838
94993
 
94839
94994
  def _typecheckingstub__b0ef9a2e3e2b6937b21db500a1cd795126e924d9b920931a413ecdb668bfc7ec(
94840
94995
  *,
94841
- bgp_asn: jsii.Number,
94842
94996
  ip_address: builtins.str,
94843
94997
  type: builtins.str,
94998
+ bgp_asn: typing.Optional[jsii.Number] = None,
94999
+ bgp_asn_extended: typing.Optional[jsii.Number] = None,
95000
+ certificate_arn: typing.Optional[builtins.str] = None,
94844
95001
  device_name: typing.Optional[builtins.str] = None,
94845
95002
  tags: typing.Optional[typing.Sequence[typing.Union[_CfnTag_f6864754, typing.Dict[builtins.str, typing.Any]]]] = None,
94846
95003
  ) -> None:
@@ -97210,7 +97367,6 @@ def _typecheckingstub__da6f057643821e4198778db605300559763cd1d337144d841e7dd3934
97210
97367
  def _typecheckingstub__62e0d77a7fa9500aab5a08e932dc82213f11e05b31cf56f4654431c48342979e(
97211
97368
  *,
97212
97369
  auto_recovery: typing.Optional[builtins.str] = None,
97213
- reboot_migration: typing.Optional[builtins.str] = None,
97214
97370
  ) -> None:
97215
97371
  """Type checking stubs"""
97216
97372
  pass
@@ -99120,7 +99276,6 @@ def _typecheckingstub__f7f9c3e8bd9fe395c2fb15fd9d38e6ef1ebca888c954597574840d202
99120
99276
  destination_prefix_list_id: typing.Optional[builtins.str] = None,
99121
99277
  destination_security_group_id: typing.Optional[builtins.str] = None,
99122
99278
  from_port: typing.Optional[jsii.Number] = None,
99123
- source_security_group_id: typing.Optional[builtins.str] = None,
99124
99279
  to_port: typing.Optional[jsii.Number] = None,
99125
99280
  ) -> None:
99126
99281
  """Type checking stubs"""
@@ -100953,9 +101108,9 @@ def _typecheckingstub__762528618652de53ec01b9db873d15c1412ef510b68d36faf8e5193ee
100953
101108
  scope: _constructs_77d1e7e8.Construct,
100954
101109
  id: builtins.str,
100955
101110
  *,
101111
+ destination_cidr_block: builtins.str,
100956
101112
  transit_gateway_route_table_id: builtins.str,
100957
101113
  blackhole: typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]] = None,
100958
- destination_cidr_block: typing.Optional[builtins.str] = None,
100959
101114
  transit_gateway_attachment_id: typing.Optional[builtins.str] = None,
100960
101115
  ) -> None:
100961
101116
  """Type checking stubs"""
@@ -100973,20 +101128,20 @@ def _typecheckingstub__db248da6e580b35319fa4105c6aa56b32a97434942c5e6aa6364835dd
100973
101128
  """Type checking stubs"""
100974
101129
  pass
100975
101130
 
100976
- def _typecheckingstub__a3ff43d5668d80486662b5f29a818edf8b7a164143e8327503af53fea81d72e4(
101131
+ def _typecheckingstub__30150d874e802337a21fe5c33c5e59055a33af9ec33282c5c08706bcd1082c1c(
100977
101132
  value: builtins.str,
100978
101133
  ) -> None:
100979
101134
  """Type checking stubs"""
100980
101135
  pass
100981
101136
 
100982
- def _typecheckingstub__ae3c350b4ebbf2eafd4fffaf648073580cc8872edfcbb0622e12224667970a75(
100983
- value: typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]],
101137
+ def _typecheckingstub__a3ff43d5668d80486662b5f29a818edf8b7a164143e8327503af53fea81d72e4(
101138
+ value: builtins.str,
100984
101139
  ) -> None:
100985
101140
  """Type checking stubs"""
100986
101141
  pass
100987
101142
 
100988
- def _typecheckingstub__30150d874e802337a21fe5c33c5e59055a33af9ec33282c5c08706bcd1082c1c(
100989
- value: typing.Optional[builtins.str],
101143
+ def _typecheckingstub__ae3c350b4ebbf2eafd4fffaf648073580cc8872edfcbb0622e12224667970a75(
101144
+ value: typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]],
100990
101145
  ) -> None:
100991
101146
  """Type checking stubs"""
100992
101147
  pass
@@ -100999,9 +101154,9 @@ def _typecheckingstub__a94dba0eae14b14a0b432cb7e86de53fbec80e85adaa717d318a1fe9f
100999
101154
 
101000
101155
  def _typecheckingstub__234e56a6f757b6cae89b22252317937e5caf6081f899789f9dfaf239987ad5e3(
101001
101156
  *,
101157
+ destination_cidr_block: builtins.str,
101002
101158
  transit_gateway_route_table_id: builtins.str,
101003
101159
  blackhole: typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]] = None,
101004
- destination_cidr_block: typing.Optional[builtins.str] = None,
101005
101160
  transit_gateway_attachment_id: typing.Optional[builtins.str] = None,
101006
101161
  ) -> None:
101007
101162
  """Type checking stubs"""