aws-cdk-lib 2.162.0__py3-none-any.whl → 2.163.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 (59) hide show
  1. aws_cdk/__init__.py +5 -7
  2. aws_cdk/_jsii/__init__.py +1 -1
  3. aws_cdk/_jsii/{aws-cdk-lib@2.162.0.jsii.tgz → aws-cdk-lib@2.163.0.jsii.tgz} +0 -0
  4. aws_cdk/aws_apigatewayv2/__init__.py +7 -7
  5. aws_cdk/aws_appflow/__init__.py +30 -16
  6. aws_cdk/aws_appsync/__init__.py +11 -21
  7. aws_cdk/aws_autoscaling/__init__.py +123 -0
  8. aws_cdk/aws_b2bi/__init__.py +83 -57
  9. aws_cdk/aws_cloudformation/__init__.py +5 -7
  10. aws_cdk/aws_codebuild/__init__.py +19 -40
  11. aws_cdk/aws_codepipeline/__init__.py +88 -7
  12. aws_cdk/aws_cognito/__init__.py +282 -168
  13. aws_cdk/aws_dms/__init__.py +1076 -117
  14. aws_cdk/aws_docdb/__init__.py +19 -13
  15. aws_cdk/aws_dynamodb/__init__.py +43 -22
  16. aws_cdk/aws_ec2/__init__.py +1213 -38
  17. aws_cdk/aws_ecs/__init__.py +187 -18
  18. aws_cdk/aws_ecs_patterns/__init__.py +189 -27
  19. aws_cdk/aws_efs/__init__.py +56 -37
  20. aws_cdk/aws_eks/__init__.py +6 -2
  21. aws_cdk/aws_elasticache/__init__.py +118 -118
  22. aws_cdk/aws_elasticloadbalancingv2/__init__.py +21 -1
  23. aws_cdk/aws_emr/__init__.py +124 -57
  24. aws_cdk/aws_events/__init__.py +40 -0
  25. aws_cdk/aws_fms/__init__.py +757 -8
  26. aws_cdk/aws_fsx/__init__.py +245 -10
  27. aws_cdk/aws_gamelift/__init__.py +121 -0
  28. aws_cdk/aws_glue/__init__.py +344 -61
  29. aws_cdk/aws_iam/__init__.py +44 -0
  30. aws_cdk/aws_identitystore/__init__.py +4 -2
  31. aws_cdk/aws_iot/__init__.py +40 -12
  32. aws_cdk/aws_kinesis/__init__.py +239 -0
  33. aws_cdk/aws_kms/__init__.py +92 -3
  34. aws_cdk/aws_lambda/__init__.py +2 -2
  35. aws_cdk/aws_mediapackagev2/__init__.py +26 -10
  36. aws_cdk/aws_memorydb/__init__.py +7 -7
  37. aws_cdk/aws_networkfirewall/__init__.py +89 -0
  38. aws_cdk/aws_qbusiness/__init__.py +51 -7
  39. aws_cdk/aws_quicksight/__init__.py +221 -87
  40. aws_cdk/aws_rds/__init__.py +376 -75
  41. aws_cdk/aws_redshift/__init__.py +493 -13
  42. aws_cdk/aws_route53profiles/__init__.py +4 -2
  43. aws_cdk/aws_route53resolver/__init__.py +26 -60
  44. aws_cdk/aws_s3/__init__.py +104 -4
  45. aws_cdk/aws_s3express/__init__.py +73 -13
  46. aws_cdk/aws_s3outposts/__init__.py +21 -12
  47. aws_cdk/aws_sagemaker/__init__.py +4 -44
  48. aws_cdk/aws_ssmquicksetup/__init__.py +2 -2
  49. aws_cdk/aws_stepfunctions/__init__.py +529 -156
  50. aws_cdk/aws_transfer/__init__.py +15 -4
  51. aws_cdk/aws_waf/__init__.py +11 -11
  52. aws_cdk/aws_wafregional/__init__.py +12 -12
  53. aws_cdk/aws_wisdom/__init__.py +710 -5
  54. {aws_cdk_lib-2.162.0.dist-info → aws_cdk_lib-2.163.0.dist-info}/METADATA +1 -1
  55. {aws_cdk_lib-2.162.0.dist-info → aws_cdk_lib-2.163.0.dist-info}/RECORD +59 -59
  56. {aws_cdk_lib-2.162.0.dist-info → aws_cdk_lib-2.163.0.dist-info}/LICENSE +0 -0
  57. {aws_cdk_lib-2.162.0.dist-info → aws_cdk_lib-2.163.0.dist-info}/NOTICE +0 -0
  58. {aws_cdk_lib-2.162.0.dist-info → aws_cdk_lib-2.163.0.dist-info}/WHEEL +0 -0
  59. {aws_cdk_lib-2.162.0.dist-info → aws_cdk_lib-2.163.0.dist-info}/top_level.txt +0 -0
@@ -2105,6 +2105,23 @@ instance = ec2.Instance(self, "Instance",
2105
2105
  > NOTE: You must use an instance type and operating system that support Nitro Enclaves.
2106
2106
  > For more information, see [Requirements](https://docs.aws.amazon.com/enclaves/latest/user/nitro-enclave.html#nitro-enclave-reqs).
2107
2107
 
2108
+ ### Enabling Termination Protection
2109
+
2110
+ You can enable [Termination Protection](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Using_ChangingDisableAPITermination.html) for
2111
+ your EC2 instances by setting the `disableApiTermination` property to `true`. Termination Protection controls whether the instance can be terminated using the AWS Management Console, AWS Command Line Interface (AWS CLI), or API.
2112
+
2113
+ ```python
2114
+ # vpc: ec2.Vpc
2115
+
2116
+
2117
+ instance = ec2.Instance(self, "Instance",
2118
+ instance_type=ec2.InstanceType.of(ec2.InstanceClass.M5, ec2.InstanceSize.XLARGE),
2119
+ machine_image=ec2.AmazonLinuxImage(),
2120
+ vpc=vpc,
2121
+ disable_api_termination=True
2122
+ )
2123
+ ```
2124
+
2108
2125
  ### Enabling Instance Hibernation
2109
2126
 
2110
2127
  You can enable [Instance Hibernation](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Hibernate.html) for
@@ -5069,6 +5086,7 @@ class AwsIpamProps:
5069
5086
  "require_imdsv2": "requireImdsv2",
5070
5087
  "security_group": "securityGroup",
5071
5088
  "subnet_selection": "subnetSelection",
5089
+ "user_data_causes_replacement": "userDataCausesReplacement",
5072
5090
  },
5073
5091
  )
5074
5092
  class BastionHostLinuxProps:
@@ -5086,6 +5104,7 @@ class BastionHostLinuxProps:
5086
5104
  require_imdsv2: typing.Optional[builtins.bool] = None,
5087
5105
  security_group: typing.Optional["ISecurityGroup"] = None,
5088
5106
  subnet_selection: typing.Optional[typing.Union["SubnetSelection", typing.Dict[builtins.str, typing.Any]]] = None,
5107
+ user_data_causes_replacement: typing.Optional[builtins.bool] = None,
5089
5108
  ) -> None:
5090
5109
  '''Properties of the bastion host.
5091
5110
 
@@ -5100,6 +5119,7 @@ class BastionHostLinuxProps:
5100
5119
  :param require_imdsv2: Whether IMDSv2 should be required on this instance. Default: - false
5101
5120
  :param security_group: Security Group to assign to this instance. Default: - create new security group with no inbound and all outbound traffic allowed
5102
5121
  :param subnet_selection: Select the subnets to run the bastion host in. Set this to PUBLIC if you need to connect to this instance via the internet and cannot use SSM. You have to allow port 22 manually by using the connections field Default: - private subnets of the supplied VPC
5122
+ :param user_data_causes_replacement: Determines whether changes to the UserData will force instance replacement. Depending on the EC2 instance type, modifying the UserData may either restart or replace the instance: - Instance store-backed instances are replaced. - EBS-backed instances are restarted. Note that by default, restarting does not execute the updated UserData, so an alternative mechanism is needed to ensure the instance re-executes the UserData. When set to ``true``, the instance's Logical ID will depend on the UserData, causing CloudFormation to replace the instance if the UserData changes. Default: - ``true`` if ``initOptions`` is specified, otherwise ``false``.
5103
5123
 
5104
5124
  :exampleMetadata: fixture=with-vpc infused
5105
5125
 
@@ -5132,6 +5152,7 @@ class BastionHostLinuxProps:
5132
5152
  check_type(argname="argument require_imdsv2", value=require_imdsv2, expected_type=type_hints["require_imdsv2"])
5133
5153
  check_type(argname="argument security_group", value=security_group, expected_type=type_hints["security_group"])
5134
5154
  check_type(argname="argument subnet_selection", value=subnet_selection, expected_type=type_hints["subnet_selection"])
5155
+ check_type(argname="argument user_data_causes_replacement", value=user_data_causes_replacement, expected_type=type_hints["user_data_causes_replacement"])
5135
5156
  self._values: typing.Dict[builtins.str, typing.Any] = {
5136
5157
  "vpc": vpc,
5137
5158
  }
@@ -5155,6 +5176,8 @@ class BastionHostLinuxProps:
5155
5176
  self._values["security_group"] = security_group
5156
5177
  if subnet_selection is not None:
5157
5178
  self._values["subnet_selection"] = subnet_selection
5179
+ if user_data_causes_replacement is not None:
5180
+ self._values["user_data_causes_replacement"] = user_data_causes_replacement
5158
5181
 
5159
5182
  @builtins.property
5160
5183
  def vpc(self) -> "IVpc":
@@ -5268,6 +5291,27 @@ class BastionHostLinuxProps:
5268
5291
  result = self._values.get("subnet_selection")
5269
5292
  return typing.cast(typing.Optional["SubnetSelection"], result)
5270
5293
 
5294
+ @builtins.property
5295
+ def user_data_causes_replacement(self) -> typing.Optional[builtins.bool]:
5296
+ '''Determines whether changes to the UserData will force instance replacement.
5297
+
5298
+ Depending on the EC2 instance type, modifying the UserData may either restart
5299
+ or replace the instance:
5300
+
5301
+ - Instance store-backed instances are replaced.
5302
+ - EBS-backed instances are restarted.
5303
+
5304
+ Note that by default, restarting does not execute the updated UserData, so an alternative
5305
+ mechanism is needed to ensure the instance re-executes the UserData.
5306
+
5307
+ When set to ``true``, the instance's Logical ID will depend on the UserData, causing
5308
+ CloudFormation to replace the instance if the UserData changes.
5309
+
5310
+ :default: - ``true`` if ``initOptions`` is specified, otherwise ``false``.
5311
+ '''
5312
+ result = self._values.get("user_data_causes_replacement")
5313
+ return typing.cast(typing.Optional[builtins.bool], result)
5314
+
5271
5315
  def __eq__(self, rhs: typing.Any) -> builtins.bool:
5272
5316
  return isinstance(rhs, self.__class__) and rhs._values == self._values
5273
5317
 
@@ -5566,7 +5610,8 @@ class CfnCapacityReservation(
5566
5610
  value="value"
5567
5611
  )]
5568
5612
  )],
5569
- tenancy="tenancy"
5613
+ tenancy="tenancy",
5614
+ unused_reservation_billing_owner_id="unusedReservationBillingOwnerId"
5570
5615
  )
5571
5616
  '''
5572
5617
 
@@ -5588,6 +5633,7 @@ class CfnCapacityReservation(
5588
5633
  placement_group_arn: typing.Optional[builtins.str] = None,
5589
5634
  tag_specifications: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union["CfnCapacityReservation.TagSpecificationProperty", typing.Dict[builtins.str, typing.Any]]]]]] = None,
5590
5635
  tenancy: typing.Optional[builtins.str] = None,
5636
+ unused_reservation_billing_owner_id: typing.Optional[builtins.str] = None,
5591
5637
  ) -> None:
5592
5638
  '''
5593
5639
  :param scope: Scope in which this resource is defined.
@@ -5605,6 +5651,7 @@ class CfnCapacityReservation(
5605
5651
  :param placement_group_arn: The Amazon Resource Name (ARN) of the cluster placement group in which to create the Capacity Reservation. For more information, see `Capacity Reservations for cluster placement groups <https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/cr-cpg.html>`_ in the *Amazon EC2 User Guide* .
5606
5652
  :param tag_specifications: The tags to apply to the Capacity Reservation during launch.
5607
5653
  :param tenancy: Indicates the tenancy of the Capacity Reservation. A Capacity Reservation can have one of the following tenancy settings:. - ``default`` - The Capacity Reservation is created on hardware that is shared with other AWS accounts . - ``dedicated`` - The Capacity Reservation is created on single-tenant hardware that is dedicated to a single AWS account .
5654
+ :param unused_reservation_billing_owner_id:
5608
5655
  '''
5609
5656
  if __debug__:
5610
5657
  type_hints = typing.get_type_hints(_typecheckingstub__96fb3bc559aaa9df971e86ea7cdd3cdc3de550019a2d3bf247d3fb169b5e9f7e)
@@ -5624,6 +5671,7 @@ class CfnCapacityReservation(
5624
5671
  placement_group_arn=placement_group_arn,
5625
5672
  tag_specifications=tag_specifications,
5626
5673
  tenancy=tenancy,
5674
+ unused_reservation_billing_owner_id=unused_reservation_billing_owner_id,
5627
5675
  )
5628
5676
 
5629
5677
  jsii.create(self.__class__, self, [scope, id, props])
@@ -5917,6 +5965,21 @@ class CfnCapacityReservation(
5917
5965
  check_type(argname="argument value", value=value, expected_type=type_hints["value"])
5918
5966
  jsii.set(self, "tenancy", value) # pyright: ignore[reportArgumentType]
5919
5967
 
5968
+ @builtins.property
5969
+ @jsii.member(jsii_name="unusedReservationBillingOwnerId")
5970
+ def unused_reservation_billing_owner_id(self) -> typing.Optional[builtins.str]:
5971
+ return typing.cast(typing.Optional[builtins.str], jsii.get(self, "unusedReservationBillingOwnerId"))
5972
+
5973
+ @unused_reservation_billing_owner_id.setter
5974
+ def unused_reservation_billing_owner_id(
5975
+ self,
5976
+ value: typing.Optional[builtins.str],
5977
+ ) -> None:
5978
+ if __debug__:
5979
+ type_hints = typing.get_type_hints(_typecheckingstub__2a09cfe18a64a35ca3513da8b832d14a3961e5101708c3d59880377b4beea919)
5980
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
5981
+ jsii.set(self, "unusedReservationBillingOwnerId", value) # pyright: ignore[reportArgumentType]
5982
+
5920
5983
  @jsii.data_type(
5921
5984
  jsii_type="aws-cdk-lib.aws_ec2.CfnCapacityReservation.TagSpecificationProperty",
5922
5985
  jsii_struct_bases=[],
@@ -6769,6 +6832,7 @@ class CfnCapacityReservationFleetProps:
6769
6832
  "placement_group_arn": "placementGroupArn",
6770
6833
  "tag_specifications": "tagSpecifications",
6771
6834
  "tenancy": "tenancy",
6835
+ "unused_reservation_billing_owner_id": "unusedReservationBillingOwnerId",
6772
6836
  },
6773
6837
  )
6774
6838
  class CfnCapacityReservationProps:
@@ -6788,6 +6852,7 @@ class CfnCapacityReservationProps:
6788
6852
  placement_group_arn: typing.Optional[builtins.str] = None,
6789
6853
  tag_specifications: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union[CfnCapacityReservation.TagSpecificationProperty, typing.Dict[builtins.str, typing.Any]]]]]] = None,
6790
6854
  tenancy: typing.Optional[builtins.str] = None,
6855
+ unused_reservation_billing_owner_id: typing.Optional[builtins.str] = None,
6791
6856
  ) -> None:
6792
6857
  '''Properties for defining a ``CfnCapacityReservation``.
6793
6858
 
@@ -6804,6 +6869,7 @@ class CfnCapacityReservationProps:
6804
6869
  :param placement_group_arn: The Amazon Resource Name (ARN) of the cluster placement group in which to create the Capacity Reservation. For more information, see `Capacity Reservations for cluster placement groups <https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/cr-cpg.html>`_ in the *Amazon EC2 User Guide* .
6805
6870
  :param tag_specifications: The tags to apply to the Capacity Reservation during launch.
6806
6871
  :param tenancy: Indicates the tenancy of the Capacity Reservation. A Capacity Reservation can have one of the following tenancy settings:. - ``default`` - The Capacity Reservation is created on hardware that is shared with other AWS accounts . - ``dedicated`` - The Capacity Reservation is created on single-tenant hardware that is dedicated to a single AWS account .
6872
+ :param unused_reservation_billing_owner_id:
6807
6873
 
6808
6874
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-capacityreservation.html
6809
6875
  :exampleMetadata: fixture=_generated
@@ -6835,7 +6901,8 @@ class CfnCapacityReservationProps:
6835
6901
  value="value"
6836
6902
  )]
6837
6903
  )],
6838
- tenancy="tenancy"
6904
+ tenancy="tenancy",
6905
+ unused_reservation_billing_owner_id="unusedReservationBillingOwnerId"
6839
6906
  )
6840
6907
  '''
6841
6908
  if __debug__:
@@ -6853,6 +6920,7 @@ class CfnCapacityReservationProps:
6853
6920
  check_type(argname="argument placement_group_arn", value=placement_group_arn, expected_type=type_hints["placement_group_arn"])
6854
6921
  check_type(argname="argument tag_specifications", value=tag_specifications, expected_type=type_hints["tag_specifications"])
6855
6922
  check_type(argname="argument tenancy", value=tenancy, expected_type=type_hints["tenancy"])
6923
+ check_type(argname="argument unused_reservation_billing_owner_id", value=unused_reservation_billing_owner_id, expected_type=type_hints["unused_reservation_billing_owner_id"])
6856
6924
  self._values: typing.Dict[builtins.str, typing.Any] = {
6857
6925
  "availability_zone": availability_zone,
6858
6926
  "instance_count": instance_count,
@@ -6877,6 +6945,8 @@ class CfnCapacityReservationProps:
6877
6945
  self._values["tag_specifications"] = tag_specifications
6878
6946
  if tenancy is not None:
6879
6947
  self._values["tenancy"] = tenancy
6948
+ if unused_reservation_billing_owner_id is not None:
6949
+ self._values["unused_reservation_billing_owner_id"] = unused_reservation_billing_owner_id
6880
6950
 
6881
6951
  @builtins.property
6882
6952
  def availability_zone(self) -> builtins.str:
@@ -7032,6 +7102,14 @@ class CfnCapacityReservationProps:
7032
7102
  result = self._values.get("tenancy")
7033
7103
  return typing.cast(typing.Optional[builtins.str], result)
7034
7104
 
7105
+ @builtins.property
7106
+ def unused_reservation_billing_owner_id(self) -> typing.Optional[builtins.str]:
7107
+ '''
7108
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-capacityreservation.html#cfn-ec2-capacityreservation-unusedreservationbillingownerid
7109
+ '''
7110
+ result = self._values.get("unused_reservation_billing_owner_id")
7111
+ return typing.cast(typing.Optional[builtins.str], result)
7112
+
7035
7113
  def __eq__(self, rhs: typing.Any) -> builtins.bool:
7036
7114
  return isinstance(rhs, self.__class__) and rhs._values == self._values
7037
7115
 
@@ -11735,13 +11813,13 @@ class CfnEC2Fleet(
11735
11813
 
11736
11814
  Attribute-based instance type selection is only supported when using Auto Scaling groups, EC2 Fleet, and Spot Fleet to launch instances. If you plan to use the launch template in the `launch instance wizard <https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-launch-instance-wizard.html>`_ , or with the `RunInstances <https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_RunInstances.html>`_ API or `AWS::EC2::Instance <https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance.html>`_ AWS CloudFormation resource, you can't specify ``InstanceRequirements`` .
11737
11815
 
11738
- For more information, see `Attribute-based instance type selection for EC2 Fleet <https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-fleet-attribute-based-instance-type-selection.html>`_ , `Attribute-based instance type selection for Spot Fleet <https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/spot-fleet-attribute-based-instance-type-selection.html>`_ , and `Spot placement score <https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/spot-placement-score.html>`_ in the *Amazon EC2 User Guide* .
11816
+ For more information, see `Specify attributes for instance type selection for EC2 Fleet or Spot Fleet <https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-fleet-attribute-based-instance-type-selection.html>`_ and `Spot placement score <https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/spot-placement-score.html>`_ in the *Amazon EC2 User Guide* .
11739
11817
 
11740
11818
  :param accelerator_count: The minimum and maximum number of accelerators (GPUs, FPGAs, or AWS Inferentia chips) on an instance. To exclude accelerator-enabled instance types, set ``Max`` to ``0`` . Default: No minimum or maximum limits
11741
11819
  :param accelerator_manufacturers: Indicates whether instance types must have accelerators by specific manufacturers. - For instance types with AWS devices, specify ``amazon-web-services`` . - For instance types with AMD devices, specify ``amd`` . - For instance types with Habana devices, specify ``habana`` . - For instance types with NVIDIA devices, specify ``nvidia`` . - For instance types with Xilinx devices, specify ``xilinx`` . Default: Any manufacturer
11742
11820
  :param accelerator_names: The accelerators that must be on the instance type. - For instance types with NVIDIA A10G GPUs, specify ``a10g`` . - For instance types with NVIDIA A100 GPUs, specify ``a100`` . - For instance types with NVIDIA H100 GPUs, specify ``h100`` . - For instance types with AWS Inferentia chips, specify ``inferentia`` . - For instance types with NVIDIA GRID K520 GPUs, specify ``k520`` . - For instance types with NVIDIA K80 GPUs, specify ``k80`` . - For instance types with NVIDIA M60 GPUs, specify ``m60`` . - For instance types with AMD Radeon Pro V520 GPUs, specify ``radeon-pro-v520`` . - For instance types with NVIDIA T4 GPUs, specify ``t4`` . - For instance types with NVIDIA T4G GPUs, specify ``t4g`` . - For instance types with Xilinx VU9P FPGAs, specify ``vu9p`` . - For instance types with NVIDIA V100 GPUs, specify ``v100`` . Default: Any accelerator
11743
11821
  :param accelerator_total_memory_mib: The minimum and maximum amount of total accelerator memory, in MiB. Default: No minimum or maximum limits
11744
- :param accelerator_types: The accelerator types that must be on the instance type. - To include instance types with GPU hardware, specify ``gpu`` . - To include instance types with FPGA hardware, specify ``fpga`` . - To include instance types with inference hardware, specify ``inference`` . Default: Any accelerator type
11822
+ :param accelerator_types: The accelerator types that must be on the instance type. - To include instance types with GPU hardware, specify ``gpu`` . - To include instance types with FPGA hardware, specify ``fpga`` . Default: Any accelerator type
11745
11823
  :param allowed_instance_types: The instance types to apply your specified attributes against. All other instance types are ignored, even if they match your specified attributes. You can use strings with one or more wild cards, represented by an asterisk ( ``*`` ), to allow an instance type, size, or generation. The following are examples: ``m5.8xlarge`` , ``c5*.*`` , ``m5a.*`` , ``r*`` , ``*3*`` . For example, if you specify ``c5*`` ,Amazon EC2 will allow the entire C5 instance family, which includes all C5a and C5n instance types. If you specify ``m5a.*`` , Amazon EC2 will allow all the M5a instance types, but not the M5n instance types. .. epigraph:: If you specify ``AllowedInstanceTypes`` , you can't specify ``ExcludedInstanceTypes`` . Default: All instance types
11746
11824
  :param bare_metal: Indicates whether bare metal instance types must be included, excluded, or required. - To include bare metal instance types, specify ``included`` . - To require only bare metal instance types, specify ``required`` . - To exclude bare metal instance types, specify ``excluded`` . Default: ``excluded``
11747
11825
  :param baseline_ebs_bandwidth_mbps: The minimum and maximum baseline bandwidth to Amazon EBS, in Mbps. For more information, see `Amazon EBS–optimized instances <https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-optimized.html>`_ in the *Amazon EC2 User Guide* . Default: No minimum or maximum limits
@@ -11978,7 +12056,6 @@ class CfnEC2Fleet(
11978
12056
 
11979
12057
  - To include instance types with GPU hardware, specify ``gpu`` .
11980
12058
  - To include instance types with FPGA hardware, specify ``fpga`` .
11981
- - To include instance types with inference hardware, specify ``inference`` .
11982
12059
 
11983
12060
  Default: Any accelerator type
11984
12061
 
@@ -19488,7 +19565,7 @@ class CfnInstance(
19488
19565
  :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``
19489
19566
  :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``
19490
19567
  :param elastic_gpu_specifications: An elastic GPU to associate with the instance. .. epigraph:: Amazon Elastic Graphics reached end of life on January 8, 2024.
19491
- :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/>`_ .
19568
+ :param elastic_inference_accelerators: An elastic inference accelerator to associate with the instance. .. epigraph:: Amazon Elastic Inference is no longer available.
19492
19569
  :param enclave_options: Indicates whether the instance is enabled for AWS Nitro Enclaves.
19493
19570
  :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 Amazon EC2 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.
19494
19571
  :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.
@@ -22134,7 +22211,9 @@ class CfnInstanceConnectEndpoint(
22134
22211
  ):
22135
22212
  '''Creates an EC2 Instance Connect Endpoint.
22136
22213
 
22137
- An EC2 Instance Connect Endpoint allows you to connect to an instance, without requiring the instance to have a public IPv4 address. For more information, see `Connect to your instances without requiring a public IPv4 address using EC2 Instance Connect Endpoint <https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Connect-using-EC2-Instance-Connect-Endpoint.html>`_ in the *Amazon EC2 User Guide* .
22214
+ An EC2 Instance Connect Endpoint allows you to connect to an instance, without requiring the instance to have a public IPv4 address. For more information, see `Connect to your instances using EC2 Instance Connect Endpoint <https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Connect-using-EC2-Instance-Connect-Endpoint.html>`_ in the *Amazon EC2 User Guide* .
22215
+
22216
+ With the replacement update behavior, AWS CloudFormation usually creates the new resource first, changes references to point to the new resource, and then deletes the old resource. However, you can create only one EC2 Instance Connect Endpoint per VPC, so the replacement process fails. If you need to modify an EC2 Instance Connect Endpoint, you must replace the resource manually.
22138
22217
 
22139
22218
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-instanceconnectendpoint.html
22140
22219
  :cloudformationResource: AWS::EC2::InstanceConnectEndpoint
@@ -22560,7 +22639,7 @@ class CfnInstanceProps:
22560
22639
  :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``
22561
22640
  :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``
22562
22641
  :param elastic_gpu_specifications: An elastic GPU to associate with the instance. .. epigraph:: Amazon Elastic Graphics reached end of life on January 8, 2024.
22563
- :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/>`_ .
22642
+ :param elastic_inference_accelerators: An elastic inference accelerator to associate with the instance. .. epigraph:: Amazon Elastic Inference is no longer available.
22564
22643
  :param enclave_options: Indicates whether the instance is enabled for AWS Nitro Enclaves.
22565
22644
  :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 Amazon EC2 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.
22566
22645
  :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.
@@ -22982,7 +23061,7 @@ class CfnInstanceProps:
22982
23061
 
22983
23062
  .. epigraph::
22984
23063
 
22985
- 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/>`_ .
23064
+ Amazon Elastic Inference is no longer available.
22986
23065
 
22987
23066
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-instance.html#cfn-ec2-instance-elasticinferenceaccelerators
22988
23067
  '''
@@ -24900,7 +24979,7 @@ class CfnLaunchTemplate(
24900
24979
  :param delete_on_termination: Indicates whether the EBS volume is deleted on instance termination.
24901
24980
  :param encrypted: Indicates whether the EBS volume is encrypted. Encrypted volumes can only be attached to instances that support Amazon EBS encryption. If you are creating a volume from a snapshot, you can't specify an encryption value.
24902
24981
  :param iops: The number of I/O operations per second (IOPS). For ``gp3`` , ``io1`` , and ``io2`` volumes, this represents the number of IOPS that are provisioned for the volume. For ``gp2`` volumes, this represents the baseline performance of the volume and the rate at which the volume accumulates I/O credits for bursting. The following are the supported values for each volume type: - ``gp3`` : 3,000 - 16,000 IOPS - ``io1`` : 100 - 64,000 IOPS - ``io2`` : 100 - 256,000 IOPS For ``io2`` volumes, you can achieve up to 256,000 IOPS on `instances built on the Nitro System <https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html#ec2-nitro-instances>`_ . On other instances, you can achieve performance up to 32,000 IOPS. This parameter is supported for ``io1`` , ``io2`` , and ``gp3`` volumes only.
24903
- :param kms_key_id: The ARN of the symmetric AWS Key Management Service ( AWS KMS ) CMK used for encryption.
24982
+ :param kms_key_id: Identifier (key ID, key alias, key ARN, or alias ARN) of the customer managed KMS key to use for EBS encryption.
24904
24983
  :param snapshot_id: The ID of the snapshot.
24905
24984
  :param throughput: The throughput to provision for a ``gp3`` volume, with a maximum of 1,000 MiB/s. Valid Range: Minimum value of 125. Maximum value of 1000.
24906
24985
  :param volume_size: The size of the volume, in GiBs. You must specify either a snapshot ID or a volume size. The following are the supported volumes sizes for each volume type: - ``gp2`` and ``gp3`` : 1 - 16,384 GiB - ``io1`` : 4 - 16,384 GiB - ``io2`` : 4 - 65,536 GiB - ``st1`` and ``sc1`` : 125 - 16,384 GiB - ``standard`` : 1 - 1024 GiB
@@ -25001,7 +25080,7 @@ class CfnLaunchTemplate(
25001
25080
 
25002
25081
  @builtins.property
25003
25082
  def kms_key_id(self) -> typing.Optional[builtins.str]:
25004
- '''The ARN of the symmetric AWS Key Management Service ( AWS KMS ) CMK used for encryption.
25083
+ '''Identifier (key ID, key alias, key ARN, or alias ARN) of the customer managed KMS key to use for EBS encryption.
25005
25084
 
25006
25085
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-ebs.html#cfn-ec2-launchtemplate-ebs-kmskeyid
25007
25086
  '''
@@ -25626,13 +25705,13 @@ class CfnLaunchTemplate(
25626
25705
 
25627
25706
  Attribute-based instance type selection is only supported when using Auto Scaling groups, EC2 Fleet, and Spot Fleet to launch instances. If you plan to use the launch template in the `launch instance wizard <https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-launch-instance-wizard.html>`_ , or with the `RunInstances <https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_RunInstances.html>`_ API or `AWS::EC2::Instance <https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance.html>`_ AWS CloudFormation resource, you can't specify ``InstanceRequirements`` .
25628
25707
 
25629
- For more information, see `Attribute-based instance type selection for EC2 Fleet <https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-fleet-attribute-based-instance-type-selection.html>`_ , `Attribute-based instance type selection for Spot Fleet <https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/spot-fleet-attribute-based-instance-type-selection.html>`_ , and `Spot placement score <https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/spot-placement-score.html>`_ in the *Amazon EC2 User Guide* .
25708
+ For more information, see `Specify attributes for instance type selection for EC2 Fleet or Spot Fleet <https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-fleet-attribute-based-instance-type-selection.html>`_ and `Spot placement score <https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/spot-placement-score.html>`_ in the *Amazon EC2 User Guide* .
25630
25709
 
25631
25710
  :param accelerator_count: The minimum and maximum number of accelerators (GPUs, FPGAs, or AWS Inferentia chips) on an instance. To exclude accelerator-enabled instance types, set ``Max`` to ``0`` . Default: No minimum or maximum limits
25632
25711
  :param accelerator_manufacturers: Indicates whether instance types must have accelerators by specific manufacturers. - For instance types with AWS devices, specify ``amazon-web-services`` . - For instance types with AMD devices, specify ``amd`` . - For instance types with Habana devices, specify ``habana`` . - For instance types with NVIDIA devices, specify ``nvidia`` . - For instance types with Xilinx devices, specify ``xilinx`` . Default: Any manufacturer
25633
25712
  :param accelerator_names: The accelerators that must be on the instance type. - For instance types with NVIDIA A10G GPUs, specify ``a10g`` . - For instance types with NVIDIA A100 GPUs, specify ``a100`` . - For instance types with NVIDIA H100 GPUs, specify ``h100`` . - For instance types with AWS Inferentia chips, specify ``inferentia`` . - For instance types with NVIDIA GRID K520 GPUs, specify ``k520`` . - For instance types with NVIDIA K80 GPUs, specify ``k80`` . - For instance types with NVIDIA M60 GPUs, specify ``m60`` . - For instance types with AMD Radeon Pro V520 GPUs, specify ``radeon-pro-v520`` . - For instance types with NVIDIA T4 GPUs, specify ``t4`` . - For instance types with NVIDIA T4G GPUs, specify ``t4g`` . - For instance types with Xilinx VU9P FPGAs, specify ``vu9p`` . - For instance types with NVIDIA V100 GPUs, specify ``v100`` . Default: Any accelerator
25634
25713
  :param accelerator_total_memory_mib: The minimum and maximum amount of total accelerator memory, in MiB. Default: No minimum or maximum limits
25635
- :param accelerator_types: The accelerator types that must be on the instance type. - For instance types with GPU accelerators, specify ``gpu`` . - For instance types with FPGA accelerators, specify ``fpga`` . - For instance types with inference accelerators, specify ``inference`` . Default: Any accelerator type
25714
+ :param accelerator_types: The accelerator types that must be on the instance type. - For instance types with GPU accelerators, specify ``gpu`` . - For instance types with FPGA accelerators, specify ``fpga`` . Default: Any accelerator type
25636
25715
  :param allowed_instance_types: The instance types to apply your specified attributes against. All other instance types are ignored, even if they match your specified attributes. You can use strings with one or more wild cards, represented by an asterisk ( ``*`` ), to allow an instance type, size, or generation. The following are examples: ``m5.8xlarge`` , ``c5*.*`` , ``m5a.*`` , ``r*`` , ``*3*`` . For example, if you specify ``c5*`` ,Amazon EC2 will allow the entire C5 instance family, which includes all C5a and C5n instance types. If you specify ``m5a.*`` , Amazon EC2 will allow all the M5a instance types, but not the M5n instance types. .. epigraph:: If you specify ``AllowedInstanceTypes`` , you can't specify ``ExcludedInstanceTypes`` . Default: All instance types
25637
25716
  :param bare_metal: Indicates whether bare metal instance types must be included, excluded, or required. - To include bare metal instance types, specify ``included`` . - To require only bare metal instance types, specify ``required`` . - To exclude bare metal instance types, specify ``excluded`` . Default: ``excluded``
25638
25717
  :param baseline_ebs_bandwidth_mbps: The minimum and maximum baseline bandwidth to Amazon EBS, in Mbps. For more information, see `Amazon EBS–optimized instances <https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-optimized.html>`_ in the *Amazon EC2 User Guide* . Default: No minimum or maximum limits
@@ -25869,7 +25948,6 @@ class CfnLaunchTemplate(
25869
25948
 
25870
25949
  - For instance types with GPU accelerators, specify ``gpu`` .
25871
25950
  - For instance types with FPGA accelerators, specify ``fpga`` .
25872
- - For instance types with inference accelerators, specify ``inference`` .
25873
25951
 
25874
25952
  Default: Any accelerator type
25875
25953
 
@@ -26460,14 +26538,14 @@ class CfnLaunchTemplate(
26460
26538
  :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.
26461
26539
  :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.
26462
26540
  :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.
26463
- :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.
26541
+ :param elastic_inference_accelerators: .. epigraph:: Amazon Elastic Inference is no longer available. 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.
26464
26542
  :param enclave_options: Indicates whether the instance is enabled for AWS Nitro Enclaves. For more information, see `What is AWS Nitro Enclaves? <https://docs.aws.amazon.com/enclaves/latest/user/nitro-enclave.html>`_ in the *AWS Nitro Enclaves User Guide* . You can't enable AWS Nitro Enclaves and hibernation on the same instance.
26465
26543
  :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 Amazon EC2 instance <https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Hibernate.html>`_ in the *Amazon EC2 User Guide* .
26466
26544
  :param iam_instance_profile: The name or Amazon Resource Name (ARN) of an IAM instance profile.
26467
26545
  :param image_id: The ID of the AMI. Alternatively, you can specify a Systems Manager parameter, which will resolve to an AMI ID on launch. Valid formats: - ``ami-0ac394d6a3example`` - ``resolve:ssm:parameter-name`` - ``resolve:ssm:parameter-name:version-number`` - ``resolve:ssm:parameter-name:label`` For more information, see `Use a Systems Manager parameter to find an AMI <https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/finding-an-ami.html#using-systems-manager-parameter-to-find-AMI>`_ in the *Amazon Elastic Compute Cloud User Guide* .
26468
26546
  :param instance_initiated_shutdown_behavior: Indicates whether an instance stops or terminates when you initiate shutdown from the instance (using the operating system command for system shutdown). Default: ``stop``
26469
26547
  :param instance_market_options: The market (purchasing) option for the instances.
26470
- :param instance_requirements: The attributes for the instance types. When you specify instance attributes, Amazon EC2 will identify instance types with these attributes. You must specify ``VCpuCount`` and ``MemoryMiB`` . All other attributes are optional. Any unspecified optional attribute is set to its default. When you specify multiple attributes, you get instance types that satisfy all of the specified attributes. If you specify multiple values for an attribute, you get instance types that satisfy any of the specified values. To limit the list of instance types from which Amazon EC2 can identify matching instance types, you can use one of the following parameters, but not both in the same request: - ``AllowedInstanceTypes`` - The instance types to include in the list. All other instance types are ignored, even if they match your specified attributes. - ``ExcludedInstanceTypes`` - The instance types to exclude from the list, even if they match your specified attributes. .. epigraph:: If you specify ``InstanceRequirements`` , you can't specify ``InstanceType`` . Attribute-based instance type selection is only supported when using Auto Scaling groups, EC2 Fleet, and Spot Fleet to launch instances. If you plan to use the launch template in the `launch instance wizard <https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-launch-instance-wizard.html>`_ , or with the `RunInstances <https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_RunInstances.html>`_ API or `AWS::EC2::Instance <https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance.html>`_ AWS CloudFormation resource, you can't specify ``InstanceRequirements`` . For more information, see `Attribute-based instance type selection for EC2 Fleet <https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-fleet-attribute-based-instance-type-selection.html>`_ , `Attribute-based instance type selection for Spot Fleet <https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/spot-fleet-attribute-based-instance-type-selection.html>`_ , and `Spot placement score <https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/spot-placement-score.html>`_ in the *Amazon EC2 User Guide* .
26548
+ :param instance_requirements: The attributes for the instance types. When you specify instance attributes, Amazon EC2 will identify instance types with these attributes. You must specify ``VCpuCount`` and ``MemoryMiB`` . All other attributes are optional. Any unspecified optional attribute is set to its default. When you specify multiple attributes, you get instance types that satisfy all of the specified attributes. If you specify multiple values for an attribute, you get instance types that satisfy any of the specified values. To limit the list of instance types from which Amazon EC2 can identify matching instance types, you can use one of the following parameters, but not both in the same request: - ``AllowedInstanceTypes`` - The instance types to include in the list. All other instance types are ignored, even if they match your specified attributes. - ``ExcludedInstanceTypes`` - The instance types to exclude from the list, even if they match your specified attributes. .. epigraph:: If you specify ``InstanceRequirements`` , you can't specify ``InstanceType`` . Attribute-based instance type selection is only supported when using Auto Scaling groups, EC2 Fleet, and Spot Fleet to launch instances. If you plan to use the launch template in the `launch instance wizard <https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-launch-instance-wizard.html>`_ , or with the `RunInstances <https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_RunInstances.html>`_ API or `AWS::EC2::Instance <https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance.html>`_ AWS CloudFormation resource, you can't specify ``InstanceRequirements`` . For more information, see `Specify attributes for instance type selection for EC2 Fleet or Spot Fleet <https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-fleet-attribute-based-instance-type-selection.html>`_ and `Spot placement score <https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/spot-placement-score.html>`_ in the *Amazon EC2 User Guide* .
26471
26549
  :param instance_type: The instance type. For more information, see `Amazon EC2 instance types <https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html>`_ in the *Amazon EC2 User Guide* . If you specify ``InstanceType`` , you can't specify ``InstanceRequirements`` .
26472
26550
  :param kernel_id: The ID of the kernel. 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 EC2 User Guide* .
26473
26551
  :param key_name: The name of the key pair. You can create a key pair using `CreateKeyPair <https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateKeyPair.html>`_ or `ImportKeyPair <https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_ImportKeyPair.html>`_ . .. epigraph:: If you do not specify a key pair, you can't connect to the instance unless you choose an AMI that is configured to allow users another way to log in.
@@ -26904,9 +26982,11 @@ class CfnLaunchTemplate(
26904
26982
  def elastic_inference_accelerators(
26905
26983
  self,
26906
26984
  ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, "CfnLaunchTemplate.LaunchTemplateElasticInferenceAcceleratorProperty"]]]]:
26907
- '''An elastic inference accelerator to associate with the instance.
26985
+ '''.. epigraph::
26908
26986
 
26909
- Elastic inference accelerators are a resource you can attach to your Amazon EC2 instances to accelerate your Deep Learning (DL) inference workloads.
26987
+ Amazon Elastic Inference is no longer available.
26988
+
26989
+ 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.
26910
26990
 
26911
26991
  You cannot specify accelerators from different generations in the same request.
26912
26992
  .. epigraph::
@@ -27022,7 +27102,7 @@ class CfnLaunchTemplate(
27022
27102
 
27023
27103
  Attribute-based instance type selection is only supported when using Auto Scaling groups, EC2 Fleet, and Spot Fleet to launch instances. If you plan to use the launch template in the `launch instance wizard <https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-launch-instance-wizard.html>`_ , or with the `RunInstances <https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_RunInstances.html>`_ API or `AWS::EC2::Instance <https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance.html>`_ AWS CloudFormation resource, you can't specify ``InstanceRequirements`` .
27024
27104
 
27025
- For more information, see `Attribute-based instance type selection for EC2 Fleet <https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-fleet-attribute-based-instance-type-selection.html>`_ , `Attribute-based instance type selection for Spot Fleet <https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/spot-fleet-attribute-based-instance-type-selection.html>`_ , and `Spot placement score <https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/spot-placement-score.html>`_ in the *Amazon EC2 User Guide* .
27105
+ For more information, see `Specify attributes for instance type selection for EC2 Fleet or Spot Fleet <https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-fleet-attribute-based-instance-type-selection.html>`_ and `Spot placement score <https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/spot-placement-score.html>`_ in the *Amazon EC2 User Guide* .
27026
27106
 
27027
27107
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata.html#cfn-ec2-launchtemplate-launchtemplatedata-instancerequirements
27028
27108
  '''
@@ -30914,6 +30994,8 @@ class CfnNetworkAcl(
30914
30994
  ):
30915
30995
  '''Specifies a network ACL for your VPC.
30916
30996
 
30997
+ To add a network ACL entry, see `AWS::EC2::NetworkAclEntry <https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-networkaclentry.html>`_ .
30998
+
30917
30999
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-networkacl.html
30918
31000
  :cloudformationResource: AWS::EC2::NetworkAcl
30919
31001
  :exampleMetadata: fixture=_generated
@@ -31044,6 +31126,8 @@ class CfnNetworkAclEntry(
31044
31126
 
31045
31127
  Each network ACL has a set of numbered ingress rules and a separate set of numbered egress rules.
31046
31128
 
31129
+ To create the network ACL, see `AWS::EC2::NetworkAcl <https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-networkacl.html>`_ .
31130
+
31047
31131
  For information about the protocol value, see `Protocol Numbers <https://docs.aws.amazon.com/https://www.iana.org/assignments/protocol-numbers/protocol-numbers.xhtml>`_ on the Internet Assigned Numbers Authority (IANA) website.
31048
31132
 
31049
31133
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-networkaclentry.html
@@ -39545,7 +39629,7 @@ class CfnPrefixList(
39545
39629
  :param address_family: The IP address type. Valid Values: ``IPv4`` | ``IPv6``
39546
39630
  :param prefix_list_name: A name for the prefix list. Constraints: Up to 255 characters in length. The name cannot start with ``com.amazonaws`` .
39547
39631
  :param entries: The entries for the prefix list.
39548
- :param max_entries: The maximum number of entries for the prefix list. This property is required when you create a prefix list.
39632
+ :param max_entries: The maximum number of entries for the prefix list.
39549
39633
  :param tags: The tags for the prefix list.
39550
39634
  '''
39551
39635
  if __debug__:
@@ -39819,7 +39903,7 @@ class CfnPrefixListProps:
39819
39903
  :param address_family: The IP address type. Valid Values: ``IPv4`` | ``IPv6``
39820
39904
  :param prefix_list_name: A name for the prefix list. Constraints: Up to 255 characters in length. The name cannot start with ``com.amazonaws`` .
39821
39905
  :param entries: The entries for the prefix list.
39822
- :param max_entries: The maximum number of entries for the prefix list. This property is required when you create a prefix list.
39906
+ :param max_entries: The maximum number of entries for the prefix list.
39823
39907
  :param tags: The tags for the prefix list.
39824
39908
 
39825
39909
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-prefixlist.html
@@ -39906,8 +39990,6 @@ class CfnPrefixListProps:
39906
39990
  def max_entries(self) -> typing.Optional[jsii.Number]:
39907
39991
  '''The maximum number of entries for the prefix list.
39908
39992
 
39909
- This property is required when you create a prefix list.
39910
-
39911
39993
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-prefixlist.html#cfn-ec2-prefixlist-maxentries
39912
39994
  '''
39913
39995
  result = self._values.get("max_entries")
@@ -44476,13 +44558,13 @@ class CfnSpotFleet(
44476
44558
 
44477
44559
  Attribute-based instance type selection is only supported when using Auto Scaling groups, EC2 Fleet, and Spot Fleet to launch instances. If you plan to use the launch template in the `launch instance wizard <https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-launch-instance-wizard.html>`_ , or with the `RunInstances <https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_RunInstances.html>`_ API or `AWS::EC2::Instance <https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance.html>`_ AWS CloudFormation resource, you can't specify ``InstanceRequirements`` .
44478
44560
 
44479
- For more information, see `Attribute-based instance type selection for EC2 Fleet <https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-fleet-attribute-based-instance-type-selection.html>`_ , `Attribute-based instance type selection for Spot Fleet <https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/spot-fleet-attribute-based-instance-type-selection.html>`_ , and `Spot placement score <https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/spot-placement-score.html>`_ in the *Amazon EC2 User Guide* .
44561
+ For more information, see `Specify attributes for instance type selection for EC2 Fleet or Spot Fleet <https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-fleet-attribute-based-instance-type-selection.html>`_ and `Spot placement score <https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/spot-placement-score.html>`_ in the *Amazon EC2 User Guide* .
44480
44562
 
44481
44563
  :param accelerator_count: The minimum and maximum number of accelerators (GPUs, FPGAs, or AWS Inferentia chips) on an instance. To exclude accelerator-enabled instance types, set ``Max`` to ``0`` . Default: No minimum or maximum limits
44482
44564
  :param accelerator_manufacturers: Indicates whether instance types must have accelerators by specific manufacturers. - For instance types with AWS devices, specify ``amazon-web-services`` . - For instance types with AMD devices, specify ``amd`` . - For instance types with Habana devices, specify ``habana`` . - For instance types with NVIDIA devices, specify ``nvidia`` . - For instance types with Xilinx devices, specify ``xilinx`` . Default: Any manufacturer
44483
44565
  :param accelerator_names: The accelerators that must be on the instance type. - For instance types with NVIDIA A10G GPUs, specify ``a10g`` . - For instance types with NVIDIA A100 GPUs, specify ``a100`` . - For instance types with NVIDIA H100 GPUs, specify ``h100`` . - For instance types with AWS Inferentia chips, specify ``inferentia`` . - For instance types with NVIDIA GRID K520 GPUs, specify ``k520`` . - For instance types with NVIDIA K80 GPUs, specify ``k80`` . - For instance types with NVIDIA M60 GPUs, specify ``m60`` . - For instance types with AMD Radeon Pro V520 GPUs, specify ``radeon-pro-v520`` . - For instance types with NVIDIA T4 GPUs, specify ``t4`` . - For instance types with NVIDIA T4G GPUs, specify ``t4g`` . - For instance types with Xilinx VU9P FPGAs, specify ``vu9p`` . - For instance types with NVIDIA V100 GPUs, specify ``v100`` . Default: Any accelerator
44484
44566
  :param accelerator_total_memory_mib: The minimum and maximum amount of total accelerator memory, in MiB. Default: No minimum or maximum limits
44485
- :param accelerator_types: The accelerator types that must be on the instance type. - To include instance types with GPU hardware, specify ``gpu`` . - To include instance types with FPGA hardware, specify ``fpga`` . - To include instance types with inference hardware, specify ``inference`` . Default: Any accelerator type
44567
+ :param accelerator_types: The accelerator types that must be on the instance type. - To include instance types with GPU hardware, specify ``gpu`` . - To include instance types with FPGA hardware, specify ``fpga`` . Default: Any accelerator type
44486
44568
  :param allowed_instance_types: The instance types to apply your specified attributes against. All other instance types are ignored, even if they match your specified attributes. You can use strings with one or more wild cards, represented by an asterisk ( ``*`` ), to allow an instance type, size, or generation. The following are examples: ``m5.8xlarge`` , ``c5*.*`` , ``m5a.*`` , ``r*`` , ``*3*`` . For example, if you specify ``c5*`` ,Amazon EC2 will allow the entire C5 instance family, which includes all C5a and C5n instance types. If you specify ``m5a.*`` , Amazon EC2 will allow all the M5a instance types, but not the M5n instance types. .. epigraph:: If you specify ``AllowedInstanceTypes`` , you can't specify ``ExcludedInstanceTypes`` . Default: All instance types
44487
44569
  :param bare_metal: Indicates whether bare metal instance types must be included, excluded, or required. - To include bare metal instance types, specify ``included`` . - To require only bare metal instance types, specify ``required`` . - To exclude bare metal instance types, specify ``excluded`` . Default: ``excluded``
44488
44570
  :param baseline_ebs_bandwidth_mbps: The minimum and maximum baseline bandwidth to Amazon EBS, in Mbps. For more information, see `Amazon EBS–optimized instances <https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-optimized.html>`_ in the *Amazon EC2 User Guide* . Default: No minimum or maximum limits
@@ -44719,7 +44801,6 @@ class CfnSpotFleet(
44719
44801
 
44720
44802
  - To include instance types with GPU hardware, specify ``gpu`` .
44721
44803
  - To include instance types with FPGA hardware, specify ``fpga`` .
44722
- - To include instance types with inference hardware, specify ``inference`` .
44723
44804
 
44724
44805
  Default: Any accelerator type
44725
44806
 
@@ -58089,7 +58170,7 @@ class CfnVPCPeeringConnection(
58089
58170
 
58090
58171
  The requester VPC and accepter VPC cannot have overlapping CIDR blocks. If you create a VPC peering connection request between VPCs with overlapping CIDR blocks, the VPC peering connection has a status of ``failed`` .
58091
58172
 
58092
- If the VPCs belong to different accounts, the acceptor account must have a role that allows the requester account to accept the VPC peering connection. For more information, see `Walkthough: Peer with a VPC in another AWS account <https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/peer-with-vpc-in-another-account.html>`_ .
58173
+ If the VPCs belong to different accounts, the acceptor account must have a role that allows the requester account to accept the VPC peering connection. For an example, see `Walkthrough: Peer with a VPC in another AWS account <https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/peer-with-vpc-in-another-account.html>`_ .
58093
58174
 
58094
58175
  If the requester and acceptor VPCs are in the same account, the peering request is accepted without a peering role.
58095
58176
 
@@ -58663,8 +58744,46 @@ class CfnVPNConnection(
58663
58744
  tunnel_inside_ip_version="tunnelInsideIpVersion",
58664
58745
  vpn_gateway_id="vpnGatewayId",
58665
58746
  vpn_tunnel_options_specifications=[ec2.CfnVPNConnection.VpnTunnelOptionsSpecificationProperty(
58747
+ dpd_timeout_action="dpdTimeoutAction",
58748
+ dpd_timeout_seconds=123,
58749
+ enable_tunnel_lifecycle_control=False,
58750
+ ike_versions=[{
58751
+ "value": "value"
58752
+ }],
58753
+ log_options=ec2.CfnVPNConnection.VpnTunnelLogOptionsSpecificationProperty(
58754
+ cloudwatch_log_options=ec2.CfnVPNConnection.CloudwatchLogOptionsSpecificationProperty(
58755
+ log_enabled=False,
58756
+ log_group_arn="logGroupArn",
58757
+ log_output_format="logOutputFormat"
58758
+ )
58759
+ ),
58760
+ phase1_dh_group_numbers=[ec2.CfnVPNConnection.Phase1DHGroupNumbersRequestListValueProperty(
58761
+ value=123
58762
+ )],
58763
+ phase1_encryption_algorithms=[ec2.CfnVPNConnection.Phase1EncryptionAlgorithmsRequestListValueProperty(
58764
+ value="value"
58765
+ )],
58766
+ phase1_integrity_algorithms=[ec2.CfnVPNConnection.Phase1IntegrityAlgorithmsRequestListValueProperty(
58767
+ value="value"
58768
+ )],
58769
+ phase1_lifetime_seconds=123,
58770
+ phase2_dh_group_numbers=[ec2.CfnVPNConnection.Phase2DHGroupNumbersRequestListValueProperty(
58771
+ value=123
58772
+ )],
58773
+ phase2_encryption_algorithms=[ec2.CfnVPNConnection.Phase2EncryptionAlgorithmsRequestListValueProperty(
58774
+ value="value"
58775
+ )],
58776
+ phase2_integrity_algorithms=[ec2.CfnVPNConnection.Phase2IntegrityAlgorithmsRequestListValueProperty(
58777
+ value="value"
58778
+ )],
58779
+ phase2_lifetime_seconds=123,
58666
58780
  pre_shared_key="preSharedKey",
58667
- tunnel_inside_cidr="tunnelInsideCidr"
58781
+ rekey_fuzz_percentage=123,
58782
+ rekey_margin_time_seconds=123,
58783
+ replay_window_size=123,
58784
+ startup_action="startupAction",
58785
+ tunnel_inside_cidr="tunnelInsideCidr",
58786
+ tunnel_inside_ipv6_cidr="tunnelInsideIpv6Cidr"
58668
58787
  )]
58669
58788
  )
58670
58789
  '''
@@ -58996,25 +59115,592 @@ class CfnVPNConnection(
58996
59115
  check_type(argname="argument value", value=value, expected_type=type_hints["value"])
58997
59116
  jsii.set(self, "vpnTunnelOptionsSpecifications", value) # pyright: ignore[reportArgumentType]
58998
59117
 
59118
+ @jsii.data_type(
59119
+ jsii_type="aws-cdk-lib.aws_ec2.CfnVPNConnection.CloudwatchLogOptionsSpecificationProperty",
59120
+ jsii_struct_bases=[],
59121
+ name_mapping={
59122
+ "log_enabled": "logEnabled",
59123
+ "log_group_arn": "logGroupArn",
59124
+ "log_output_format": "logOutputFormat",
59125
+ },
59126
+ )
59127
+ class CloudwatchLogOptionsSpecificationProperty:
59128
+ def __init__(
59129
+ self,
59130
+ *,
59131
+ log_enabled: typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]] = None,
59132
+ log_group_arn: typing.Optional[builtins.str] = None,
59133
+ log_output_format: typing.Optional[builtins.str] = None,
59134
+ ) -> None:
59135
+ '''Options for sending VPN tunnel logs to CloudWatch.
59136
+
59137
+ :param log_enabled: Enable or disable VPN tunnel logging feature. Default value is ``False`` . Valid values: ``True`` | ``False``
59138
+ :param log_group_arn: The Amazon Resource Name (ARN) of the CloudWatch log group to send logs to.
59139
+ :param log_output_format: Set log format. Default format is ``json`` . Valid values: ``json`` | ``text``
59140
+
59141
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-vpnconnection-cloudwatchlogoptionsspecification.html
59142
+ :exampleMetadata: fixture=_generated
59143
+
59144
+ Example::
59145
+
59146
+ # The code below shows an example of how to instantiate this type.
59147
+ # The values are placeholders you should change.
59148
+ from aws_cdk import aws_ec2 as ec2
59149
+
59150
+ cloudwatch_log_options_specification_property = ec2.CfnVPNConnection.CloudwatchLogOptionsSpecificationProperty(
59151
+ log_enabled=False,
59152
+ log_group_arn="logGroupArn",
59153
+ log_output_format="logOutputFormat"
59154
+ )
59155
+ '''
59156
+ if __debug__:
59157
+ type_hints = typing.get_type_hints(_typecheckingstub__bd596864a79667f9fd7ea34a4b2b4bc80eea01d6f5d0306e0660a88f43622cf9)
59158
+ check_type(argname="argument log_enabled", value=log_enabled, expected_type=type_hints["log_enabled"])
59159
+ check_type(argname="argument log_group_arn", value=log_group_arn, expected_type=type_hints["log_group_arn"])
59160
+ check_type(argname="argument log_output_format", value=log_output_format, expected_type=type_hints["log_output_format"])
59161
+ self._values: typing.Dict[builtins.str, typing.Any] = {}
59162
+ if log_enabled is not None:
59163
+ self._values["log_enabled"] = log_enabled
59164
+ if log_group_arn is not None:
59165
+ self._values["log_group_arn"] = log_group_arn
59166
+ if log_output_format is not None:
59167
+ self._values["log_output_format"] = log_output_format
59168
+
59169
+ @builtins.property
59170
+ def log_enabled(
59171
+ self,
59172
+ ) -> typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]]:
59173
+ '''Enable or disable VPN tunnel logging feature. Default value is ``False`` .
59174
+
59175
+ Valid values: ``True`` | ``False``
59176
+
59177
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-vpnconnection-cloudwatchlogoptionsspecification.html#cfn-ec2-vpnconnection-cloudwatchlogoptionsspecification-logenabled
59178
+ '''
59179
+ result = self._values.get("log_enabled")
59180
+ return typing.cast(typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]], result)
59181
+
59182
+ @builtins.property
59183
+ def log_group_arn(self) -> typing.Optional[builtins.str]:
59184
+ '''The Amazon Resource Name (ARN) of the CloudWatch log group to send logs to.
59185
+
59186
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-vpnconnection-cloudwatchlogoptionsspecification.html#cfn-ec2-vpnconnection-cloudwatchlogoptionsspecification-loggrouparn
59187
+ '''
59188
+ result = self._values.get("log_group_arn")
59189
+ return typing.cast(typing.Optional[builtins.str], result)
59190
+
59191
+ @builtins.property
59192
+ def log_output_format(self) -> typing.Optional[builtins.str]:
59193
+ '''Set log format. Default format is ``json`` .
59194
+
59195
+ Valid values: ``json`` | ``text``
59196
+
59197
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-vpnconnection-cloudwatchlogoptionsspecification.html#cfn-ec2-vpnconnection-cloudwatchlogoptionsspecification-logoutputformat
59198
+ '''
59199
+ result = self._values.get("log_output_format")
59200
+ return typing.cast(typing.Optional[builtins.str], result)
59201
+
59202
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
59203
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
59204
+
59205
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
59206
+ return not (rhs == self)
59207
+
59208
+ def __repr__(self) -> str:
59209
+ return "CloudwatchLogOptionsSpecificationProperty(%s)" % ", ".join(
59210
+ k + "=" + repr(v) for k, v in self._values.items()
59211
+ )
59212
+
59213
+ @jsii.data_type(
59214
+ jsii_type="aws-cdk-lib.aws_ec2.CfnVPNConnection.IKEVersionsRequestListValueProperty",
59215
+ jsii_struct_bases=[],
59216
+ name_mapping={"value": "value"},
59217
+ )
59218
+ class IKEVersionsRequestListValueProperty:
59219
+ def __init__(self, *, value: typing.Optional[builtins.str] = None) -> None:
59220
+ '''The IKE version that is permitted for the VPN tunnel.
59221
+
59222
+ :param value: The IKE version.
59223
+
59224
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-vpnconnection-ikeversionsrequestlistvalue.html
59225
+ :exampleMetadata: fixture=_generated
59226
+
59227
+ Example::
59228
+
59229
+ # The code below shows an example of how to instantiate this type.
59230
+ # The values are placeholders you should change.
59231
+ from aws_cdk import aws_ec2 as ec2
59232
+
59233
+ i_kEVersions_request_list_value_property = {
59234
+ "value": "value"
59235
+ }
59236
+ '''
59237
+ if __debug__:
59238
+ type_hints = typing.get_type_hints(_typecheckingstub__fe82f7092cfe3daf1976f55ceb6d944eb6d256a481ec7e98ae1897a9d47af7a1)
59239
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
59240
+ self._values: typing.Dict[builtins.str, typing.Any] = {}
59241
+ if value is not None:
59242
+ self._values["value"] = value
59243
+
59244
+ @builtins.property
59245
+ def value(self) -> typing.Optional[builtins.str]:
59246
+ '''The IKE version.
59247
+
59248
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-vpnconnection-ikeversionsrequestlistvalue.html#cfn-ec2-vpnconnection-ikeversionsrequestlistvalue-value
59249
+ '''
59250
+ result = self._values.get("value")
59251
+ return typing.cast(typing.Optional[builtins.str], result)
59252
+
59253
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
59254
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
59255
+
59256
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
59257
+ return not (rhs == self)
59258
+
59259
+ def __repr__(self) -> str:
59260
+ return "IKEVersionsRequestListValueProperty(%s)" % ", ".join(
59261
+ k + "=" + repr(v) for k, v in self._values.items()
59262
+ )
59263
+
59264
+ @jsii.data_type(
59265
+ jsii_type="aws-cdk-lib.aws_ec2.CfnVPNConnection.Phase1DHGroupNumbersRequestListValueProperty",
59266
+ jsii_struct_bases=[],
59267
+ name_mapping={"value": "value"},
59268
+ )
59269
+ class Phase1DHGroupNumbersRequestListValueProperty:
59270
+ def __init__(self, *, value: typing.Optional[jsii.Number] = None) -> None:
59271
+ '''Specifies a Diffie-Hellman group number for the VPN tunnel for phase 1 IKE negotiations.
59272
+
59273
+ :param value: The Diffie-Hellmann group number.
59274
+
59275
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-vpnconnection-phase1dhgroupnumbersrequestlistvalue.html
59276
+ :exampleMetadata: fixture=_generated
59277
+
59278
+ Example::
59279
+
59280
+ # The code below shows an example of how to instantiate this type.
59281
+ # The values are placeholders you should change.
59282
+ from aws_cdk import aws_ec2 as ec2
59283
+
59284
+ phase1_dHGroup_numbers_request_list_value_property = ec2.CfnVPNConnection.Phase1DHGroupNumbersRequestListValueProperty(
59285
+ value=123
59286
+ )
59287
+ '''
59288
+ if __debug__:
59289
+ type_hints = typing.get_type_hints(_typecheckingstub__918d5f5b5e88ae68daf35c3d93776500cfc34270e528ae9c3dc133bfa0096b85)
59290
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
59291
+ self._values: typing.Dict[builtins.str, typing.Any] = {}
59292
+ if value is not None:
59293
+ self._values["value"] = value
59294
+
59295
+ @builtins.property
59296
+ def value(self) -> typing.Optional[jsii.Number]:
59297
+ '''The Diffie-Hellmann group number.
59298
+
59299
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-vpnconnection-phase1dhgroupnumbersrequestlistvalue.html#cfn-ec2-vpnconnection-phase1dhgroupnumbersrequestlistvalue-value
59300
+ '''
59301
+ result = self._values.get("value")
59302
+ return typing.cast(typing.Optional[jsii.Number], result)
59303
+
59304
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
59305
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
59306
+
59307
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
59308
+ return not (rhs == self)
59309
+
59310
+ def __repr__(self) -> str:
59311
+ return "Phase1DHGroupNumbersRequestListValueProperty(%s)" % ", ".join(
59312
+ k + "=" + repr(v) for k, v in self._values.items()
59313
+ )
59314
+
59315
+ @jsii.data_type(
59316
+ jsii_type="aws-cdk-lib.aws_ec2.CfnVPNConnection.Phase1EncryptionAlgorithmsRequestListValueProperty",
59317
+ jsii_struct_bases=[],
59318
+ name_mapping={"value": "value"},
59319
+ )
59320
+ class Phase1EncryptionAlgorithmsRequestListValueProperty:
59321
+ def __init__(self, *, value: typing.Optional[builtins.str] = None) -> None:
59322
+ '''Specifies the encryption algorithm for the VPN tunnel for phase 1 IKE negotiations.
59323
+
59324
+ :param value: The value for the encryption algorithm.
59325
+
59326
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-vpnconnection-phase1encryptionalgorithmsrequestlistvalue.html
59327
+ :exampleMetadata: fixture=_generated
59328
+
59329
+ Example::
59330
+
59331
+ # The code below shows an example of how to instantiate this type.
59332
+ # The values are placeholders you should change.
59333
+ from aws_cdk import aws_ec2 as ec2
59334
+
59335
+ phase1_encryption_algorithms_request_list_value_property = ec2.CfnVPNConnection.Phase1EncryptionAlgorithmsRequestListValueProperty(
59336
+ value="value"
59337
+ )
59338
+ '''
59339
+ if __debug__:
59340
+ type_hints = typing.get_type_hints(_typecheckingstub__22fbe2c39b9921f1ab2862205b1cf5ef686c18168136eb68682dbc3f7d433a36)
59341
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
59342
+ self._values: typing.Dict[builtins.str, typing.Any] = {}
59343
+ if value is not None:
59344
+ self._values["value"] = value
59345
+
59346
+ @builtins.property
59347
+ def value(self) -> typing.Optional[builtins.str]:
59348
+ '''The value for the encryption algorithm.
59349
+
59350
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-vpnconnection-phase1encryptionalgorithmsrequestlistvalue.html#cfn-ec2-vpnconnection-phase1encryptionalgorithmsrequestlistvalue-value
59351
+ '''
59352
+ result = self._values.get("value")
59353
+ return typing.cast(typing.Optional[builtins.str], result)
59354
+
59355
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
59356
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
59357
+
59358
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
59359
+ return not (rhs == self)
59360
+
59361
+ def __repr__(self) -> str:
59362
+ return "Phase1EncryptionAlgorithmsRequestListValueProperty(%s)" % ", ".join(
59363
+ k + "=" + repr(v) for k, v in self._values.items()
59364
+ )
59365
+
59366
+ @jsii.data_type(
59367
+ jsii_type="aws-cdk-lib.aws_ec2.CfnVPNConnection.Phase1IntegrityAlgorithmsRequestListValueProperty",
59368
+ jsii_struct_bases=[],
59369
+ name_mapping={"value": "value"},
59370
+ )
59371
+ class Phase1IntegrityAlgorithmsRequestListValueProperty:
59372
+ def __init__(self, *, value: typing.Optional[builtins.str] = None) -> None:
59373
+ '''Specifies the integrity algorithm for the VPN tunnel for phase 1 IKE negotiations.
59374
+
59375
+ :param value: The value for the integrity algorithm.
59376
+
59377
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-vpnconnection-phase1integrityalgorithmsrequestlistvalue.html
59378
+ :exampleMetadata: fixture=_generated
59379
+
59380
+ Example::
59381
+
59382
+ # The code below shows an example of how to instantiate this type.
59383
+ # The values are placeholders you should change.
59384
+ from aws_cdk import aws_ec2 as ec2
59385
+
59386
+ phase1_integrity_algorithms_request_list_value_property = ec2.CfnVPNConnection.Phase1IntegrityAlgorithmsRequestListValueProperty(
59387
+ value="value"
59388
+ )
59389
+ '''
59390
+ if __debug__:
59391
+ type_hints = typing.get_type_hints(_typecheckingstub__a0015c70bcf807f70699a0ff5fbdaf7b9703d3751680a849a5acd4186fcb9588)
59392
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
59393
+ self._values: typing.Dict[builtins.str, typing.Any] = {}
59394
+ if value is not None:
59395
+ self._values["value"] = value
59396
+
59397
+ @builtins.property
59398
+ def value(self) -> typing.Optional[builtins.str]:
59399
+ '''The value for the integrity algorithm.
59400
+
59401
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-vpnconnection-phase1integrityalgorithmsrequestlistvalue.html#cfn-ec2-vpnconnection-phase1integrityalgorithmsrequestlistvalue-value
59402
+ '''
59403
+ result = self._values.get("value")
59404
+ return typing.cast(typing.Optional[builtins.str], result)
59405
+
59406
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
59407
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
59408
+
59409
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
59410
+ return not (rhs == self)
59411
+
59412
+ def __repr__(self) -> str:
59413
+ return "Phase1IntegrityAlgorithmsRequestListValueProperty(%s)" % ", ".join(
59414
+ k + "=" + repr(v) for k, v in self._values.items()
59415
+ )
59416
+
59417
+ @jsii.data_type(
59418
+ jsii_type="aws-cdk-lib.aws_ec2.CfnVPNConnection.Phase2DHGroupNumbersRequestListValueProperty",
59419
+ jsii_struct_bases=[],
59420
+ name_mapping={"value": "value"},
59421
+ )
59422
+ class Phase2DHGroupNumbersRequestListValueProperty:
59423
+ def __init__(self, *, value: typing.Optional[jsii.Number] = None) -> None:
59424
+ '''Specifies a Diffie-Hellman group number for the VPN tunnel for phase 2 IKE negotiations.
59425
+
59426
+ :param value: The Diffie-Hellmann group number.
59427
+
59428
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-vpnconnection-phase2dhgroupnumbersrequestlistvalue.html
59429
+ :exampleMetadata: fixture=_generated
59430
+
59431
+ Example::
59432
+
59433
+ # The code below shows an example of how to instantiate this type.
59434
+ # The values are placeholders you should change.
59435
+ from aws_cdk import aws_ec2 as ec2
59436
+
59437
+ phase2_dHGroup_numbers_request_list_value_property = ec2.CfnVPNConnection.Phase2DHGroupNumbersRequestListValueProperty(
59438
+ value=123
59439
+ )
59440
+ '''
59441
+ if __debug__:
59442
+ type_hints = typing.get_type_hints(_typecheckingstub__d65eb64aa76aba56a565fc56d45096dad72a4eb03c46fd63ac7aa4d8c0bebcfd)
59443
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
59444
+ self._values: typing.Dict[builtins.str, typing.Any] = {}
59445
+ if value is not None:
59446
+ self._values["value"] = value
59447
+
59448
+ @builtins.property
59449
+ def value(self) -> typing.Optional[jsii.Number]:
59450
+ '''The Diffie-Hellmann group number.
59451
+
59452
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-vpnconnection-phase2dhgroupnumbersrequestlistvalue.html#cfn-ec2-vpnconnection-phase2dhgroupnumbersrequestlistvalue-value
59453
+ '''
59454
+ result = self._values.get("value")
59455
+ return typing.cast(typing.Optional[jsii.Number], result)
59456
+
59457
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
59458
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
59459
+
59460
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
59461
+ return not (rhs == self)
59462
+
59463
+ def __repr__(self) -> str:
59464
+ return "Phase2DHGroupNumbersRequestListValueProperty(%s)" % ", ".join(
59465
+ k + "=" + repr(v) for k, v in self._values.items()
59466
+ )
59467
+
59468
+ @jsii.data_type(
59469
+ jsii_type="aws-cdk-lib.aws_ec2.CfnVPNConnection.Phase2EncryptionAlgorithmsRequestListValueProperty",
59470
+ jsii_struct_bases=[],
59471
+ name_mapping={"value": "value"},
59472
+ )
59473
+ class Phase2EncryptionAlgorithmsRequestListValueProperty:
59474
+ def __init__(self, *, value: typing.Optional[builtins.str] = None) -> None:
59475
+ '''Specifies the encryption algorithm for the VPN tunnel for phase 2 IKE negotiations.
59476
+
59477
+ :param value: The encryption algorithm.
59478
+
59479
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-vpnconnection-phase2encryptionalgorithmsrequestlistvalue.html
59480
+ :exampleMetadata: fixture=_generated
59481
+
59482
+ Example::
59483
+
59484
+ # The code below shows an example of how to instantiate this type.
59485
+ # The values are placeholders you should change.
59486
+ from aws_cdk import aws_ec2 as ec2
59487
+
59488
+ phase2_encryption_algorithms_request_list_value_property = ec2.CfnVPNConnection.Phase2EncryptionAlgorithmsRequestListValueProperty(
59489
+ value="value"
59490
+ )
59491
+ '''
59492
+ if __debug__:
59493
+ type_hints = typing.get_type_hints(_typecheckingstub__acb67278adfea74d52c512c96c9c00fb330b3d45c9266ac4d2b30bfdbfaa674d)
59494
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
59495
+ self._values: typing.Dict[builtins.str, typing.Any] = {}
59496
+ if value is not None:
59497
+ self._values["value"] = value
59498
+
59499
+ @builtins.property
59500
+ def value(self) -> typing.Optional[builtins.str]:
59501
+ '''The encryption algorithm.
59502
+
59503
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-vpnconnection-phase2encryptionalgorithmsrequestlistvalue.html#cfn-ec2-vpnconnection-phase2encryptionalgorithmsrequestlistvalue-value
59504
+ '''
59505
+ result = self._values.get("value")
59506
+ return typing.cast(typing.Optional[builtins.str], result)
59507
+
59508
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
59509
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
59510
+
59511
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
59512
+ return not (rhs == self)
59513
+
59514
+ def __repr__(self) -> str:
59515
+ return "Phase2EncryptionAlgorithmsRequestListValueProperty(%s)" % ", ".join(
59516
+ k + "=" + repr(v) for k, v in self._values.items()
59517
+ )
59518
+
59519
+ @jsii.data_type(
59520
+ jsii_type="aws-cdk-lib.aws_ec2.CfnVPNConnection.Phase2IntegrityAlgorithmsRequestListValueProperty",
59521
+ jsii_struct_bases=[],
59522
+ name_mapping={"value": "value"},
59523
+ )
59524
+ class Phase2IntegrityAlgorithmsRequestListValueProperty:
59525
+ def __init__(self, *, value: typing.Optional[builtins.str] = None) -> None:
59526
+ '''Specifies the integrity algorithm for the VPN tunnel for phase 2 IKE negotiations.
59527
+
59528
+ :param value: The integrity algorithm.
59529
+
59530
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-vpnconnection-phase2integrityalgorithmsrequestlistvalue.html
59531
+ :exampleMetadata: fixture=_generated
59532
+
59533
+ Example::
59534
+
59535
+ # The code below shows an example of how to instantiate this type.
59536
+ # The values are placeholders you should change.
59537
+ from aws_cdk import aws_ec2 as ec2
59538
+
59539
+ phase2_integrity_algorithms_request_list_value_property = ec2.CfnVPNConnection.Phase2IntegrityAlgorithmsRequestListValueProperty(
59540
+ value="value"
59541
+ )
59542
+ '''
59543
+ if __debug__:
59544
+ type_hints = typing.get_type_hints(_typecheckingstub__f840e78842ee8f4a726cacbb8d5214f63eb65e6ddb1c55a3f5a779e97615acf9)
59545
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
59546
+ self._values: typing.Dict[builtins.str, typing.Any] = {}
59547
+ if value is not None:
59548
+ self._values["value"] = value
59549
+
59550
+ @builtins.property
59551
+ def value(self) -> typing.Optional[builtins.str]:
59552
+ '''The integrity algorithm.
59553
+
59554
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-vpnconnection-phase2integrityalgorithmsrequestlistvalue.html#cfn-ec2-vpnconnection-phase2integrityalgorithmsrequestlistvalue-value
59555
+ '''
59556
+ result = self._values.get("value")
59557
+ return typing.cast(typing.Optional[builtins.str], result)
59558
+
59559
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
59560
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
59561
+
59562
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
59563
+ return not (rhs == self)
59564
+
59565
+ def __repr__(self) -> str:
59566
+ return "Phase2IntegrityAlgorithmsRequestListValueProperty(%s)" % ", ".join(
59567
+ k + "=" + repr(v) for k, v in self._values.items()
59568
+ )
59569
+
59570
+ @jsii.data_type(
59571
+ jsii_type="aws-cdk-lib.aws_ec2.CfnVPNConnection.VpnTunnelLogOptionsSpecificationProperty",
59572
+ jsii_struct_bases=[],
59573
+ name_mapping={"cloudwatch_log_options": "cloudwatchLogOptions"},
59574
+ )
59575
+ class VpnTunnelLogOptionsSpecificationProperty:
59576
+ def __init__(
59577
+ self,
59578
+ *,
59579
+ cloudwatch_log_options: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union["CfnVPNConnection.CloudwatchLogOptionsSpecificationProperty", typing.Dict[builtins.str, typing.Any]]]] = None,
59580
+ ) -> None:
59581
+ '''Options for logging VPN tunnel activity.
59582
+
59583
+ :param cloudwatch_log_options: Options for sending VPN tunnel logs to CloudWatch.
59584
+
59585
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-vpnconnection-vpntunnellogoptionsspecification.html
59586
+ :exampleMetadata: fixture=_generated
59587
+
59588
+ Example::
59589
+
59590
+ # The code below shows an example of how to instantiate this type.
59591
+ # The values are placeholders you should change.
59592
+ from aws_cdk import aws_ec2 as ec2
59593
+
59594
+ vpn_tunnel_log_options_specification_property = ec2.CfnVPNConnection.VpnTunnelLogOptionsSpecificationProperty(
59595
+ cloudwatch_log_options=ec2.CfnVPNConnection.CloudwatchLogOptionsSpecificationProperty(
59596
+ log_enabled=False,
59597
+ log_group_arn="logGroupArn",
59598
+ log_output_format="logOutputFormat"
59599
+ )
59600
+ )
59601
+ '''
59602
+ if __debug__:
59603
+ type_hints = typing.get_type_hints(_typecheckingstub__03be9463ce73095b0619c9b322ea6c5b050580851d3de940235cda9021f28166)
59604
+ check_type(argname="argument cloudwatch_log_options", value=cloudwatch_log_options, expected_type=type_hints["cloudwatch_log_options"])
59605
+ self._values: typing.Dict[builtins.str, typing.Any] = {}
59606
+ if cloudwatch_log_options is not None:
59607
+ self._values["cloudwatch_log_options"] = cloudwatch_log_options
59608
+
59609
+ @builtins.property
59610
+ def cloudwatch_log_options(
59611
+ self,
59612
+ ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnVPNConnection.CloudwatchLogOptionsSpecificationProperty"]]:
59613
+ '''Options for sending VPN tunnel logs to CloudWatch.
59614
+
59615
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-vpnconnection-vpntunnellogoptionsspecification.html#cfn-ec2-vpnconnection-vpntunnellogoptionsspecification-cloudwatchlogoptions
59616
+ '''
59617
+ result = self._values.get("cloudwatch_log_options")
59618
+ return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnVPNConnection.CloudwatchLogOptionsSpecificationProperty"]], result)
59619
+
59620
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
59621
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
59622
+
59623
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
59624
+ return not (rhs == self)
59625
+
59626
+ def __repr__(self) -> str:
59627
+ return "VpnTunnelLogOptionsSpecificationProperty(%s)" % ", ".join(
59628
+ k + "=" + repr(v) for k, v in self._values.items()
59629
+ )
59630
+
58999
59631
  @jsii.data_type(
59000
59632
  jsii_type="aws-cdk-lib.aws_ec2.CfnVPNConnection.VpnTunnelOptionsSpecificationProperty",
59001
59633
  jsii_struct_bases=[],
59002
59634
  name_mapping={
59635
+ "dpd_timeout_action": "dpdTimeoutAction",
59636
+ "dpd_timeout_seconds": "dpdTimeoutSeconds",
59637
+ "enable_tunnel_lifecycle_control": "enableTunnelLifecycleControl",
59638
+ "ike_versions": "ikeVersions",
59639
+ "log_options": "logOptions",
59640
+ "phase1_dh_group_numbers": "phase1DhGroupNumbers",
59641
+ "phase1_encryption_algorithms": "phase1EncryptionAlgorithms",
59642
+ "phase1_integrity_algorithms": "phase1IntegrityAlgorithms",
59643
+ "phase1_lifetime_seconds": "phase1LifetimeSeconds",
59644
+ "phase2_dh_group_numbers": "phase2DhGroupNumbers",
59645
+ "phase2_encryption_algorithms": "phase2EncryptionAlgorithms",
59646
+ "phase2_integrity_algorithms": "phase2IntegrityAlgorithms",
59647
+ "phase2_lifetime_seconds": "phase2LifetimeSeconds",
59003
59648
  "pre_shared_key": "preSharedKey",
59649
+ "rekey_fuzz_percentage": "rekeyFuzzPercentage",
59650
+ "rekey_margin_time_seconds": "rekeyMarginTimeSeconds",
59651
+ "replay_window_size": "replayWindowSize",
59652
+ "startup_action": "startupAction",
59004
59653
  "tunnel_inside_cidr": "tunnelInsideCidr",
59654
+ "tunnel_inside_ipv6_cidr": "tunnelInsideIpv6Cidr",
59005
59655
  },
59006
59656
  )
59007
59657
  class VpnTunnelOptionsSpecificationProperty:
59008
59658
  def __init__(
59009
59659
  self,
59010
59660
  *,
59661
+ dpd_timeout_action: typing.Optional[builtins.str] = None,
59662
+ dpd_timeout_seconds: typing.Optional[jsii.Number] = None,
59663
+ enable_tunnel_lifecycle_control: typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]] = None,
59664
+ ike_versions: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union["CfnVPNConnection.IKEVersionsRequestListValueProperty", typing.Dict[builtins.str, typing.Any]]]]]] = None,
59665
+ log_options: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union["CfnVPNConnection.VpnTunnelLogOptionsSpecificationProperty", typing.Dict[builtins.str, typing.Any]]]] = None,
59666
+ phase1_dh_group_numbers: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union["CfnVPNConnection.Phase1DHGroupNumbersRequestListValueProperty", typing.Dict[builtins.str, typing.Any]]]]]] = None,
59667
+ phase1_encryption_algorithms: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union["CfnVPNConnection.Phase1EncryptionAlgorithmsRequestListValueProperty", typing.Dict[builtins.str, typing.Any]]]]]] = None,
59668
+ phase1_integrity_algorithms: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union["CfnVPNConnection.Phase1IntegrityAlgorithmsRequestListValueProperty", typing.Dict[builtins.str, typing.Any]]]]]] = None,
59669
+ phase1_lifetime_seconds: typing.Optional[jsii.Number] = None,
59670
+ phase2_dh_group_numbers: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union["CfnVPNConnection.Phase2DHGroupNumbersRequestListValueProperty", typing.Dict[builtins.str, typing.Any]]]]]] = None,
59671
+ phase2_encryption_algorithms: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union["CfnVPNConnection.Phase2EncryptionAlgorithmsRequestListValueProperty", typing.Dict[builtins.str, typing.Any]]]]]] = None,
59672
+ phase2_integrity_algorithms: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union["CfnVPNConnection.Phase2IntegrityAlgorithmsRequestListValueProperty", typing.Dict[builtins.str, typing.Any]]]]]] = None,
59673
+ phase2_lifetime_seconds: typing.Optional[jsii.Number] = None,
59011
59674
  pre_shared_key: typing.Optional[builtins.str] = None,
59675
+ rekey_fuzz_percentage: typing.Optional[jsii.Number] = None,
59676
+ rekey_margin_time_seconds: typing.Optional[jsii.Number] = None,
59677
+ replay_window_size: typing.Optional[jsii.Number] = None,
59678
+ startup_action: typing.Optional[builtins.str] = None,
59012
59679
  tunnel_inside_cidr: typing.Optional[builtins.str] = None,
59680
+ tunnel_inside_ipv6_cidr: typing.Optional[builtins.str] = None,
59013
59681
  ) -> None:
59014
59682
  '''The tunnel options for a single VPN tunnel.
59015
59683
 
59684
+ :param dpd_timeout_action: The action to take after DPD timeout occurs. Specify ``restart`` to restart the IKE initiation. Specify ``clear`` to end the IKE session. Valid Values: ``clear`` | ``none`` | ``restart`` Default: ``clear``
59685
+ :param dpd_timeout_seconds: The number of seconds after which a DPD timeout occurs. Constraints: A value greater than or equal to 30. Default: ``30``
59686
+ :param enable_tunnel_lifecycle_control: Turn on or off tunnel endpoint lifecycle control feature.
59687
+ :param ike_versions: The IKE versions that are permitted for the VPN tunnel. Valid values: ``ikev1`` | ``ikev2``
59688
+ :param log_options: Options for logging VPN tunnel activity.
59689
+ :param phase1_dh_group_numbers: One or more Diffie-Hellman group numbers that are permitted for the VPN tunnel for phase 1 IKE negotiations. Valid values: ``2`` | ``14`` | ``15`` | ``16`` | ``17`` | ``18`` | ``19`` | ``20`` | ``21`` | ``22`` | ``23`` | ``24``
59690
+ :param phase1_encryption_algorithms: One or more encryption algorithms that are permitted for the VPN tunnel for phase 1 IKE negotiations. Valid values: ``AES128`` | ``AES256`` | ``AES128-GCM-16`` | ``AES256-GCM-16``
59691
+ :param phase1_integrity_algorithms: One or more integrity algorithms that are permitted for the VPN tunnel for phase 1 IKE negotiations. Valid values: ``SHA1`` | ``SHA2-256`` | ``SHA2-384`` | ``SHA2-512``
59692
+ :param phase1_lifetime_seconds: The lifetime for phase 1 of the IKE negotiation, in seconds. Constraints: A value between 900 and 28,800. Default: ``28800``
59693
+ :param phase2_dh_group_numbers: One or more Diffie-Hellman group numbers that are permitted for the VPN tunnel for phase 2 IKE negotiations. Valid values: ``2`` | ``5`` | ``14`` | ``15`` | ``16`` | ``17`` | ``18`` | ``19`` | ``20`` | ``21`` | ``22`` | ``23`` | ``24``
59694
+ :param phase2_encryption_algorithms: One or more encryption algorithms that are permitted for the VPN tunnel for phase 2 IKE negotiations. Valid values: ``AES128`` | ``AES256`` | ``AES128-GCM-16`` | ``AES256-GCM-16``
59695
+ :param phase2_integrity_algorithms: One or more integrity algorithms that are permitted for the VPN tunnel for phase 2 IKE negotiations. Valid values: ``SHA1`` | ``SHA2-256`` | ``SHA2-384`` | ``SHA2-512``
59696
+ :param phase2_lifetime_seconds: The lifetime for phase 2 of the IKE negotiation, in seconds. Constraints: A value between 900 and 3,600. The value must be less than the value for ``Phase1LifetimeSeconds`` . Default: ``3600``
59016
59697
  :param pre_shared_key: The pre-shared key (PSK) to establish initial authentication between the virtual private gateway and customer gateway. Constraints: Allowed characters are alphanumeric characters, periods (.), and underscores (_). Must be between 8 and 64 characters in length and cannot start with zero (0).
59698
+ :param rekey_fuzz_percentage: The percentage of the rekey window (determined by ``RekeyMarginTimeSeconds`` ) during which the rekey time is randomly selected. Constraints: A value between 0 and 100. Default: ``100``
59699
+ :param rekey_margin_time_seconds: The margin time, in seconds, before the phase 2 lifetime expires, during which the AWS side of the VPN connection performs an IKE rekey. The exact time of the rekey is randomly selected based on the value for ``RekeyFuzzPercentage`` . Constraints: A value between 60 and half of ``Phase2LifetimeSeconds`` . Default: ``270``
59700
+ :param replay_window_size: The number of packets in an IKE replay window. Constraints: A value between 64 and 2048. Default: ``1024``
59701
+ :param startup_action: The action to take when the establishing the tunnel for the VPN connection. By default, your customer gateway device must initiate the IKE negotiation and bring up the tunnel. Specify ``start`` for AWS to initiate the IKE negotiation. Valid Values: ``add`` | ``start`` Default: ``add``
59017
59702
  :param tunnel_inside_cidr: The range of inside IP addresses for the tunnel. Any specified CIDR blocks must be unique across all VPN connections that use the same virtual private gateway. Constraints: A size /30 CIDR block from the ``169.254.0.0/16`` range. The following CIDR blocks are reserved and cannot be used: - ``169.254.0.0/30`` - ``169.254.1.0/30`` - ``169.254.2.0/30`` - ``169.254.3.0/30`` - ``169.254.4.0/30`` - ``169.254.5.0/30`` - ``169.254.169.252/30``
59703
+ :param tunnel_inside_ipv6_cidr: The range of inside IPv6 addresses for the tunnel. Any specified CIDR blocks must be unique across all VPN connections that use the same transit gateway. Constraints: A size /126 CIDR block from the local ``fd00::/8`` range.
59018
59704
 
59019
59705
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-vpnconnection-vpntunneloptionsspecification.html
59020
59706
  :exampleMetadata: fixture=_generated
@@ -59026,19 +59712,278 @@ class CfnVPNConnection(
59026
59712
  from aws_cdk import aws_ec2 as ec2
59027
59713
 
59028
59714
  vpn_tunnel_options_specification_property = ec2.CfnVPNConnection.VpnTunnelOptionsSpecificationProperty(
59715
+ dpd_timeout_action="dpdTimeoutAction",
59716
+ dpd_timeout_seconds=123,
59717
+ enable_tunnel_lifecycle_control=False,
59718
+ ike_versions=[{
59719
+ "value": "value"
59720
+ }],
59721
+ log_options=ec2.CfnVPNConnection.VpnTunnelLogOptionsSpecificationProperty(
59722
+ cloudwatch_log_options=ec2.CfnVPNConnection.CloudwatchLogOptionsSpecificationProperty(
59723
+ log_enabled=False,
59724
+ log_group_arn="logGroupArn",
59725
+ log_output_format="logOutputFormat"
59726
+ )
59727
+ ),
59728
+ phase1_dh_group_numbers=[ec2.CfnVPNConnection.Phase1DHGroupNumbersRequestListValueProperty(
59729
+ value=123
59730
+ )],
59731
+ phase1_encryption_algorithms=[ec2.CfnVPNConnection.Phase1EncryptionAlgorithmsRequestListValueProperty(
59732
+ value="value"
59733
+ )],
59734
+ phase1_integrity_algorithms=[ec2.CfnVPNConnection.Phase1IntegrityAlgorithmsRequestListValueProperty(
59735
+ value="value"
59736
+ )],
59737
+ phase1_lifetime_seconds=123,
59738
+ phase2_dh_group_numbers=[ec2.CfnVPNConnection.Phase2DHGroupNumbersRequestListValueProperty(
59739
+ value=123
59740
+ )],
59741
+ phase2_encryption_algorithms=[ec2.CfnVPNConnection.Phase2EncryptionAlgorithmsRequestListValueProperty(
59742
+ value="value"
59743
+ )],
59744
+ phase2_integrity_algorithms=[ec2.CfnVPNConnection.Phase2IntegrityAlgorithmsRequestListValueProperty(
59745
+ value="value"
59746
+ )],
59747
+ phase2_lifetime_seconds=123,
59029
59748
  pre_shared_key="preSharedKey",
59030
- tunnel_inside_cidr="tunnelInsideCidr"
59749
+ rekey_fuzz_percentage=123,
59750
+ rekey_margin_time_seconds=123,
59751
+ replay_window_size=123,
59752
+ startup_action="startupAction",
59753
+ tunnel_inside_cidr="tunnelInsideCidr",
59754
+ tunnel_inside_ipv6_cidr="tunnelInsideIpv6Cidr"
59031
59755
  )
59032
59756
  '''
59033
59757
  if __debug__:
59034
59758
  type_hints = typing.get_type_hints(_typecheckingstub__c11a91303ade674ac2062d6f836f1c6c8a5ffcd828e189ee16a639aed0741e2c)
59759
+ check_type(argname="argument dpd_timeout_action", value=dpd_timeout_action, expected_type=type_hints["dpd_timeout_action"])
59760
+ check_type(argname="argument dpd_timeout_seconds", value=dpd_timeout_seconds, expected_type=type_hints["dpd_timeout_seconds"])
59761
+ check_type(argname="argument enable_tunnel_lifecycle_control", value=enable_tunnel_lifecycle_control, expected_type=type_hints["enable_tunnel_lifecycle_control"])
59762
+ check_type(argname="argument ike_versions", value=ike_versions, expected_type=type_hints["ike_versions"])
59763
+ check_type(argname="argument log_options", value=log_options, expected_type=type_hints["log_options"])
59764
+ check_type(argname="argument phase1_dh_group_numbers", value=phase1_dh_group_numbers, expected_type=type_hints["phase1_dh_group_numbers"])
59765
+ check_type(argname="argument phase1_encryption_algorithms", value=phase1_encryption_algorithms, expected_type=type_hints["phase1_encryption_algorithms"])
59766
+ check_type(argname="argument phase1_integrity_algorithms", value=phase1_integrity_algorithms, expected_type=type_hints["phase1_integrity_algorithms"])
59767
+ check_type(argname="argument phase1_lifetime_seconds", value=phase1_lifetime_seconds, expected_type=type_hints["phase1_lifetime_seconds"])
59768
+ check_type(argname="argument phase2_dh_group_numbers", value=phase2_dh_group_numbers, expected_type=type_hints["phase2_dh_group_numbers"])
59769
+ check_type(argname="argument phase2_encryption_algorithms", value=phase2_encryption_algorithms, expected_type=type_hints["phase2_encryption_algorithms"])
59770
+ check_type(argname="argument phase2_integrity_algorithms", value=phase2_integrity_algorithms, expected_type=type_hints["phase2_integrity_algorithms"])
59771
+ check_type(argname="argument phase2_lifetime_seconds", value=phase2_lifetime_seconds, expected_type=type_hints["phase2_lifetime_seconds"])
59035
59772
  check_type(argname="argument pre_shared_key", value=pre_shared_key, expected_type=type_hints["pre_shared_key"])
59773
+ check_type(argname="argument rekey_fuzz_percentage", value=rekey_fuzz_percentage, expected_type=type_hints["rekey_fuzz_percentage"])
59774
+ check_type(argname="argument rekey_margin_time_seconds", value=rekey_margin_time_seconds, expected_type=type_hints["rekey_margin_time_seconds"])
59775
+ check_type(argname="argument replay_window_size", value=replay_window_size, expected_type=type_hints["replay_window_size"])
59776
+ check_type(argname="argument startup_action", value=startup_action, expected_type=type_hints["startup_action"])
59036
59777
  check_type(argname="argument tunnel_inside_cidr", value=tunnel_inside_cidr, expected_type=type_hints["tunnel_inside_cidr"])
59778
+ check_type(argname="argument tunnel_inside_ipv6_cidr", value=tunnel_inside_ipv6_cidr, expected_type=type_hints["tunnel_inside_ipv6_cidr"])
59037
59779
  self._values: typing.Dict[builtins.str, typing.Any] = {}
59780
+ if dpd_timeout_action is not None:
59781
+ self._values["dpd_timeout_action"] = dpd_timeout_action
59782
+ if dpd_timeout_seconds is not None:
59783
+ self._values["dpd_timeout_seconds"] = dpd_timeout_seconds
59784
+ if enable_tunnel_lifecycle_control is not None:
59785
+ self._values["enable_tunnel_lifecycle_control"] = enable_tunnel_lifecycle_control
59786
+ if ike_versions is not None:
59787
+ self._values["ike_versions"] = ike_versions
59788
+ if log_options is not None:
59789
+ self._values["log_options"] = log_options
59790
+ if phase1_dh_group_numbers is not None:
59791
+ self._values["phase1_dh_group_numbers"] = phase1_dh_group_numbers
59792
+ if phase1_encryption_algorithms is not None:
59793
+ self._values["phase1_encryption_algorithms"] = phase1_encryption_algorithms
59794
+ if phase1_integrity_algorithms is not None:
59795
+ self._values["phase1_integrity_algorithms"] = phase1_integrity_algorithms
59796
+ if phase1_lifetime_seconds is not None:
59797
+ self._values["phase1_lifetime_seconds"] = phase1_lifetime_seconds
59798
+ if phase2_dh_group_numbers is not None:
59799
+ self._values["phase2_dh_group_numbers"] = phase2_dh_group_numbers
59800
+ if phase2_encryption_algorithms is not None:
59801
+ self._values["phase2_encryption_algorithms"] = phase2_encryption_algorithms
59802
+ if phase2_integrity_algorithms is not None:
59803
+ self._values["phase2_integrity_algorithms"] = phase2_integrity_algorithms
59804
+ if phase2_lifetime_seconds is not None:
59805
+ self._values["phase2_lifetime_seconds"] = phase2_lifetime_seconds
59038
59806
  if pre_shared_key is not None:
59039
59807
  self._values["pre_shared_key"] = pre_shared_key
59808
+ if rekey_fuzz_percentage is not None:
59809
+ self._values["rekey_fuzz_percentage"] = rekey_fuzz_percentage
59810
+ if rekey_margin_time_seconds is not None:
59811
+ self._values["rekey_margin_time_seconds"] = rekey_margin_time_seconds
59812
+ if replay_window_size is not None:
59813
+ self._values["replay_window_size"] = replay_window_size
59814
+ if startup_action is not None:
59815
+ self._values["startup_action"] = startup_action
59040
59816
  if tunnel_inside_cidr is not None:
59041
59817
  self._values["tunnel_inside_cidr"] = tunnel_inside_cidr
59818
+ if tunnel_inside_ipv6_cidr is not None:
59819
+ self._values["tunnel_inside_ipv6_cidr"] = tunnel_inside_ipv6_cidr
59820
+
59821
+ @builtins.property
59822
+ def dpd_timeout_action(self) -> typing.Optional[builtins.str]:
59823
+ '''The action to take after DPD timeout occurs.
59824
+
59825
+ Specify ``restart`` to restart the IKE initiation. Specify ``clear`` to end the IKE session.
59826
+
59827
+ Valid Values: ``clear`` | ``none`` | ``restart``
59828
+
59829
+ Default: ``clear``
59830
+
59831
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-vpnconnection-vpntunneloptionsspecification.html#cfn-ec2-vpnconnection-vpntunneloptionsspecification-dpdtimeoutaction
59832
+ '''
59833
+ result = self._values.get("dpd_timeout_action")
59834
+ return typing.cast(typing.Optional[builtins.str], result)
59835
+
59836
+ @builtins.property
59837
+ def dpd_timeout_seconds(self) -> typing.Optional[jsii.Number]:
59838
+ '''The number of seconds after which a DPD timeout occurs.
59839
+
59840
+ Constraints: A value greater than or equal to 30.
59841
+
59842
+ Default: ``30``
59843
+
59844
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-vpnconnection-vpntunneloptionsspecification.html#cfn-ec2-vpnconnection-vpntunneloptionsspecification-dpdtimeoutseconds
59845
+ '''
59846
+ result = self._values.get("dpd_timeout_seconds")
59847
+ return typing.cast(typing.Optional[jsii.Number], result)
59848
+
59849
+ @builtins.property
59850
+ def enable_tunnel_lifecycle_control(
59851
+ self,
59852
+ ) -> typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]]:
59853
+ '''Turn on or off tunnel endpoint lifecycle control feature.
59854
+
59855
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-vpnconnection-vpntunneloptionsspecification.html#cfn-ec2-vpnconnection-vpntunneloptionsspecification-enabletunnellifecyclecontrol
59856
+ '''
59857
+ result = self._values.get("enable_tunnel_lifecycle_control")
59858
+ return typing.cast(typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]], result)
59859
+
59860
+ @builtins.property
59861
+ def ike_versions(
59862
+ self,
59863
+ ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, "CfnVPNConnection.IKEVersionsRequestListValueProperty"]]]]:
59864
+ '''The IKE versions that are permitted for the VPN tunnel.
59865
+
59866
+ Valid values: ``ikev1`` | ``ikev2``
59867
+
59868
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-vpnconnection-vpntunneloptionsspecification.html#cfn-ec2-vpnconnection-vpntunneloptionsspecification-ikeversions
59869
+ '''
59870
+ result = self._values.get("ike_versions")
59871
+ return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, "CfnVPNConnection.IKEVersionsRequestListValueProperty"]]]], result)
59872
+
59873
+ @builtins.property
59874
+ def log_options(
59875
+ self,
59876
+ ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnVPNConnection.VpnTunnelLogOptionsSpecificationProperty"]]:
59877
+ '''Options for logging VPN tunnel activity.
59878
+
59879
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-vpnconnection-vpntunneloptionsspecification.html#cfn-ec2-vpnconnection-vpntunneloptionsspecification-logoptions
59880
+ '''
59881
+ result = self._values.get("log_options")
59882
+ return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnVPNConnection.VpnTunnelLogOptionsSpecificationProperty"]], result)
59883
+
59884
+ @builtins.property
59885
+ def phase1_dh_group_numbers(
59886
+ self,
59887
+ ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, "CfnVPNConnection.Phase1DHGroupNumbersRequestListValueProperty"]]]]:
59888
+ '''One or more Diffie-Hellman group numbers that are permitted for the VPN tunnel for phase 1 IKE negotiations.
59889
+
59890
+ Valid values: ``2`` | ``14`` | ``15`` | ``16`` | ``17`` | ``18`` | ``19`` | ``20`` | ``21`` | ``22`` | ``23`` | ``24``
59891
+
59892
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-vpnconnection-vpntunneloptionsspecification.html#cfn-ec2-vpnconnection-vpntunneloptionsspecification-phase1dhgroupnumbers
59893
+ '''
59894
+ result = self._values.get("phase1_dh_group_numbers")
59895
+ return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, "CfnVPNConnection.Phase1DHGroupNumbersRequestListValueProperty"]]]], result)
59896
+
59897
+ @builtins.property
59898
+ def phase1_encryption_algorithms(
59899
+ self,
59900
+ ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, "CfnVPNConnection.Phase1EncryptionAlgorithmsRequestListValueProperty"]]]]:
59901
+ '''One or more encryption algorithms that are permitted for the VPN tunnel for phase 1 IKE negotiations.
59902
+
59903
+ Valid values: ``AES128`` | ``AES256`` | ``AES128-GCM-16`` | ``AES256-GCM-16``
59904
+
59905
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-vpnconnection-vpntunneloptionsspecification.html#cfn-ec2-vpnconnection-vpntunneloptionsspecification-phase1encryptionalgorithms
59906
+ '''
59907
+ result = self._values.get("phase1_encryption_algorithms")
59908
+ return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, "CfnVPNConnection.Phase1EncryptionAlgorithmsRequestListValueProperty"]]]], result)
59909
+
59910
+ @builtins.property
59911
+ def phase1_integrity_algorithms(
59912
+ self,
59913
+ ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, "CfnVPNConnection.Phase1IntegrityAlgorithmsRequestListValueProperty"]]]]:
59914
+ '''One or more integrity algorithms that are permitted for the VPN tunnel for phase 1 IKE negotiations.
59915
+
59916
+ Valid values: ``SHA1`` | ``SHA2-256`` | ``SHA2-384`` | ``SHA2-512``
59917
+
59918
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-vpnconnection-vpntunneloptionsspecification.html#cfn-ec2-vpnconnection-vpntunneloptionsspecification-phase1integrityalgorithms
59919
+ '''
59920
+ result = self._values.get("phase1_integrity_algorithms")
59921
+ return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, "CfnVPNConnection.Phase1IntegrityAlgorithmsRequestListValueProperty"]]]], result)
59922
+
59923
+ @builtins.property
59924
+ def phase1_lifetime_seconds(self) -> typing.Optional[jsii.Number]:
59925
+ '''The lifetime for phase 1 of the IKE negotiation, in seconds.
59926
+
59927
+ Constraints: A value between 900 and 28,800.
59928
+
59929
+ Default: ``28800``
59930
+
59931
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-vpnconnection-vpntunneloptionsspecification.html#cfn-ec2-vpnconnection-vpntunneloptionsspecification-phase1lifetimeseconds
59932
+ '''
59933
+ result = self._values.get("phase1_lifetime_seconds")
59934
+ return typing.cast(typing.Optional[jsii.Number], result)
59935
+
59936
+ @builtins.property
59937
+ def phase2_dh_group_numbers(
59938
+ self,
59939
+ ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, "CfnVPNConnection.Phase2DHGroupNumbersRequestListValueProperty"]]]]:
59940
+ '''One or more Diffie-Hellman group numbers that are permitted for the VPN tunnel for phase 2 IKE negotiations.
59941
+
59942
+ Valid values: ``2`` | ``5`` | ``14`` | ``15`` | ``16`` | ``17`` | ``18`` | ``19`` | ``20`` | ``21`` | ``22`` | ``23`` | ``24``
59943
+
59944
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-vpnconnection-vpntunneloptionsspecification.html#cfn-ec2-vpnconnection-vpntunneloptionsspecification-phase2dhgroupnumbers
59945
+ '''
59946
+ result = self._values.get("phase2_dh_group_numbers")
59947
+ return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, "CfnVPNConnection.Phase2DHGroupNumbersRequestListValueProperty"]]]], result)
59948
+
59949
+ @builtins.property
59950
+ def phase2_encryption_algorithms(
59951
+ self,
59952
+ ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, "CfnVPNConnection.Phase2EncryptionAlgorithmsRequestListValueProperty"]]]]:
59953
+ '''One or more encryption algorithms that are permitted for the VPN tunnel for phase 2 IKE negotiations.
59954
+
59955
+ Valid values: ``AES128`` | ``AES256`` | ``AES128-GCM-16`` | ``AES256-GCM-16``
59956
+
59957
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-vpnconnection-vpntunneloptionsspecification.html#cfn-ec2-vpnconnection-vpntunneloptionsspecification-phase2encryptionalgorithms
59958
+ '''
59959
+ result = self._values.get("phase2_encryption_algorithms")
59960
+ return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, "CfnVPNConnection.Phase2EncryptionAlgorithmsRequestListValueProperty"]]]], result)
59961
+
59962
+ @builtins.property
59963
+ def phase2_integrity_algorithms(
59964
+ self,
59965
+ ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, "CfnVPNConnection.Phase2IntegrityAlgorithmsRequestListValueProperty"]]]]:
59966
+ '''One or more integrity algorithms that are permitted for the VPN tunnel for phase 2 IKE negotiations.
59967
+
59968
+ Valid values: ``SHA1`` | ``SHA2-256`` | ``SHA2-384`` | ``SHA2-512``
59969
+
59970
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-vpnconnection-vpntunneloptionsspecification.html#cfn-ec2-vpnconnection-vpntunneloptionsspecification-phase2integrityalgorithms
59971
+ '''
59972
+ result = self._values.get("phase2_integrity_algorithms")
59973
+ return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, "CfnVPNConnection.Phase2IntegrityAlgorithmsRequestListValueProperty"]]]], result)
59974
+
59975
+ @builtins.property
59976
+ def phase2_lifetime_seconds(self) -> typing.Optional[jsii.Number]:
59977
+ '''The lifetime for phase 2 of the IKE negotiation, in seconds.
59978
+
59979
+ Constraints: A value between 900 and 3,600. The value must be less than the value for ``Phase1LifetimeSeconds`` .
59980
+
59981
+ Default: ``3600``
59982
+
59983
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-vpnconnection-vpntunneloptionsspecification.html#cfn-ec2-vpnconnection-vpntunneloptionsspecification-phase2lifetimeseconds
59984
+ '''
59985
+ result = self._values.get("phase2_lifetime_seconds")
59986
+ return typing.cast(typing.Optional[jsii.Number], result)
59042
59987
 
59043
59988
  @builtins.property
59044
59989
  def pre_shared_key(self) -> typing.Optional[builtins.str]:
@@ -59051,6 +59996,62 @@ class CfnVPNConnection(
59051
59996
  result = self._values.get("pre_shared_key")
59052
59997
  return typing.cast(typing.Optional[builtins.str], result)
59053
59998
 
59999
+ @builtins.property
60000
+ def rekey_fuzz_percentage(self) -> typing.Optional[jsii.Number]:
60001
+ '''The percentage of the rekey window (determined by ``RekeyMarginTimeSeconds`` ) during which the rekey time is randomly selected.
60002
+
60003
+ Constraints: A value between 0 and 100.
60004
+
60005
+ Default: ``100``
60006
+
60007
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-vpnconnection-vpntunneloptionsspecification.html#cfn-ec2-vpnconnection-vpntunneloptionsspecification-rekeyfuzzpercentage
60008
+ '''
60009
+ result = self._values.get("rekey_fuzz_percentage")
60010
+ return typing.cast(typing.Optional[jsii.Number], result)
60011
+
60012
+ @builtins.property
60013
+ def rekey_margin_time_seconds(self) -> typing.Optional[jsii.Number]:
60014
+ '''The margin time, in seconds, before the phase 2 lifetime expires, during which the AWS side of the VPN connection performs an IKE rekey.
60015
+
60016
+ The exact time of the rekey is randomly selected based on the value for ``RekeyFuzzPercentage`` .
60017
+
60018
+ Constraints: A value between 60 and half of ``Phase2LifetimeSeconds`` .
60019
+
60020
+ Default: ``270``
60021
+
60022
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-vpnconnection-vpntunneloptionsspecification.html#cfn-ec2-vpnconnection-vpntunneloptionsspecification-rekeymargintimeseconds
60023
+ '''
60024
+ result = self._values.get("rekey_margin_time_seconds")
60025
+ return typing.cast(typing.Optional[jsii.Number], result)
60026
+
60027
+ @builtins.property
60028
+ def replay_window_size(self) -> typing.Optional[jsii.Number]:
60029
+ '''The number of packets in an IKE replay window.
60030
+
60031
+ Constraints: A value between 64 and 2048.
60032
+
60033
+ Default: ``1024``
60034
+
60035
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-vpnconnection-vpntunneloptionsspecification.html#cfn-ec2-vpnconnection-vpntunneloptionsspecification-replaywindowsize
60036
+ '''
60037
+ result = self._values.get("replay_window_size")
60038
+ return typing.cast(typing.Optional[jsii.Number], result)
60039
+
60040
+ @builtins.property
60041
+ def startup_action(self) -> typing.Optional[builtins.str]:
60042
+ '''The action to take when the establishing the tunnel for the VPN connection.
60043
+
60044
+ By default, your customer gateway device must initiate the IKE negotiation and bring up the tunnel. Specify ``start`` for AWS to initiate the IKE negotiation.
60045
+
60046
+ Valid Values: ``add`` | ``start``
60047
+
60048
+ Default: ``add``
60049
+
60050
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-vpnconnection-vpntunneloptionsspecification.html#cfn-ec2-vpnconnection-vpntunneloptionsspecification-startupaction
60051
+ '''
60052
+ result = self._values.get("startup_action")
60053
+ return typing.cast(typing.Optional[builtins.str], result)
60054
+
59054
60055
  @builtins.property
59055
60056
  def tunnel_inside_cidr(self) -> typing.Optional[builtins.str]:
59056
60057
  '''The range of inside IP addresses for the tunnel.
@@ -59072,6 +60073,19 @@ class CfnVPNConnection(
59072
60073
  result = self._values.get("tunnel_inside_cidr")
59073
60074
  return typing.cast(typing.Optional[builtins.str], result)
59074
60075
 
60076
+ @builtins.property
60077
+ def tunnel_inside_ipv6_cidr(self) -> typing.Optional[builtins.str]:
60078
+ '''The range of inside IPv6 addresses for the tunnel.
60079
+
60080
+ Any specified CIDR blocks must be unique across all VPN connections that use the same transit gateway.
60081
+
60082
+ Constraints: A size /126 CIDR block from the local ``fd00::/8`` range.
60083
+
60084
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-vpnconnection-vpntunneloptionsspecification.html#cfn-ec2-vpnconnection-vpntunneloptionsspecification-tunnelinsideipv6cidr
60085
+ '''
60086
+ result = self._values.get("tunnel_inside_ipv6_cidr")
60087
+ return typing.cast(typing.Optional[builtins.str], result)
60088
+
59075
60089
  def __eq__(self, rhs: typing.Any) -> builtins.bool:
59076
60090
  return isinstance(rhs, self.__class__) and rhs._values == self._values
59077
60091
 
@@ -59173,8 +60187,46 @@ class CfnVPNConnectionProps:
59173
60187
  tunnel_inside_ip_version="tunnelInsideIpVersion",
59174
60188
  vpn_gateway_id="vpnGatewayId",
59175
60189
  vpn_tunnel_options_specifications=[ec2.CfnVPNConnection.VpnTunnelOptionsSpecificationProperty(
60190
+ dpd_timeout_action="dpdTimeoutAction",
60191
+ dpd_timeout_seconds=123,
60192
+ enable_tunnel_lifecycle_control=False,
60193
+ ike_versions=[{
60194
+ "value": "value"
60195
+ }],
60196
+ log_options=ec2.CfnVPNConnection.VpnTunnelLogOptionsSpecificationProperty(
60197
+ cloudwatch_log_options=ec2.CfnVPNConnection.CloudwatchLogOptionsSpecificationProperty(
60198
+ log_enabled=False,
60199
+ log_group_arn="logGroupArn",
60200
+ log_output_format="logOutputFormat"
60201
+ )
60202
+ ),
60203
+ phase1_dh_group_numbers=[ec2.CfnVPNConnection.Phase1DHGroupNumbersRequestListValueProperty(
60204
+ value=123
60205
+ )],
60206
+ phase1_encryption_algorithms=[ec2.CfnVPNConnection.Phase1EncryptionAlgorithmsRequestListValueProperty(
60207
+ value="value"
60208
+ )],
60209
+ phase1_integrity_algorithms=[ec2.CfnVPNConnection.Phase1IntegrityAlgorithmsRequestListValueProperty(
60210
+ value="value"
60211
+ )],
60212
+ phase1_lifetime_seconds=123,
60213
+ phase2_dh_group_numbers=[ec2.CfnVPNConnection.Phase2DHGroupNumbersRequestListValueProperty(
60214
+ value=123
60215
+ )],
60216
+ phase2_encryption_algorithms=[ec2.CfnVPNConnection.Phase2EncryptionAlgorithmsRequestListValueProperty(
60217
+ value="value"
60218
+ )],
60219
+ phase2_integrity_algorithms=[ec2.CfnVPNConnection.Phase2IntegrityAlgorithmsRequestListValueProperty(
60220
+ value="value"
60221
+ )],
60222
+ phase2_lifetime_seconds=123,
59176
60223
  pre_shared_key="preSharedKey",
59177
- tunnel_inside_cidr="tunnelInsideCidr"
60224
+ rekey_fuzz_percentage=123,
60225
+ rekey_margin_time_seconds=123,
60226
+ replay_window_size=123,
60227
+ startup_action="startupAction",
60228
+ tunnel_inside_cidr="tunnelInsideCidr",
60229
+ tunnel_inside_ipv6_cidr="tunnelInsideIpv6Cidr"
59178
60230
  )]
59179
60231
  )
59180
60232
  '''
@@ -72740,6 +73792,7 @@ class Instance(
72740
73792
  block_devices: typing.Optional[typing.Sequence[typing.Union[BlockDevice, typing.Dict[builtins.str, typing.Any]]]] = None,
72741
73793
  credit_specification: typing.Optional[CpuCredits] = None,
72742
73794
  detailed_monitoring: typing.Optional[builtins.bool] = None,
73795
+ disable_api_termination: typing.Optional[builtins.bool] = None,
72743
73796
  ebs_optimized: typing.Optional[builtins.bool] = None,
72744
73797
  enclave_enabled: typing.Optional[builtins.bool] = None,
72745
73798
  hibernation_enabled: typing.Optional[builtins.bool] = None,
@@ -72776,6 +73829,7 @@ class Instance(
72776
73829
  :param block_devices: Specifies how block devices are exposed to the instance. You can specify virtual devices and EBS volumes. Each instance that is launched has an associated root device volume, either an Amazon EBS volume or an instance store volume. You can use block device mappings to specify additional EBS volumes or instance store volumes to attach to an instance when it is launched. Default: - Uses the block device mapping of the AMI
72777
73830
  :param credit_specification: Specifying the CPU credit type for burstable EC2 instance types (T2, T3, T3a, etc). The unlimited CPU credit option is not supported for T3 instances with a dedicated host. Default: - T2 instances are standard, while T3, T4g, and T3a instances are unlimited.
72778
73831
  :param detailed_monitoring: Whether "Detailed Monitoring" is enabled for this instance Keep in mind that Detailed Monitoring results in extra charges. Default: - false
73832
+ :param disable_api_termination: If true, the instance will not be able to be terminated using the Amazon EC2 console, CLI, or API. 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
72779
73833
  :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
72780
73834
  :param enclave_enabled: Whether the instance is enabled for AWS Nitro Enclaves. Nitro Enclaves requires a Nitro-based virtualized parent instance with specific Intel/AMD with at least 4 vCPUs or Graviton with at least 2 vCPUs instance types and Linux/Windows host OS, while the enclave itself supports only Linux OS. You can't set both ``enclaveEnabled`` and ``hibernationEnabled`` to true on the same instance. Default: - false
72781
73835
  :param hibernation_enabled: Whether the instance is enabled for hibernation. You can't set both ``enclaveEnabled`` and ``hibernationEnabled`` to true on the same instance. Default: - false
@@ -72814,6 +73868,7 @@ class Instance(
72814
73868
  block_devices=block_devices,
72815
73869
  credit_specification=credit_specification,
72816
73870
  detailed_monitoring=detailed_monitoring,
73871
+ disable_api_termination=disable_api_termination,
72817
73872
  ebs_optimized=ebs_optimized,
72818
73873
  enclave_enabled=enclave_enabled,
72819
73874
  hibernation_enabled=hibernation_enabled,
@@ -73625,6 +74680,7 @@ class InstanceInitiatedShutdownBehavior(enum.Enum):
73625
74680
  "block_devices": "blockDevices",
73626
74681
  "credit_specification": "creditSpecification",
73627
74682
  "detailed_monitoring": "detailedMonitoring",
74683
+ "disable_api_termination": "disableApiTermination",
73628
74684
  "ebs_optimized": "ebsOptimized",
73629
74685
  "enclave_enabled": "enclaveEnabled",
73630
74686
  "hibernation_enabled": "hibernationEnabled",
@@ -73663,6 +74719,7 @@ class InstanceProps:
73663
74719
  block_devices: typing.Optional[typing.Sequence[typing.Union[BlockDevice, typing.Dict[builtins.str, typing.Any]]]] = None,
73664
74720
  credit_specification: typing.Optional[CpuCredits] = None,
73665
74721
  detailed_monitoring: typing.Optional[builtins.bool] = None,
74722
+ disable_api_termination: typing.Optional[builtins.bool] = None,
73666
74723
  ebs_optimized: typing.Optional[builtins.bool] = None,
73667
74724
  enclave_enabled: typing.Optional[builtins.bool] = None,
73668
74725
  hibernation_enabled: typing.Optional[builtins.bool] = None,
@@ -73698,6 +74755,7 @@ class InstanceProps:
73698
74755
  :param block_devices: Specifies how block devices are exposed to the instance. You can specify virtual devices and EBS volumes. Each instance that is launched has an associated root device volume, either an Amazon EBS volume or an instance store volume. You can use block device mappings to specify additional EBS volumes or instance store volumes to attach to an instance when it is launched. Default: - Uses the block device mapping of the AMI
73699
74756
  :param credit_specification: Specifying the CPU credit type for burstable EC2 instance types (T2, T3, T3a, etc). The unlimited CPU credit option is not supported for T3 instances with a dedicated host. Default: - T2 instances are standard, while T3, T4g, and T3a instances are unlimited.
73700
74757
  :param detailed_monitoring: Whether "Detailed Monitoring" is enabled for this instance Keep in mind that Detailed Monitoring results in extra charges. Default: - false
74758
+ :param disable_api_termination: If true, the instance will not be able to be terminated using the Amazon EC2 console, CLI, or API. 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
73701
74759
  :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
73702
74760
  :param enclave_enabled: Whether the instance is enabled for AWS Nitro Enclaves. Nitro Enclaves requires a Nitro-based virtualized parent instance with specific Intel/AMD with at least 4 vCPUs or Graviton with at least 2 vCPUs instance types and Linux/Windows host OS, while the enclave itself supports only Linux OS. You can't set both ``enclaveEnabled`` and ``hibernationEnabled`` to true on the same instance. Default: - false
73703
74761
  :param hibernation_enabled: Whether the instance is enabled for hibernation. You can't set both ``enclaveEnabled`` and ``hibernationEnabled`` to true on the same instance. Default: - false
@@ -73756,6 +74814,7 @@ class InstanceProps:
73756
74814
  check_type(argname="argument block_devices", value=block_devices, expected_type=type_hints["block_devices"])
73757
74815
  check_type(argname="argument credit_specification", value=credit_specification, expected_type=type_hints["credit_specification"])
73758
74816
  check_type(argname="argument detailed_monitoring", value=detailed_monitoring, expected_type=type_hints["detailed_monitoring"])
74817
+ check_type(argname="argument disable_api_termination", value=disable_api_termination, expected_type=type_hints["disable_api_termination"])
73759
74818
  check_type(argname="argument ebs_optimized", value=ebs_optimized, expected_type=type_hints["ebs_optimized"])
73760
74819
  check_type(argname="argument enclave_enabled", value=enclave_enabled, expected_type=type_hints["enclave_enabled"])
73761
74820
  check_type(argname="argument hibernation_enabled", value=hibernation_enabled, expected_type=type_hints["hibernation_enabled"])
@@ -73797,6 +74856,8 @@ class InstanceProps:
73797
74856
  self._values["credit_specification"] = credit_specification
73798
74857
  if detailed_monitoring is not None:
73799
74858
  self._values["detailed_monitoring"] = detailed_monitoring
74859
+ if disable_api_termination is not None:
74860
+ self._values["disable_api_termination"] = disable_api_termination
73800
74861
  if ebs_optimized is not None:
73801
74862
  self._values["ebs_optimized"] = ebs_optimized
73802
74863
  if enclave_enabled is not None:
@@ -73943,6 +75004,21 @@ class InstanceProps:
73943
75004
  result = self._values.get("detailed_monitoring")
73944
75005
  return typing.cast(typing.Optional[builtins.bool], result)
73945
75006
 
75007
+ @builtins.property
75008
+ def disable_api_termination(self) -> typing.Optional[builtins.bool]:
75009
+ '''If true, the instance will not be able to be terminated using the Amazon EC2 console, CLI, or API.
75010
+
75011
+ To change this attribute after launch, use `ModifyInstanceAttribute <https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_ModifyInstanceAttribute.html>`_.
75012
+ Alternatively, if you set InstanceInitiatedShutdownBehavior to terminate, you can terminate the instance
75013
+ by running the shutdown command from the instance.
75014
+
75015
+ :default: false
75016
+
75017
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-instance.html#cfn-ec2-instance-disableapitermination
75018
+ '''
75019
+ result = self._values.get("disable_api_termination")
75020
+ return typing.cast(typing.Optional[builtins.bool], result)
75021
+
73946
75022
  @builtins.property
73947
75023
  def ebs_optimized(self) -> typing.Optional[builtins.bool]:
73948
75024
  '''Indicates whether the instance is optimized for Amazon EBS I/O.
@@ -74386,14 +75462,15 @@ class InstanceSize(enum.Enum):
74386
75462
 
74387
75463
  # vpc: ec2.Vpc
74388
75464
 
74389
- cluster = rds.DatabaseCluster(self, "Database",
74390
- engine=rds.DatabaseClusterEngine.aurora_mysql(version=rds.AuroraMysqlEngineVersion.VER_3_01_0),
74391
- writer=rds.ClusterInstance.provisioned("Instance",
74392
- instance_type=ec2.InstanceType.of(ec2.InstanceClass.BURSTABLE3, ec2.InstanceSize.SMALL)
74393
- ),
74394
- readers=[rds.ClusterInstance.provisioned("reader")],
74395
- instance_update_behaviour=rds.InstanceUpdateBehaviour.ROLLING, # Optional - defaults to rds.InstanceUpdateBehaviour.BULK
74396
- vpc=vpc
75465
+ instance = rds.DatabaseInstance(self, "Instance",
75466
+ engine=rds.DatabaseInstanceEngine.oracle_se2(version=rds.OracleEngineVersion.VER_19_0_0_0_2020_04_R1),
75467
+ # optional, defaults to m5.large
75468
+ instance_type=ec2.InstanceType.of(ec2.InstanceClass.BURSTABLE3, ec2.InstanceSize.SMALL),
75469
+ credentials=rds.Credentials.from_generated_secret("syscdk"), # Optional - will default to 'admin' username and generated password
75470
+ vpc=vpc,
75471
+ vpc_subnets=ec2.SubnetSelection(
75472
+ subnet_type=ec2.SubnetType.PRIVATE_WITH_EGRESS
75473
+ )
74397
75474
  )
74398
75475
  '''
74399
75476
 
@@ -90541,6 +91618,7 @@ class BastionHostLinux(
90541
91618
  require_imdsv2: typing.Optional[builtins.bool] = None,
90542
91619
  security_group: typing.Optional[ISecurityGroup] = None,
90543
91620
  subnet_selection: typing.Optional[typing.Union[SubnetSelection, typing.Dict[builtins.str, typing.Any]]] = None,
91621
+ user_data_causes_replacement: typing.Optional[builtins.bool] = None,
90544
91622
  ) -> None:
90545
91623
  '''
90546
91624
  :param scope: -
@@ -90556,6 +91634,7 @@ class BastionHostLinux(
90556
91634
  :param require_imdsv2: Whether IMDSv2 should be required on this instance. Default: - false
90557
91635
  :param security_group: Security Group to assign to this instance. Default: - create new security group with no inbound and all outbound traffic allowed
90558
91636
  :param subnet_selection: Select the subnets to run the bastion host in. Set this to PUBLIC if you need to connect to this instance via the internet and cannot use SSM. You have to allow port 22 manually by using the connections field Default: - private subnets of the supplied VPC
91637
+ :param user_data_causes_replacement: Determines whether changes to the UserData will force instance replacement. Depending on the EC2 instance type, modifying the UserData may either restart or replace the instance: - Instance store-backed instances are replaced. - EBS-backed instances are restarted. Note that by default, restarting does not execute the updated UserData, so an alternative mechanism is needed to ensure the instance re-executes the UserData. When set to ``true``, the instance's Logical ID will depend on the UserData, causing CloudFormation to replace the instance if the UserData changes. Default: - ``true`` if ``initOptions`` is specified, otherwise ``false``.
90559
91638
  '''
90560
91639
  if __debug__:
90561
91640
  type_hints = typing.get_type_hints(_typecheckingstub__92a5b88f3339020054ea1e16e9617c17798da0b874294e4200a9b8e5bf598a4b)
@@ -90573,6 +91652,7 @@ class BastionHostLinux(
90573
91652
  require_imdsv2=require_imdsv2,
90574
91653
  security_group=security_group,
90575
91654
  subnet_selection=subnet_selection,
91655
+ user_data_causes_replacement=user_data_causes_replacement,
90576
91656
  )
90577
91657
 
90578
91658
  jsii.create(self.__class__, self, [scope, id, props])
@@ -95798,6 +96878,7 @@ def _typecheckingstub__2647a77163fdd79c5b81f9523b8e35e195386f549d272d3474261e525
95798
96878
  require_imdsv2: typing.Optional[builtins.bool] = None,
95799
96879
  security_group: typing.Optional[ISecurityGroup] = None,
95800
96880
  subnet_selection: typing.Optional[typing.Union[SubnetSelection, typing.Dict[builtins.str, typing.Any]]] = None,
96881
+ user_data_causes_replacement: typing.Optional[builtins.bool] = None,
95801
96882
  ) -> None:
95802
96883
  """Type checking stubs"""
95803
96884
  pass
@@ -95866,6 +96947,7 @@ def _typecheckingstub__96fb3bc559aaa9df971e86ea7cdd3cdc3de550019a2d3bf247d3fb169
95866
96947
  placement_group_arn: typing.Optional[builtins.str] = None,
95867
96948
  tag_specifications: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union[CfnCapacityReservation.TagSpecificationProperty, typing.Dict[builtins.str, typing.Any]]]]]] = None,
95868
96949
  tenancy: typing.Optional[builtins.str] = None,
96950
+ unused_reservation_billing_owner_id: typing.Optional[builtins.str] = None,
95869
96951
  ) -> None:
95870
96952
  """Type checking stubs"""
95871
96953
  pass
@@ -95960,6 +97042,12 @@ def _typecheckingstub__26e29c48a6cb47934fcf7b54e3d3eed16da0c88c8d717089ac043c03e
95960
97042
  """Type checking stubs"""
95961
97043
  pass
95962
97044
 
97045
+ def _typecheckingstub__2a09cfe18a64a35ca3513da8b832d14a3961e5101708c3d59880377b4beea919(
97046
+ value: typing.Optional[builtins.str],
97047
+ ) -> None:
97048
+ """Type checking stubs"""
97049
+ pass
97050
+
95963
97051
  def _typecheckingstub__578daf872c6424406c4ac67bfb16e1a373fb40f41078950b64a62c991d0be846(
95964
97052
  *,
95965
97053
  resource_type: typing.Optional[builtins.str] = None,
@@ -96102,6 +97190,7 @@ def _typecheckingstub__8a65d4e8bb2e678a9a6387fd809c3b5428c783211224ece5155ec92d1
96102
97190
  placement_group_arn: typing.Optional[builtins.str] = None,
96103
97191
  tag_specifications: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union[CfnCapacityReservation.TagSpecificationProperty, typing.Dict[builtins.str, typing.Any]]]]]] = None,
96104
97192
  tenancy: typing.Optional[builtins.str] = None,
97193
+ unused_reservation_billing_owner_id: typing.Optional[builtins.str] = None,
96105
97194
  ) -> None:
96106
97195
  """Type checking stubs"""
96107
97196
  pass
@@ -103742,10 +104831,93 @@ def _typecheckingstub__6e5141022cbe7f67d8c3189c0b096230c58a40a82fd75e0a817bb5321
103742
104831
  """Type checking stubs"""
103743
104832
  pass
103744
104833
 
104834
+ def _typecheckingstub__bd596864a79667f9fd7ea34a4b2b4bc80eea01d6f5d0306e0660a88f43622cf9(
104835
+ *,
104836
+ log_enabled: typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]] = None,
104837
+ log_group_arn: typing.Optional[builtins.str] = None,
104838
+ log_output_format: typing.Optional[builtins.str] = None,
104839
+ ) -> None:
104840
+ """Type checking stubs"""
104841
+ pass
104842
+
104843
+ def _typecheckingstub__fe82f7092cfe3daf1976f55ceb6d944eb6d256a481ec7e98ae1897a9d47af7a1(
104844
+ *,
104845
+ value: typing.Optional[builtins.str] = None,
104846
+ ) -> None:
104847
+ """Type checking stubs"""
104848
+ pass
104849
+
104850
+ def _typecheckingstub__918d5f5b5e88ae68daf35c3d93776500cfc34270e528ae9c3dc133bfa0096b85(
104851
+ *,
104852
+ value: typing.Optional[jsii.Number] = None,
104853
+ ) -> None:
104854
+ """Type checking stubs"""
104855
+ pass
104856
+
104857
+ def _typecheckingstub__22fbe2c39b9921f1ab2862205b1cf5ef686c18168136eb68682dbc3f7d433a36(
104858
+ *,
104859
+ value: typing.Optional[builtins.str] = None,
104860
+ ) -> None:
104861
+ """Type checking stubs"""
104862
+ pass
104863
+
104864
+ def _typecheckingstub__a0015c70bcf807f70699a0ff5fbdaf7b9703d3751680a849a5acd4186fcb9588(
104865
+ *,
104866
+ value: typing.Optional[builtins.str] = None,
104867
+ ) -> None:
104868
+ """Type checking stubs"""
104869
+ pass
104870
+
104871
+ def _typecheckingstub__d65eb64aa76aba56a565fc56d45096dad72a4eb03c46fd63ac7aa4d8c0bebcfd(
104872
+ *,
104873
+ value: typing.Optional[jsii.Number] = None,
104874
+ ) -> None:
104875
+ """Type checking stubs"""
104876
+ pass
104877
+
104878
+ def _typecheckingstub__acb67278adfea74d52c512c96c9c00fb330b3d45c9266ac4d2b30bfdbfaa674d(
104879
+ *,
104880
+ value: typing.Optional[builtins.str] = None,
104881
+ ) -> None:
104882
+ """Type checking stubs"""
104883
+ pass
104884
+
104885
+ def _typecheckingstub__f840e78842ee8f4a726cacbb8d5214f63eb65e6ddb1c55a3f5a779e97615acf9(
104886
+ *,
104887
+ value: typing.Optional[builtins.str] = None,
104888
+ ) -> None:
104889
+ """Type checking stubs"""
104890
+ pass
104891
+
104892
+ def _typecheckingstub__03be9463ce73095b0619c9b322ea6c5b050580851d3de940235cda9021f28166(
104893
+ *,
104894
+ cloudwatch_log_options: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnVPNConnection.CloudwatchLogOptionsSpecificationProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
104895
+ ) -> None:
104896
+ """Type checking stubs"""
104897
+ pass
104898
+
103745
104899
  def _typecheckingstub__c11a91303ade674ac2062d6f836f1c6c8a5ffcd828e189ee16a639aed0741e2c(
103746
104900
  *,
104901
+ dpd_timeout_action: typing.Optional[builtins.str] = None,
104902
+ dpd_timeout_seconds: typing.Optional[jsii.Number] = None,
104903
+ enable_tunnel_lifecycle_control: typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]] = None,
104904
+ ike_versions: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union[CfnVPNConnection.IKEVersionsRequestListValueProperty, typing.Dict[builtins.str, typing.Any]]]]]] = None,
104905
+ log_options: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnVPNConnection.VpnTunnelLogOptionsSpecificationProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
104906
+ phase1_dh_group_numbers: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union[CfnVPNConnection.Phase1DHGroupNumbersRequestListValueProperty, typing.Dict[builtins.str, typing.Any]]]]]] = None,
104907
+ phase1_encryption_algorithms: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union[CfnVPNConnection.Phase1EncryptionAlgorithmsRequestListValueProperty, typing.Dict[builtins.str, typing.Any]]]]]] = None,
104908
+ phase1_integrity_algorithms: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union[CfnVPNConnection.Phase1IntegrityAlgorithmsRequestListValueProperty, typing.Dict[builtins.str, typing.Any]]]]]] = None,
104909
+ phase1_lifetime_seconds: typing.Optional[jsii.Number] = None,
104910
+ phase2_dh_group_numbers: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union[CfnVPNConnection.Phase2DHGroupNumbersRequestListValueProperty, typing.Dict[builtins.str, typing.Any]]]]]] = None,
104911
+ phase2_encryption_algorithms: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union[CfnVPNConnection.Phase2EncryptionAlgorithmsRequestListValueProperty, typing.Dict[builtins.str, typing.Any]]]]]] = None,
104912
+ phase2_integrity_algorithms: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union[CfnVPNConnection.Phase2IntegrityAlgorithmsRequestListValueProperty, typing.Dict[builtins.str, typing.Any]]]]]] = None,
104913
+ phase2_lifetime_seconds: typing.Optional[jsii.Number] = None,
103747
104914
  pre_shared_key: typing.Optional[builtins.str] = None,
104915
+ rekey_fuzz_percentage: typing.Optional[jsii.Number] = None,
104916
+ rekey_margin_time_seconds: typing.Optional[jsii.Number] = None,
104917
+ replay_window_size: typing.Optional[jsii.Number] = None,
104918
+ startup_action: typing.Optional[builtins.str] = None,
103748
104919
  tunnel_inside_cidr: typing.Optional[builtins.str] = None,
104920
+ tunnel_inside_ipv6_cidr: typing.Optional[builtins.str] = None,
103749
104921
  ) -> None:
103750
104922
  """Type checking stubs"""
103751
104923
  pass
@@ -105554,6 +106726,7 @@ def _typecheckingstub__5fdf31f5ae2497c7efcb56df558011698f38dc19cff28ca7a78a08a6d
105554
106726
  block_devices: typing.Optional[typing.Sequence[typing.Union[BlockDevice, typing.Dict[builtins.str, typing.Any]]]] = None,
105555
106727
  credit_specification: typing.Optional[CpuCredits] = None,
105556
106728
  detailed_monitoring: typing.Optional[builtins.bool] = None,
106729
+ disable_api_termination: typing.Optional[builtins.bool] = None,
105557
106730
  ebs_optimized: typing.Optional[builtins.bool] = None,
105558
106731
  enclave_enabled: typing.Optional[builtins.bool] = None,
105559
106732
  hibernation_enabled: typing.Optional[builtins.bool] = None,
@@ -105624,6 +106797,7 @@ def _typecheckingstub__2d4dc63c6e6ee3ddc68d5dd204d8ac5ef1f1dec37a7b84d636225df1c
105624
106797
  block_devices: typing.Optional[typing.Sequence[typing.Union[BlockDevice, typing.Dict[builtins.str, typing.Any]]]] = None,
105625
106798
  credit_specification: typing.Optional[CpuCredits] = None,
105626
106799
  detailed_monitoring: typing.Optional[builtins.bool] = None,
106800
+ disable_api_termination: typing.Optional[builtins.bool] = None,
105627
106801
  ebs_optimized: typing.Optional[builtins.bool] = None,
105628
106802
  enclave_enabled: typing.Optional[builtins.bool] = None,
105629
106803
  hibernation_enabled: typing.Optional[builtins.bool] = None,
@@ -107255,6 +108429,7 @@ def _typecheckingstub__92a5b88f3339020054ea1e16e9617c17798da0b874294e4200a9b8e5b
107255
108429
  require_imdsv2: typing.Optional[builtins.bool] = None,
107256
108430
  security_group: typing.Optional[ISecurityGroup] = None,
107257
108431
  subnet_selection: typing.Optional[typing.Union[SubnetSelection, typing.Dict[builtins.str, typing.Any]]] = None,
108432
+ user_data_causes_replacement: typing.Optional[builtins.bool] = None,
107258
108433
  ) -> None:
107259
108434
  """Type checking stubs"""
107260
108435
  pass