aws-cdk-lib 2.200.1__py3-none-any.whl → 2.201.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 (53) hide show
  1. aws_cdk/__init__.py +105 -13
  2. aws_cdk/_jsii/__init__.py +1 -1
  3. aws_cdk/_jsii/{aws-cdk-lib@2.200.1.jsii.tgz → aws-cdk-lib@2.201.0.jsii.tgz} +0 -0
  4. aws_cdk/aws_amazonmq/__init__.py +2 -3
  5. aws_cdk/aws_amplify/__init__.py +3 -3
  6. aws_cdk/aws_apigateway/__init__.py +21 -17
  7. aws_cdk/aws_apigatewayv2/__init__.py +87 -45
  8. aws_cdk/aws_appconfig/__init__.py +38 -1
  9. aws_cdk/aws_appsync/__init__.py +10 -10
  10. aws_cdk/aws_athena/__init__.py +226 -0
  11. aws_cdk/aws_autoscaling/__init__.py +38 -37
  12. aws_cdk/aws_bedrock/__init__.py +5108 -1571
  13. aws_cdk/aws_cloudfront/__init__.py +8 -0
  14. aws_cdk/aws_cloudtrail/__init__.py +178 -0
  15. aws_cdk/aws_cloudwatch/__init__.py +7 -3
  16. aws_cdk/aws_codepipeline_actions/__init__.py +746 -0
  17. aws_cdk/aws_connect/__init__.py +5 -5
  18. aws_cdk/aws_customerprofiles/__init__.py +377 -8
  19. aws_cdk/aws_datasync/__init__.py +189 -160
  20. aws_cdk/aws_datazone/__init__.py +512 -170
  21. aws_cdk/aws_deadline/__init__.py +32 -4
  22. aws_cdk/aws_dsql/__init__.py +150 -10
  23. aws_cdk/aws_ec2/__init__.py +793 -56
  24. aws_cdk/aws_ecs/__init__.py +94 -11
  25. aws_cdk/aws_efs/__init__.py +92 -12
  26. aws_cdk/aws_eks/__init__.py +166 -19
  27. aws_cdk/aws_elasticloadbalancingv2/__init__.py +2 -2
  28. aws_cdk/aws_emr/__init__.py +10 -4
  29. aws_cdk/aws_entityresolution/__init__.py +25 -10
  30. aws_cdk/aws_evs/__init__.py +2204 -0
  31. aws_cdk/aws_fsx/__init__.py +7 -7
  32. aws_cdk/aws_lambda/__init__.py +409 -32
  33. aws_cdk/aws_lightsail/__init__.py +17 -13
  34. aws_cdk/aws_logs/__init__.py +1 -0
  35. aws_cdk/aws_networkfirewall/__init__.py +562 -0
  36. aws_cdk/aws_opensearchservice/__init__.py +3 -3
  37. aws_cdk/aws_opsworkscm/__init__.py +9 -43
  38. aws_cdk/aws_rds/__init__.py +284 -87
  39. aws_cdk/aws_s3/__init__.py +23 -15
  40. aws_cdk/aws_sagemaker/__init__.py +223 -3
  41. aws_cdk/aws_securityhub/__init__.py +18 -34
  42. aws_cdk/aws_ssm/__init__.py +83 -1
  43. aws_cdk/aws_stepfunctions/__init__.py +235 -45
  44. aws_cdk/aws_synthetics/__init__.py +74 -0
  45. aws_cdk/aws_transfer/__init__.py +3 -3
  46. aws_cdk/aws_verifiedpermissions/__init__.py +17 -6
  47. aws_cdk/aws_wafv2/__init__.py +39 -2
  48. {aws_cdk_lib-2.200.1.dist-info → aws_cdk_lib-2.201.0.dist-info}/METADATA +2 -2
  49. {aws_cdk_lib-2.200.1.dist-info → aws_cdk_lib-2.201.0.dist-info}/RECORD +53 -52
  50. {aws_cdk_lib-2.200.1.dist-info → aws_cdk_lib-2.201.0.dist-info}/LICENSE +0 -0
  51. {aws_cdk_lib-2.200.1.dist-info → aws_cdk_lib-2.201.0.dist-info}/NOTICE +0 -0
  52. {aws_cdk_lib-2.200.1.dist-info → aws_cdk_lib-2.201.0.dist-info}/WHEEL +0 -0
  53. {aws_cdk_lib-2.200.1.dist-info → aws_cdk_lib-2.201.0.dist-info}/top_level.txt +0 -0
@@ -174,6 +174,23 @@ auto_scaling_group = autoscaling.AutoScalingGroup(self, "ASG",
174
174
  )
175
175
  ```
176
176
 
177
+ To customize the cache key, use the `additionalCacheKey` parameter.
178
+ This allows you to have multiple lookups with the same parameters
179
+ cache their values separately. This can be useful if you want to
180
+ scope the context variable to a construct (ie, using `additionalCacheKey: this.node.path`),
181
+ so that if the value in the cache needs to be updated, it does not need to be updated
182
+ for all constructs at the same time.
183
+
184
+ ```python
185
+ # vpc: ec2.Vpc
186
+
187
+ auto_scaling_group = autoscaling.AutoScalingGroup(self, "ASG",
188
+ machine_image=ecs.EcsOptimizedImage.amazon_linux(cached_in_context=True, additional_cache_key=self.node.path),
189
+ vpc=vpc,
190
+ instance_type=ec2.InstanceType("t2.micro")
191
+ )
192
+ ```
193
+
177
194
  To use `LaunchTemplate` with `AsgCapacityProvider`, make sure to specify the `userData` in the `LaunchTemplate`:
178
195
 
179
196
  ```python
@@ -5848,17 +5865,20 @@ class BottleRocketImage(
5848
5865
  def __init__(
5849
5866
  self,
5850
5867
  *,
5868
+ additional_cache_key: typing.Optional[builtins.str] = None,
5851
5869
  architecture: typing.Optional[_InstanceArchitecture_7721cb36] = None,
5852
5870
  cached_in_context: typing.Optional[builtins.bool] = None,
5853
5871
  variant: typing.Optional["BottlerocketEcsVariant"] = None,
5854
5872
  ) -> None:
5855
5873
  '''Constructs a new instance of the BottleRocketImage class.
5856
5874
 
5875
+ :param additional_cache_key: Adds an additional discriminator to the ``cdk.context.json`` cache key. Default: - no additional cache key
5857
5876
  :param architecture: The CPU architecture. Default: - x86_64
5858
5877
  :param cached_in_context: Whether the AMI ID is cached to be stable between deployments. By default, the newest image is used on each deployment. This will cause instances to be replaced whenever a new version is released, and may cause downtime if there aren't enough running instances in the AutoScalingGroup to reschedule the tasks on. If set to true, the AMI ID will be cached in ``cdk.context.json`` and the same value will be used on future runs. Your instances will not be replaced but your AMI version will grow old over time. To refresh the AMI lookup, you will have to evict the value from the cache using the ``cdk context`` command. See https://docs.aws.amazon.com/cdk/latest/guide/context.html for more information. Can not be set to ``true`` in environment-agnostic stacks. Default: false
5859
5878
  :param variant: The Amazon ECS variant to use. Default: - BottlerocketEcsVariant.AWS_ECS_1
5860
5879
  '''
5861
5880
  props = BottleRocketImageProps(
5881
+ additional_cache_key=additional_cache_key,
5862
5882
  architecture=architecture,
5863
5883
  cached_in_context=cached_in_context,
5864
5884
  variant=variant,
@@ -5897,6 +5917,7 @@ class BottleRocketImage(
5897
5917
  jsii_type="aws-cdk-lib.aws_ecs.BottleRocketImageProps",
5898
5918
  jsii_struct_bases=[],
5899
5919
  name_mapping={
5920
+ "additional_cache_key": "additionalCacheKey",
5900
5921
  "architecture": "architecture",
5901
5922
  "cached_in_context": "cachedInContext",
5902
5923
  "variant": "variant",
@@ -5906,12 +5927,14 @@ class BottleRocketImageProps:
5906
5927
  def __init__(
5907
5928
  self,
5908
5929
  *,
5930
+ additional_cache_key: typing.Optional[builtins.str] = None,
5909
5931
  architecture: typing.Optional[_InstanceArchitecture_7721cb36] = None,
5910
5932
  cached_in_context: typing.Optional[builtins.bool] = None,
5911
5933
  variant: typing.Optional["BottlerocketEcsVariant"] = None,
5912
5934
  ) -> None:
5913
5935
  '''Properties for BottleRocketImage.
5914
5936
 
5937
+ :param additional_cache_key: Adds an additional discriminator to the ``cdk.context.json`` cache key. Default: - no additional cache key
5915
5938
  :param architecture: The CPU architecture. Default: - x86_64
5916
5939
  :param cached_in_context: Whether the AMI ID is cached to be stable between deployments. By default, the newest image is used on each deployment. This will cause instances to be replaced whenever a new version is released, and may cause downtime if there aren't enough running instances in the AutoScalingGroup to reschedule the tasks on. If set to true, the AMI ID will be cached in ``cdk.context.json`` and the same value will be used on future runs. Your instances will not be replaced but your AMI version will grow old over time. To refresh the AMI lookup, you will have to evict the value from the cache using the ``cdk context`` command. See https://docs.aws.amazon.com/cdk/latest/guide/context.html for more information. Can not be set to ``true`` in environment-agnostic stacks. Default: false
5917
5940
  :param variant: The Amazon ECS variant to use. Default: - BottlerocketEcsVariant.AWS_ECS_1
@@ -5932,10 +5955,13 @@ class BottleRocketImageProps:
5932
5955
  '''
5933
5956
  if __debug__:
5934
5957
  type_hints = typing.get_type_hints(_typecheckingstub__1888954247daafe3322b2fa144458be6e77f5b9d04b3406207497f8b279b2cf6)
5958
+ check_type(argname="argument additional_cache_key", value=additional_cache_key, expected_type=type_hints["additional_cache_key"])
5935
5959
  check_type(argname="argument architecture", value=architecture, expected_type=type_hints["architecture"])
5936
5960
  check_type(argname="argument cached_in_context", value=cached_in_context, expected_type=type_hints["cached_in_context"])
5937
5961
  check_type(argname="argument variant", value=variant, expected_type=type_hints["variant"])
5938
5962
  self._values: typing.Dict[builtins.str, typing.Any] = {}
5963
+ if additional_cache_key is not None:
5964
+ self._values["additional_cache_key"] = additional_cache_key
5939
5965
  if architecture is not None:
5940
5966
  self._values["architecture"] = architecture
5941
5967
  if cached_in_context is not None:
@@ -5943,6 +5969,15 @@ class BottleRocketImageProps:
5943
5969
  if variant is not None:
5944
5970
  self._values["variant"] = variant
5945
5971
 
5972
+ @builtins.property
5973
+ def additional_cache_key(self) -> typing.Optional[builtins.str]:
5974
+ '''Adds an additional discriminator to the ``cdk.context.json`` cache key.
5975
+
5976
+ :default: - no additional cache key
5977
+ '''
5978
+ result = self._values.get("additional_cache_key")
5979
+ return typing.cast(typing.Optional[builtins.str], result)
5980
+
5946
5981
  @builtins.property
5947
5982
  def architecture(self) -> typing.Optional[_InstanceArchitecture_7721cb36]:
5948
5983
  '''The CPU architecture.
@@ -13368,7 +13403,7 @@ class CfnTaskDefinition(
13368
13403
  :param command: The command that's passed to the container. This parameter maps to ``Cmd`` in the docker container create command and the ``COMMAND`` parameter to docker run. If there are multiple arguments, each argument is a separated string in the array.
13369
13404
  :param cpu: The number of ``cpu`` units reserved for the container. This parameter maps to ``CpuShares`` in the docker container create commandand the ``--cpu-shares`` option to docker run. This field is optional for tasks using the Fargate launch type, and the only requirement is that the total amount of CPU reserved for all containers within a task be lower than the task-level ``cpu`` value. .. epigraph:: You can determine the number of CPU units that are available per EC2 instance type by multiplying the vCPUs listed for that instance type on the `Amazon EC2 Instances <https://docs.aws.amazon.com/ec2/instance-types/>`_ detail page by 1,024. Linux containers share unallocated CPU units with other containers on the container instance with the same ratio as their allocated amount. For example, if you run a single-container task on a single-core instance type with 512 CPU units specified for that container, and that's the only task running on the container instance, that container could use the full 1,024 CPU unit share at any given time. However, if you launched another copy of the same task on that container instance, each task is guaranteed a minimum of 512 CPU units when needed. Moreover, each container could float to higher CPU usage if the other container was not using it. If both tasks were 100% active all of the time, they would be limited to 512 CPU units. On Linux container instances, the Docker daemon on the container instance uses the CPU value to calculate the relative CPU share ratios for running containers. The minimum valid CPU share value that the Linux kernel allows is 2, and the maximum valid CPU share value that the Linux kernel allows is 262144. However, the CPU parameter isn't required, and you can use CPU values below 2 or above 262144 in your container definitions. For CPU values below 2 (including null) or above 262144, the behavior varies based on your Amazon ECS container agent version: - *Agent versions less than or equal to 1.1.0:* Null and zero CPU values are passed to Docker as 0, which Docker then converts to 1,024 CPU shares. CPU values of 1 are passed to Docker as 1, which the Linux kernel converts to two CPU shares. - *Agent versions greater than or equal to 1.2.0:* Null, zero, and CPU values of 1 are passed to Docker as 2. - *Agent versions greater than or equal to 1.84.0:* CPU values greater than 256 vCPU are passed to Docker as 256, which is equivalent to 262144 CPU shares. On Windows container instances, the CPU limit is enforced as an absolute limit, or a quota. Windows containers only have access to the specified amount of CPU that's described in the task definition. A null or zero CPU value is passed to Docker as ``0`` , which Windows interprets as 1% of one CPU.
13370
13405
  :param credential_specs: A list of ARNs in SSM or Amazon S3 to a credential spec ( ``CredSpec`` ) file that configures the container for Active Directory authentication. We recommend that you use this parameter instead of the ``dockerSecurityOptions`` . The maximum number of ARNs is 1. There are two formats for each ARN. - **credentialspecdomainless:MyARN** - You use ``credentialspecdomainless:MyARN`` to provide a ``CredSpec`` with an additional section for a secret in AWS Secrets Manager . You provide the login credentials to the domain in the secret. Each task that runs on any container instance can join different domains. You can use this format without joining the container instance to a domain. - **credentialspec:MyARN** - You use ``credentialspec:MyARN`` to provide a ``CredSpec`` for a single domain. You must join the container instance to the domain before you start any tasks that use this task definition. In both formats, replace ``MyARN`` with the ARN in SSM or Amazon S3. If you provide a ``credentialspecdomainless:MyARN`` , the ``credspec`` must provide a ARN in AWS Secrets Manager for a secret containing the username, password, and the domain to connect to. For better security, the instance isn't joined to the domain for domainless authentication. Other applications on the instance can't use the domainless credentials. You can use this parameter to run tasks on the same instance, even it the tasks need to join different domains. For more information, see `Using gMSAs for Windows Containers <https://docs.aws.amazon.com/AmazonECS/latest/developerguide/windows-gmsa.html>`_ and `Using gMSAs for Linux Containers <https://docs.aws.amazon.com/AmazonECS/latest/developerguide/linux-gmsa.html>`_ .
13371
- :param depends_on: The dependencies defined for container startup and shutdown. A container can contain multiple dependencies. When a dependency is defined for container startup, for container shutdown it is reversed. For tasks using the EC2 launch type, the container instances require at least version 1.26.0 of the container agent to turn on container dependencies. However, we recommend using the latest container agent version. For information about checking your agent version and updating to the latest version, see `Updating the Amazon ECS Container Agent <https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-update.html>`_ in the *Amazon Elastic Container Service Developer Guide* . If you're using an Amazon ECS-optimized Linux AMI, your instance needs at least version 1.26.0-1 of the ``ecs-init`` package. If your container instances are launched from version ``20190301`` or later, then they contain the required versions of the container agent and ``ecs-init`` . For more information, see `Amazon ECS-optimized Linux AMI <https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-optimized_AMI.html>`_ in the *Amazon Elastic Container Service Developer Guide* . For tasks using the Fargate launch type, the task or service requires the following platforms: - Linux platform version ``1.3.0`` or later. - Windows platform version ``1.0.0`` or later. If the task definition is used in a blue/green deployment that uses `AWS::CodeDeploy::DeploymentGroup BlueGreenDeploymentConfiguration <https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-bluegreendeploymentconfiguration.html>`_ , the ``dependsOn`` parameter is not supported. For more information see `Issue #680 <https://docs.aws.amazon.com/https://github.com/aws-cloudformation/cloudformation-coverage-roadmap/issues/680>`_ on the on the GitHub website.
13406
+ :param depends_on: The dependencies defined for container startup and shutdown. A container can contain multiple dependencies. When a dependency is defined for container startup, for container shutdown it is reversed. For tasks using the EC2 launch type, the container instances require at least version 1.26.0 of the container agent to turn on container dependencies. However, we recommend using the latest container agent version. For information about checking your agent version and updating to the latest version, see `Updating the Amazon ECS Container Agent <https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-update.html>`_ in the *Amazon Elastic Container Service Developer Guide* . If you're using an Amazon ECS-optimized Linux AMI, your instance needs at least version 1.26.0-1 of the ``ecs-init`` package. If your container instances are launched from version ``20190301`` or later, then they contain the required versions of the container agent and ``ecs-init`` . For more information, see `Amazon ECS-optimized Linux AMI <https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-optimized_AMI.html>`_ in the *Amazon Elastic Container Service Developer Guide* . For tasks using the Fargate launch type, the task or service requires the following platforms: - Linux platform version ``1.3.0`` or later. - Windows platform version ``1.0.0`` or later. If the task definition is used in a blue/green deployment that uses `AWS::CodeDeploy::DeploymentGroup BlueGreenDeploymentConfiguration <https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-bluegreendeploymentconfiguration.html>`_ , the ``dependsOn`` parameter is not supported.
13372
13407
  :param disable_networking: When this parameter is true, networking is off within the container. This parameter maps to ``NetworkDisabled`` in the docker container create command. .. epigraph:: This parameter is not supported for Windows containers.
13373
13408
  :param dns_search_domains: A list of DNS search domains that are presented to the container. This parameter maps to ``DnsSearch`` in the docker container create command and the ``--dns-search`` option to docker run. .. epigraph:: This parameter is not supported for Windows containers.
13374
13409
  :param dns_servers: A list of DNS servers that are presented to the container. This parameter maps to ``Dns`` in the docker container create command and the ``--dns`` option to docker run. .. epigraph:: This parameter is not supported for Windows containers.
@@ -13790,7 +13825,7 @@ class CfnTaskDefinition(
13790
13825
  - Linux platform version ``1.3.0`` or later.
13791
13826
  - Windows platform version ``1.0.0`` or later.
13792
13827
 
13793
- If the task definition is used in a blue/green deployment that uses `AWS::CodeDeploy::DeploymentGroup BlueGreenDeploymentConfiguration <https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-bluegreendeploymentconfiguration.html>`_ , the ``dependsOn`` parameter is not supported. For more information see `Issue #680 <https://docs.aws.amazon.com/https://github.com/aws-cloudformation/cloudformation-coverage-roadmap/issues/680>`_ on the on the GitHub website.
13828
+ If the task definition is used in a blue/green deployment that uses `AWS::CodeDeploy::DeploymentGroup BlueGreenDeploymentConfiguration <https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-bluegreendeploymentconfiguration.html>`_ , the ``dependsOn`` parameter is not supported.
13794
13829
 
13795
13830
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-containerdefinition.html#cfn-ecs-taskdefinition-containerdefinition-dependson
13796
13831
  '''
@@ -25302,13 +25337,18 @@ class EcsOptimizedImage(
25302
25337
  def amazon_linux(
25303
25338
  cls,
25304
25339
  *,
25340
+ additional_cache_key: typing.Optional[builtins.str] = None,
25305
25341
  cached_in_context: typing.Optional[builtins.bool] = None,
25306
25342
  ) -> "EcsOptimizedImage":
25307
25343
  '''Construct an Amazon Linux AMI image from the latest ECS Optimized AMI published in SSM.
25308
25344
 
25345
+ :param additional_cache_key: Adds an additional discriminator to the ``cdk.context.json`` cache key. Default: - no additional cache key
25309
25346
  :param cached_in_context: Whether the AMI ID is cached to be stable between deployments. By default, the newest image is used on each deployment. This will cause instances to be replaced whenever a new version is released, and may cause downtime if there aren't enough running instances in the AutoScalingGroup to reschedule the tasks on. If set to true, the AMI ID will be cached in ``cdk.context.json`` and the same value will be used on future runs. Your instances will not be replaced but your AMI version will grow old over time. To refresh the AMI lookup, you will have to evict the value from the cache using the ``cdk context`` command. See https://docs.aws.amazon.com/cdk/latest/guide/context.html for more information. Can not be set to ``true`` in environment-agnostic stacks. Default: false
25310
25347
  '''
25311
- options = EcsOptimizedImageOptions(cached_in_context=cached_in_context)
25348
+ options = EcsOptimizedImageOptions(
25349
+ additional_cache_key=additional_cache_key,
25350
+ cached_in_context=cached_in_context,
25351
+ )
25312
25352
 
25313
25353
  return typing.cast("EcsOptimizedImage", jsii.sinvoke(cls, "amazonLinux", [options]))
25314
25354
 
@@ -25318,17 +25358,22 @@ class EcsOptimizedImage(
25318
25358
  cls,
25319
25359
  hardware_type: typing.Optional[AmiHardwareType] = None,
25320
25360
  *,
25361
+ additional_cache_key: typing.Optional[builtins.str] = None,
25321
25362
  cached_in_context: typing.Optional[builtins.bool] = None,
25322
25363
  ) -> "EcsOptimizedImage":
25323
25364
  '''Construct an Amazon Linux 2 image from the latest ECS Optimized AMI published in SSM.
25324
25365
 
25325
25366
  :param hardware_type: ECS-optimized AMI variant to use.
25367
+ :param additional_cache_key: Adds an additional discriminator to the ``cdk.context.json`` cache key. Default: - no additional cache key
25326
25368
  :param cached_in_context: Whether the AMI ID is cached to be stable between deployments. By default, the newest image is used on each deployment. This will cause instances to be replaced whenever a new version is released, and may cause downtime if there aren't enough running instances in the AutoScalingGroup to reschedule the tasks on. If set to true, the AMI ID will be cached in ``cdk.context.json`` and the same value will be used on future runs. Your instances will not be replaced but your AMI version will grow old over time. To refresh the AMI lookup, you will have to evict the value from the cache using the ``cdk context`` command. See https://docs.aws.amazon.com/cdk/latest/guide/context.html for more information. Can not be set to ``true`` in environment-agnostic stacks. Default: false
25327
25369
  '''
25328
25370
  if __debug__:
25329
25371
  type_hints = typing.get_type_hints(_typecheckingstub__5924678ba20215bbadbd6bba47ff2a6c9af00997d08c131de1b7efc2701d95cd)
25330
25372
  check_type(argname="argument hardware_type", value=hardware_type, expected_type=type_hints["hardware_type"])
25331
- options = EcsOptimizedImageOptions(cached_in_context=cached_in_context)
25373
+ options = EcsOptimizedImageOptions(
25374
+ additional_cache_key=additional_cache_key,
25375
+ cached_in_context=cached_in_context,
25376
+ )
25332
25377
 
25333
25378
  return typing.cast("EcsOptimizedImage", jsii.sinvoke(cls, "amazonLinux2", [hardware_type, options]))
25334
25379
 
@@ -25338,17 +25383,22 @@ class EcsOptimizedImage(
25338
25383
  cls,
25339
25384
  hardware_type: typing.Optional[AmiHardwareType] = None,
25340
25385
  *,
25386
+ additional_cache_key: typing.Optional[builtins.str] = None,
25341
25387
  cached_in_context: typing.Optional[builtins.bool] = None,
25342
25388
  ) -> "EcsOptimizedImage":
25343
25389
  '''Construct an Amazon Linux 2023 image from the latest ECS Optimized AMI published in SSM.
25344
25390
 
25345
25391
  :param hardware_type: ECS-optimized AMI variant to use.
25392
+ :param additional_cache_key: Adds an additional discriminator to the ``cdk.context.json`` cache key. Default: - no additional cache key
25346
25393
  :param cached_in_context: Whether the AMI ID is cached to be stable between deployments. By default, the newest image is used on each deployment. This will cause instances to be replaced whenever a new version is released, and may cause downtime if there aren't enough running instances in the AutoScalingGroup to reschedule the tasks on. If set to true, the AMI ID will be cached in ``cdk.context.json`` and the same value will be used on future runs. Your instances will not be replaced but your AMI version will grow old over time. To refresh the AMI lookup, you will have to evict the value from the cache using the ``cdk context`` command. See https://docs.aws.amazon.com/cdk/latest/guide/context.html for more information. Can not be set to ``true`` in environment-agnostic stacks. Default: false
25347
25394
  '''
25348
25395
  if __debug__:
25349
25396
  type_hints = typing.get_type_hints(_typecheckingstub__fc44eec88f6aaee7e170f453974183a08768efc2af4f04d00c94c131fb83f5da)
25350
25397
  check_type(argname="argument hardware_type", value=hardware_type, expected_type=type_hints["hardware_type"])
25351
- options = EcsOptimizedImageOptions(cached_in_context=cached_in_context)
25398
+ options = EcsOptimizedImageOptions(
25399
+ additional_cache_key=additional_cache_key,
25400
+ cached_in_context=cached_in_context,
25401
+ )
25352
25402
 
25353
25403
  return typing.cast("EcsOptimizedImage", jsii.sinvoke(cls, "amazonLinux2023", [hardware_type, options]))
25354
25404
 
@@ -25358,17 +25408,22 @@ class EcsOptimizedImage(
25358
25408
  cls,
25359
25409
  windows_version: "WindowsOptimizedVersion",
25360
25410
  *,
25411
+ additional_cache_key: typing.Optional[builtins.str] = None,
25361
25412
  cached_in_context: typing.Optional[builtins.bool] = None,
25362
25413
  ) -> "EcsOptimizedImage":
25363
25414
  '''Construct a Windows image from the latest ECS Optimized AMI published in SSM.
25364
25415
 
25365
25416
  :param windows_version: Windows Version to use.
25417
+ :param additional_cache_key: Adds an additional discriminator to the ``cdk.context.json`` cache key. Default: - no additional cache key
25366
25418
  :param cached_in_context: Whether the AMI ID is cached to be stable between deployments. By default, the newest image is used on each deployment. This will cause instances to be replaced whenever a new version is released, and may cause downtime if there aren't enough running instances in the AutoScalingGroup to reschedule the tasks on. If set to true, the AMI ID will be cached in ``cdk.context.json`` and the same value will be used on future runs. Your instances will not be replaced but your AMI version will grow old over time. To refresh the AMI lookup, you will have to evict the value from the cache using the ``cdk context`` command. See https://docs.aws.amazon.com/cdk/latest/guide/context.html for more information. Can not be set to ``true`` in environment-agnostic stacks. Default: false
25367
25419
  '''
25368
25420
  if __debug__:
25369
25421
  type_hints = typing.get_type_hints(_typecheckingstub__2b2ecfae2d485e25e72afeff56a0440720bb0614429d89d481532900bc2f7e9c)
25370
25422
  check_type(argname="argument windows_version", value=windows_version, expected_type=type_hints["windows_version"])
25371
- options = EcsOptimizedImageOptions(cached_in_context=cached_in_context)
25423
+ options = EcsOptimizedImageOptions(
25424
+ additional_cache_key=additional_cache_key,
25425
+ cached_in_context=cached_in_context,
25426
+ )
25372
25427
 
25373
25428
  return typing.cast("EcsOptimizedImage", jsii.sinvoke(cls, "windows", [windows_version, options]))
25374
25429
 
@@ -25390,16 +25445,21 @@ class EcsOptimizedImage(
25390
25445
  @jsii.data_type(
25391
25446
  jsii_type="aws-cdk-lib.aws_ecs.EcsOptimizedImageOptions",
25392
25447
  jsii_struct_bases=[],
25393
- name_mapping={"cached_in_context": "cachedInContext"},
25448
+ name_mapping={
25449
+ "additional_cache_key": "additionalCacheKey",
25450
+ "cached_in_context": "cachedInContext",
25451
+ },
25394
25452
  )
25395
25453
  class EcsOptimizedImageOptions:
25396
25454
  def __init__(
25397
25455
  self,
25398
25456
  *,
25457
+ additional_cache_key: typing.Optional[builtins.str] = None,
25399
25458
  cached_in_context: typing.Optional[builtins.bool] = None,
25400
25459
  ) -> None:
25401
25460
  '''Additional configuration properties for EcsOptimizedImage factory functions.
25402
25461
 
25462
+ :param additional_cache_key: Adds an additional discriminator to the ``cdk.context.json`` cache key. Default: - no additional cache key
25403
25463
  :param cached_in_context: Whether the AMI ID is cached to be stable between deployments. By default, the newest image is used on each deployment. This will cause instances to be replaced whenever a new version is released, and may cause downtime if there aren't enough running instances in the AutoScalingGroup to reschedule the tasks on. If set to true, the AMI ID will be cached in ``cdk.context.json`` and the same value will be used on future runs. Your instances will not be replaced but your AMI version will grow old over time. To refresh the AMI lookup, you will have to evict the value from the cache using the ``cdk context`` command. See https://docs.aws.amazon.com/cdk/latest/guide/context.html for more information. Can not be set to ``true`` in environment-agnostic stacks. Default: false
25404
25464
 
25405
25465
  :exampleMetadata: infused
@@ -25416,11 +25476,23 @@ class EcsOptimizedImageOptions:
25416
25476
  '''
25417
25477
  if __debug__:
25418
25478
  type_hints = typing.get_type_hints(_typecheckingstub__f6d1e17c4feb37d3005e6450986d1ae7d39c1536289b88ce7b0be3440b3e132f)
25479
+ check_type(argname="argument additional_cache_key", value=additional_cache_key, expected_type=type_hints["additional_cache_key"])
25419
25480
  check_type(argname="argument cached_in_context", value=cached_in_context, expected_type=type_hints["cached_in_context"])
25420
25481
  self._values: typing.Dict[builtins.str, typing.Any] = {}
25482
+ if additional_cache_key is not None:
25483
+ self._values["additional_cache_key"] = additional_cache_key
25421
25484
  if cached_in_context is not None:
25422
25485
  self._values["cached_in_context"] = cached_in_context
25423
25486
 
25487
+ @builtins.property
25488
+ def additional_cache_key(self) -> typing.Optional[builtins.str]:
25489
+ '''Adds an additional discriminator to the ``cdk.context.json`` cache key.
25490
+
25491
+ :default: - no additional cache key
25492
+ '''
25493
+ result = self._values.get("additional_cache_key")
25494
+ return typing.cast(typing.Optional[builtins.str], result)
25495
+
25424
25496
  @builtins.property
25425
25497
  def cached_in_context(self) -> typing.Optional[builtins.bool]:
25426
25498
  '''Whether the AMI ID is cached to be stable between deployments.
@@ -27790,9 +27862,9 @@ class FargateTaskDefinitionProps(CommonTaskDefinitionProps):
27790
27862
  :param proxy_configuration: The configuration details for the App Mesh proxy. Default: - No proxy configuration.
27791
27863
  :param task_role: The name of the IAM role that grants containers in the task permission to call AWS APIs on your behalf. Default: - A task role is automatically created for you.
27792
27864
  :param volumes: The list of volume definitions for the task. For more information, see `Task Definition Parameter Volumes <https://docs.aws.amazon.com/AmazonECS/latest/developerguide//task_definition_parameters.html#volumes>`_. Default: - No volumes are passed to the Docker daemon on a container instance.
27793
- :param cpu: The number of cpu units used by the task. For tasks using the Fargate launch type, this field is required and you must use one of the following values, which determines your range of valid values for the memory parameter: 256 (.25 vCPU) - Available memory values: 512 (0.5 GB), 1024 (1 GB), 2048 (2 GB) 512 (.5 vCPU) - Available memory values: 1024 (1 GB), 2048 (2 GB), 3072 (3 GB), 4096 (4 GB) 1024 (1 vCPU) - Available memory values: 2048 (2 GB), 3072 (3 GB), 4096 (4 GB), 5120 (5 GB), 6144 (6 GB), 7168 (7 GB), 8192 (8 GB) 2048 (2 vCPU) - Available memory values: Between 4096 (4 GB) and 16384 (16 GB) in increments of 1024 (1 GB) 4096 (4 vCPU) - Available memory values: Between 8192 (8 GB) and 30720 (30 GB) in increments of 1024 (1 GB) 8192 (8 vCPU) - Available memory values: Between 16384 (16 GB) and 61440 (60 GB) in increments of 4096 (4 GB) 16384 (16 vCPU) - Available memory values: Between 32768 (32 GB) and 122880 (120 GB) in increments of 8192 (8 GB) Default: 256
27865
+ :param cpu: The number of cpu units used by the task. For tasks using the Fargate launch type, this field is required and you must use one of the following values, which determines your range of valid values for the memory parameter: 256 (.25 vCPU) - Available memory values: 512 (0.5 GB), 1024 (1 GB), 2048 (2 GB) 512 (.5 vCPU) - Available memory values: 1024 (1 GB), 2048 (2 GB), 3072 (3 GB), 4096 (4 GB) 1024 (1 vCPU) - Available memory values: 2048 (2 GB), 3072 (3 GB), 4096 (4 GB), 5120 (5 GB), 6144 (6 GB), 7168 (7 GB), 8192 (8 GB) 2048 (2 vCPU) - Available memory values: Between 4096 (4 GB) and 16384 (16 GB) in increments of 1024 (1 GB) 4096 (4 vCPU) - Available memory values: Between 8192 (8 GB) and 30720 (30 GB) in increments of 1024 (1 GB) 8192 (8 vCPU) - Available memory values: Between 16384 (16 GB) and 61440 (60 GB) in increments of 4096 (4 GB) 16384 (16 vCPU) - Available memory values: Between 32768 (32 GB) and 122880 (120 GB) in increments of 8192 (8 GB) Note: For windows platforms, this field is not enforced at runtime. However, it is still required as it is used to determine the instance type and size that tasks run on. Default: 256
27794
27866
  :param ephemeral_storage_gib: The amount (in GiB) of ephemeral storage to be allocated to the task. The maximum supported value is 200 GiB. NOTE: This parameter is only supported for tasks hosted on AWS Fargate using platform version 1.4.0 or later. Default: 20
27795
- :param memory_limit_mib: The amount (in MiB) of memory used by the task. For tasks using the Fargate launch type, this field is required and you must use one of the following values, which determines your range of valid values for the cpu parameter: 512 (0.5 GB), 1024 (1 GB), 2048 (2 GB) - Available cpu values: 256 (.25 vCPU) 1024 (1 GB), 2048 (2 GB), 3072 (3 GB), 4096 (4 GB) - Available cpu values: 512 (.5 vCPU) 2048 (2 GB), 3072 (3 GB), 4096 (4 GB), 5120 (5 GB), 6144 (6 GB), 7168 (7 GB), 8192 (8 GB) - Available cpu values: 1024 (1 vCPU) Between 4096 (4 GB) and 16384 (16 GB) in increments of 1024 (1 GB) - Available cpu values: 2048 (2 vCPU) Between 8192 (8 GB) and 30720 (30 GB) in increments of 1024 (1 GB) - Available cpu values: 4096 (4 vCPU) Between 16384 (16 GB) and 61440 (60 GB) in increments of 4096 (4 GB) - Available cpu values: 8192 (8 vCPU) Between 32768 (32 GB) and 122880 (120 GB) in increments of 8192 (8 GB) - Available cpu values: 16384 (16 vCPU) Default: 512
27867
+ :param memory_limit_mib: The amount (in MiB) of memory used by the task. For tasks using the Fargate launch type, this field is required and you must use one of the following values, which determines your range of valid values for the cpu parameter: 512 (0.5 GB), 1024 (1 GB), 2048 (2 GB) - Available cpu values: 256 (.25 vCPU) 1024 (1 GB), 2048 (2 GB), 3072 (3 GB), 4096 (4 GB) - Available cpu values: 512 (.5 vCPU) 2048 (2 GB), 3072 (3 GB), 4096 (4 GB), 5120 (5 GB), 6144 (6 GB), 7168 (7 GB), 8192 (8 GB) - Available cpu values: 1024 (1 vCPU) Between 4096 (4 GB) and 16384 (16 GB) in increments of 1024 (1 GB) - Available cpu values: 2048 (2 vCPU) Between 8192 (8 GB) and 30720 (30 GB) in increments of 1024 (1 GB) - Available cpu values: 4096 (4 vCPU) Between 16384 (16 GB) and 61440 (60 GB) in increments of 4096 (4 GB) - Available cpu values: 8192 (8 vCPU) Between 32768 (32 GB) and 122880 (120 GB) in increments of 8192 (8 GB) - Available cpu values: 16384 (16 vCPU) Note: For windows platforms, this field is not enforced at runtime. However, it is still required as it is used to determine the instance type and size that tasks run on. Default: 512
27796
27868
  :param pid_mode: The process namespace to use for the containers in the task. Only supported for tasks that are hosted on AWS Fargate if the tasks are using platform version 1.4.0 or later (Linux). Only the TASK option is supported for Linux-based Fargate containers. Not supported in Windows containers. If pidMode is specified for a Fargate task, then runtimePlatform.operatingSystemFamily must also be specified. For more information, see `Task Definition Parameters <https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_definition_parameters.html#task_definition_pidmode>`_. Default: - PidMode used by the task is not specified
27797
27869
  :param runtime_platform: The operating system that your task definitions are running on. A runtimePlatform is supported only for tasks using the Fargate launch type. Default: - Undefined.
27798
27870
 
@@ -27940,6 +28012,9 @@ class FargateTaskDefinitionProps(CommonTaskDefinitionProps):
27940
28012
 
27941
28013
  16384 (16 vCPU) - Available memory values: Between 32768 (32 GB) and 122880 (120 GB) in increments of 8192 (8 GB)
27942
28014
 
28015
+ Note: For windows platforms, this field is not enforced at runtime. However, it is still required as it is used to determine
28016
+ the instance type and size that tasks run on.
28017
+
27943
28018
  :default: 256
27944
28019
  '''
27945
28020
  result = self._values.get("cpu")
@@ -27979,6 +28054,9 @@ class FargateTaskDefinitionProps(CommonTaskDefinitionProps):
27979
28054
 
27980
28055
  Between 32768 (32 GB) and 122880 (120 GB) in increments of 8192 (8 GB) - Available cpu values: 16384 (16 vCPU)
27981
28056
 
28057
+ Note: For windows platforms, this field is not enforced at runtime. However, it is still required as it is used to determine
28058
+ the instance type and size that tasks run on.
28059
+
27982
28060
  :default: 512
27983
28061
  '''
27984
28062
  result = self._values.get("memory_limit_mib")
@@ -43006,9 +43084,9 @@ class FargateTaskDefinition(
43006
43084
 
43007
43085
  :param scope: -
43008
43086
  :param id: -
43009
- :param cpu: The number of cpu units used by the task. For tasks using the Fargate launch type, this field is required and you must use one of the following values, which determines your range of valid values for the memory parameter: 256 (.25 vCPU) - Available memory values: 512 (0.5 GB), 1024 (1 GB), 2048 (2 GB) 512 (.5 vCPU) - Available memory values: 1024 (1 GB), 2048 (2 GB), 3072 (3 GB), 4096 (4 GB) 1024 (1 vCPU) - Available memory values: 2048 (2 GB), 3072 (3 GB), 4096 (4 GB), 5120 (5 GB), 6144 (6 GB), 7168 (7 GB), 8192 (8 GB) 2048 (2 vCPU) - Available memory values: Between 4096 (4 GB) and 16384 (16 GB) in increments of 1024 (1 GB) 4096 (4 vCPU) - Available memory values: Between 8192 (8 GB) and 30720 (30 GB) in increments of 1024 (1 GB) 8192 (8 vCPU) - Available memory values: Between 16384 (16 GB) and 61440 (60 GB) in increments of 4096 (4 GB) 16384 (16 vCPU) - Available memory values: Between 32768 (32 GB) and 122880 (120 GB) in increments of 8192 (8 GB) Default: 256
43087
+ :param cpu: The number of cpu units used by the task. For tasks using the Fargate launch type, this field is required and you must use one of the following values, which determines your range of valid values for the memory parameter: 256 (.25 vCPU) - Available memory values: 512 (0.5 GB), 1024 (1 GB), 2048 (2 GB) 512 (.5 vCPU) - Available memory values: 1024 (1 GB), 2048 (2 GB), 3072 (3 GB), 4096 (4 GB) 1024 (1 vCPU) - Available memory values: 2048 (2 GB), 3072 (3 GB), 4096 (4 GB), 5120 (5 GB), 6144 (6 GB), 7168 (7 GB), 8192 (8 GB) 2048 (2 vCPU) - Available memory values: Between 4096 (4 GB) and 16384 (16 GB) in increments of 1024 (1 GB) 4096 (4 vCPU) - Available memory values: Between 8192 (8 GB) and 30720 (30 GB) in increments of 1024 (1 GB) 8192 (8 vCPU) - Available memory values: Between 16384 (16 GB) and 61440 (60 GB) in increments of 4096 (4 GB) 16384 (16 vCPU) - Available memory values: Between 32768 (32 GB) and 122880 (120 GB) in increments of 8192 (8 GB) Note: For windows platforms, this field is not enforced at runtime. However, it is still required as it is used to determine the instance type and size that tasks run on. Default: 256
43010
43088
  :param ephemeral_storage_gib: The amount (in GiB) of ephemeral storage to be allocated to the task. The maximum supported value is 200 GiB. NOTE: This parameter is only supported for tasks hosted on AWS Fargate using platform version 1.4.0 or later. Default: 20
43011
- :param memory_limit_mib: The amount (in MiB) of memory used by the task. For tasks using the Fargate launch type, this field is required and you must use one of the following values, which determines your range of valid values for the cpu parameter: 512 (0.5 GB), 1024 (1 GB), 2048 (2 GB) - Available cpu values: 256 (.25 vCPU) 1024 (1 GB), 2048 (2 GB), 3072 (3 GB), 4096 (4 GB) - Available cpu values: 512 (.5 vCPU) 2048 (2 GB), 3072 (3 GB), 4096 (4 GB), 5120 (5 GB), 6144 (6 GB), 7168 (7 GB), 8192 (8 GB) - Available cpu values: 1024 (1 vCPU) Between 4096 (4 GB) and 16384 (16 GB) in increments of 1024 (1 GB) - Available cpu values: 2048 (2 vCPU) Between 8192 (8 GB) and 30720 (30 GB) in increments of 1024 (1 GB) - Available cpu values: 4096 (4 vCPU) Between 16384 (16 GB) and 61440 (60 GB) in increments of 4096 (4 GB) - Available cpu values: 8192 (8 vCPU) Between 32768 (32 GB) and 122880 (120 GB) in increments of 8192 (8 GB) - Available cpu values: 16384 (16 vCPU) Default: 512
43089
+ :param memory_limit_mib: The amount (in MiB) of memory used by the task. For tasks using the Fargate launch type, this field is required and you must use one of the following values, which determines your range of valid values for the cpu parameter: 512 (0.5 GB), 1024 (1 GB), 2048 (2 GB) - Available cpu values: 256 (.25 vCPU) 1024 (1 GB), 2048 (2 GB), 3072 (3 GB), 4096 (4 GB) - Available cpu values: 512 (.5 vCPU) 2048 (2 GB), 3072 (3 GB), 4096 (4 GB), 5120 (5 GB), 6144 (6 GB), 7168 (7 GB), 8192 (8 GB) - Available cpu values: 1024 (1 vCPU) Between 4096 (4 GB) and 16384 (16 GB) in increments of 1024 (1 GB) - Available cpu values: 2048 (2 vCPU) Between 8192 (8 GB) and 30720 (30 GB) in increments of 1024 (1 GB) - Available cpu values: 4096 (4 vCPU) Between 16384 (16 GB) and 61440 (60 GB) in increments of 4096 (4 GB) - Available cpu values: 8192 (8 vCPU) Between 32768 (32 GB) and 122880 (120 GB) in increments of 8192 (8 GB) - Available cpu values: 16384 (16 vCPU) Note: For windows platforms, this field is not enforced at runtime. However, it is still required as it is used to determine the instance type and size that tasks run on. Default: 512
43012
43090
  :param pid_mode: The process namespace to use for the containers in the task. Only supported for tasks that are hosted on AWS Fargate if the tasks are using platform version 1.4.0 or later (Linux). Only the TASK option is supported for Linux-based Fargate containers. Not supported in Windows containers. If pidMode is specified for a Fargate task, then runtimePlatform.operatingSystemFamily must also be specified. For more information, see `Task Definition Parameters <https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_definition_parameters.html#task_definition_pidmode>`_. Default: - PidMode used by the task is not specified
43013
43091
  :param runtime_platform: The operating system that your task definitions are running on. A runtimePlatform is supported only for tasks using the Fargate launch type. Default: - Undefined.
43014
43092
  :param enable_fault_injection: Enables fault injection and allows for fault injection requests to be accepted from the task's containers. Fault injection only works with tasks using the {@link NetworkMode.AWS_VPC} or {@link NetworkMode.HOST} network modes. Default: undefined - ECS default setting is false
@@ -43606,6 +43684,7 @@ def _typecheckingstub__df65d4c374c4639217ff804e4aa42cc012373c9a3f00da061302e69d7
43606
43684
 
43607
43685
  def _typecheckingstub__1888954247daafe3322b2fa144458be6e77f5b9d04b3406207497f8b279b2cf6(
43608
43686
  *,
43687
+ additional_cache_key: typing.Optional[builtins.str] = None,
43609
43688
  architecture: typing.Optional[_InstanceArchitecture_7721cb36] = None,
43610
43689
  cached_in_context: typing.Optional[builtins.bool] = None,
43611
43690
  variant: typing.Optional[BottlerocketEcsVariant] = None,
@@ -45656,6 +45735,7 @@ def _typecheckingstub__fab36262ca737cd3c6183fc747e6857871155404a9c640644f728a317
45656
45735
  def _typecheckingstub__5924678ba20215bbadbd6bba47ff2a6c9af00997d08c131de1b7efc2701d95cd(
45657
45736
  hardware_type: typing.Optional[AmiHardwareType] = None,
45658
45737
  *,
45738
+ additional_cache_key: typing.Optional[builtins.str] = None,
45659
45739
  cached_in_context: typing.Optional[builtins.bool] = None,
45660
45740
  ) -> None:
45661
45741
  """Type checking stubs"""
@@ -45664,6 +45744,7 @@ def _typecheckingstub__5924678ba20215bbadbd6bba47ff2a6c9af00997d08c131de1b7efc27
45664
45744
  def _typecheckingstub__fc44eec88f6aaee7e170f453974183a08768efc2af4f04d00c94c131fb83f5da(
45665
45745
  hardware_type: typing.Optional[AmiHardwareType] = None,
45666
45746
  *,
45747
+ additional_cache_key: typing.Optional[builtins.str] = None,
45667
45748
  cached_in_context: typing.Optional[builtins.bool] = None,
45668
45749
  ) -> None:
45669
45750
  """Type checking stubs"""
@@ -45672,6 +45753,7 @@ def _typecheckingstub__fc44eec88f6aaee7e170f453974183a08768efc2af4f04d00c94c131f
45672
45753
  def _typecheckingstub__2b2ecfae2d485e25e72afeff56a0440720bb0614429d89d481532900bc2f7e9c(
45673
45754
  windows_version: WindowsOptimizedVersion,
45674
45755
  *,
45756
+ additional_cache_key: typing.Optional[builtins.str] = None,
45675
45757
  cached_in_context: typing.Optional[builtins.bool] = None,
45676
45758
  ) -> None:
45677
45759
  """Type checking stubs"""
@@ -45685,6 +45767,7 @@ def _typecheckingstub__70bdec536e3fd23816fd4d3da1060a574387bc536371bed24c38516e3
45685
45767
 
45686
45768
  def _typecheckingstub__f6d1e17c4feb37d3005e6450986d1ae7d39c1536289b88ce7b0be3440b3e132f(
45687
45769
  *,
45770
+ additional_cache_key: typing.Optional[builtins.str] = None,
45688
45771
  cached_in_context: typing.Optional[builtins.bool] = None,
45689
45772
  ) -> None:
45690
45773
  """Type checking stubs"""
@@ -2811,7 +2811,9 @@ class CfnMountTarget(
2811
2811
  subnet_id="subnetId",
2812
2812
 
2813
2813
  # the properties below are optional
2814
- ip_address="ipAddress"
2814
+ ip_address="ipAddress",
2815
+ ip_address_type="ipAddressType",
2816
+ ipv6_address="ipv6Address"
2815
2817
  )
2816
2818
  '''
2817
2819
 
@@ -2824,14 +2826,18 @@ class CfnMountTarget(
2824
2826
  security_groups: typing.Sequence[builtins.str],
2825
2827
  subnet_id: builtins.str,
2826
2828
  ip_address: typing.Optional[builtins.str] = None,
2829
+ ip_address_type: typing.Optional[builtins.str] = None,
2830
+ ipv6_address: typing.Optional[builtins.str] = None,
2827
2831
  ) -> None:
2828
2832
  '''
2829
2833
  :param scope: Scope in which this resource is defined.
2830
2834
  :param id: Construct identifier for this resource (unique in its scope).
2831
2835
  :param file_system_id: The ID of the file system for which to create the mount target.
2832
- :param security_groups: VPC security group IDs, of the form ``sg-xxxxxxxx`` . These must be for the same VPC as the subnet specified. The maximum number of security groups depends on account quota. For more information, see `Amazon VPC Quotas <https://docs.aws.amazon.com/vpc/latest/userguide/amazon-vpc-limits.html>`_ in the *Amazon VPC User Guide* (see the *Security Groups* table).
2833
- :param subnet_id: The ID of the subnet to add the mount target in. For One Zone file systems, use the subnet that is associated with the file system's Availability Zone.
2834
- :param ip_address: Valid IPv4 address within the address range of the specified subnet.
2836
+ :param security_groups: VPC security group IDs, of the form ``sg-xxxxxxxx`` . These must be for the same VPC as the subnet specified. The maximum number of security groups depends on account quota. For more information, see `Amazon VPC Quotas <https://docs.aws.amazon.com/vpc/latest/userguide/amazon-vpc-limits.html>`_ in the *Amazon VPC User Guide* (see the *Security Groups* table). If you don't specify a security group, then Amazon EFS uses the default security group for the subnet's VPC.
2837
+ :param subnet_id: The ID of the subnet to add the mount target in. For One Zone file systems, use the subnet that is associated with the file system's Availability Zone. The subnet type must be the same type as the ``IpAddressType`` .
2838
+ :param ip_address: If the ``IpAddressType`` for the mount target is IPv4 ( ``IPV4_ONLY`` or ``DUAL_STACK`` ), then specify the IPv4 address to use. If you do not specify an ``IpAddress`` , then Amazon EFS selects an unused IP address from the subnet specified for ``SubnetId`` .
2839
+ :param ip_address_type:
2840
+ :param ipv6_address:
2835
2841
  '''
2836
2842
  if __debug__:
2837
2843
  type_hints = typing.get_type_hints(_typecheckingstub__53e47daec02e70bf8a73cac8e0366ac0f8a6af5ccf7598cf37952afe954d30bd)
@@ -2842,6 +2848,8 @@ class CfnMountTarget(
2842
2848
  security_groups=security_groups,
2843
2849
  subnet_id=subnet_id,
2844
2850
  ip_address=ip_address,
2851
+ ip_address_type=ip_address_type,
2852
+ ipv6_address=ipv6_address,
2845
2853
  )
2846
2854
 
2847
2855
  jsii.create(self.__class__, self, [scope, id, props])
@@ -2945,7 +2953,7 @@ class CfnMountTarget(
2945
2953
  @builtins.property
2946
2954
  @jsii.member(jsii_name="ipAddress")
2947
2955
  def ip_address(self) -> typing.Optional[builtins.str]:
2948
- '''Valid IPv4 address within the address range of the specified subnet.'''
2956
+ '''If the ``IpAddressType`` for the mount target is IPv4 ( ``IPV4_ONLY`` or ``DUAL_STACK`` ), then specify the IPv4 address to use.'''
2949
2957
  return typing.cast(typing.Optional[builtins.str], jsii.get(self, "ipAddress"))
2950
2958
 
2951
2959
  @ip_address.setter
@@ -2955,6 +2963,30 @@ class CfnMountTarget(
2955
2963
  check_type(argname="argument value", value=value, expected_type=type_hints["value"])
2956
2964
  jsii.set(self, "ipAddress", value) # pyright: ignore[reportArgumentType]
2957
2965
 
2966
+ @builtins.property
2967
+ @jsii.member(jsii_name="ipAddressType")
2968
+ def ip_address_type(self) -> typing.Optional[builtins.str]:
2969
+ return typing.cast(typing.Optional[builtins.str], jsii.get(self, "ipAddressType"))
2970
+
2971
+ @ip_address_type.setter
2972
+ def ip_address_type(self, value: typing.Optional[builtins.str]) -> None:
2973
+ if __debug__:
2974
+ type_hints = typing.get_type_hints(_typecheckingstub__aa0cce2a23c783f1140d965a20db7db2255e72b575061672bff8884307e12048)
2975
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
2976
+ jsii.set(self, "ipAddressType", value) # pyright: ignore[reportArgumentType]
2977
+
2978
+ @builtins.property
2979
+ @jsii.member(jsii_name="ipv6Address")
2980
+ def ipv6_address(self) -> typing.Optional[builtins.str]:
2981
+ return typing.cast(typing.Optional[builtins.str], jsii.get(self, "ipv6Address"))
2982
+
2983
+ @ipv6_address.setter
2984
+ def ipv6_address(self, value: typing.Optional[builtins.str]) -> None:
2985
+ if __debug__:
2986
+ type_hints = typing.get_type_hints(_typecheckingstub__4d32de6237501dc91f3fc4a5121f4d28b9f910af301fcb6a625250a259cb215b)
2987
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
2988
+ jsii.set(self, "ipv6Address", value) # pyright: ignore[reportArgumentType]
2989
+
2958
2990
 
2959
2991
  @jsii.data_type(
2960
2992
  jsii_type="aws-cdk-lib.aws_efs.CfnMountTargetProps",
@@ -2964,6 +2996,8 @@ class CfnMountTarget(
2964
2996
  "security_groups": "securityGroups",
2965
2997
  "subnet_id": "subnetId",
2966
2998
  "ip_address": "ipAddress",
2999
+ "ip_address_type": "ipAddressType",
3000
+ "ipv6_address": "ipv6Address",
2967
3001
  },
2968
3002
  )
2969
3003
  class CfnMountTargetProps:
@@ -2974,13 +3008,17 @@ class CfnMountTargetProps:
2974
3008
  security_groups: typing.Sequence[builtins.str],
2975
3009
  subnet_id: builtins.str,
2976
3010
  ip_address: typing.Optional[builtins.str] = None,
3011
+ ip_address_type: typing.Optional[builtins.str] = None,
3012
+ ipv6_address: typing.Optional[builtins.str] = None,
2977
3013
  ) -> None:
2978
3014
  '''Properties for defining a ``CfnMountTarget``.
2979
3015
 
2980
3016
  :param file_system_id: The ID of the file system for which to create the mount target.
2981
- :param security_groups: VPC security group IDs, of the form ``sg-xxxxxxxx`` . These must be for the same VPC as the subnet specified. The maximum number of security groups depends on account quota. For more information, see `Amazon VPC Quotas <https://docs.aws.amazon.com/vpc/latest/userguide/amazon-vpc-limits.html>`_ in the *Amazon VPC User Guide* (see the *Security Groups* table).
2982
- :param subnet_id: The ID of the subnet to add the mount target in. For One Zone file systems, use the subnet that is associated with the file system's Availability Zone.
2983
- :param ip_address: Valid IPv4 address within the address range of the specified subnet.
3017
+ :param security_groups: VPC security group IDs, of the form ``sg-xxxxxxxx`` . These must be for the same VPC as the subnet specified. The maximum number of security groups depends on account quota. For more information, see `Amazon VPC Quotas <https://docs.aws.amazon.com/vpc/latest/userguide/amazon-vpc-limits.html>`_ in the *Amazon VPC User Guide* (see the *Security Groups* table). If you don't specify a security group, then Amazon EFS uses the default security group for the subnet's VPC.
3018
+ :param subnet_id: The ID of the subnet to add the mount target in. For One Zone file systems, use the subnet that is associated with the file system's Availability Zone. The subnet type must be the same type as the ``IpAddressType`` .
3019
+ :param ip_address: If the ``IpAddressType`` for the mount target is IPv4 ( ``IPV4_ONLY`` or ``DUAL_STACK`` ), then specify the IPv4 address to use. If you do not specify an ``IpAddress`` , then Amazon EFS selects an unused IP address from the subnet specified for ``SubnetId`` .
3020
+ :param ip_address_type:
3021
+ :param ipv6_address:
2984
3022
 
2985
3023
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-efs-mounttarget.html
2986
3024
  :exampleMetadata: fixture=_generated
@@ -2997,7 +3035,9 @@ class CfnMountTargetProps:
2997
3035
  subnet_id="subnetId",
2998
3036
 
2999
3037
  # the properties below are optional
3000
- ip_address="ipAddress"
3038
+ ip_address="ipAddress",
3039
+ ip_address_type="ipAddressType",
3040
+ ipv6_address="ipv6Address"
3001
3041
  )
3002
3042
  '''
3003
3043
  if __debug__:
@@ -3006,6 +3046,8 @@ class CfnMountTargetProps:
3006
3046
  check_type(argname="argument security_groups", value=security_groups, expected_type=type_hints["security_groups"])
3007
3047
  check_type(argname="argument subnet_id", value=subnet_id, expected_type=type_hints["subnet_id"])
3008
3048
  check_type(argname="argument ip_address", value=ip_address, expected_type=type_hints["ip_address"])
3049
+ check_type(argname="argument ip_address_type", value=ip_address_type, expected_type=type_hints["ip_address_type"])
3050
+ check_type(argname="argument ipv6_address", value=ipv6_address, expected_type=type_hints["ipv6_address"])
3009
3051
  self._values: typing.Dict[builtins.str, typing.Any] = {
3010
3052
  "file_system_id": file_system_id,
3011
3053
  "security_groups": security_groups,
@@ -3013,6 +3055,10 @@ class CfnMountTargetProps:
3013
3055
  }
3014
3056
  if ip_address is not None:
3015
3057
  self._values["ip_address"] = ip_address
3058
+ if ip_address_type is not None:
3059
+ self._values["ip_address_type"] = ip_address_type
3060
+ if ipv6_address is not None:
3061
+ self._values["ipv6_address"] = ipv6_address
3016
3062
 
3017
3063
  @builtins.property
3018
3064
  def file_system_id(self) -> builtins.str:
@@ -3028,7 +3074,7 @@ class CfnMountTargetProps:
3028
3074
  def security_groups(self) -> typing.List[builtins.str]:
3029
3075
  '''VPC security group IDs, of the form ``sg-xxxxxxxx`` .
3030
3076
 
3031
- These must be for the same VPC as the subnet specified. The maximum number of security groups depends on account quota. For more information, see `Amazon VPC Quotas <https://docs.aws.amazon.com/vpc/latest/userguide/amazon-vpc-limits.html>`_ in the *Amazon VPC User Guide* (see the *Security Groups* table).
3077
+ These must be for the same VPC as the subnet specified. The maximum number of security groups depends on account quota. For more information, see `Amazon VPC Quotas <https://docs.aws.amazon.com/vpc/latest/userguide/amazon-vpc-limits.html>`_ in the *Amazon VPC User Guide* (see the *Security Groups* table). If you don't specify a security group, then Amazon EFS uses the default security group for the subnet's VPC.
3032
3078
 
3033
3079
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-efs-mounttarget.html#cfn-efs-mounttarget-securitygroups
3034
3080
  '''
@@ -3040,7 +3086,7 @@ class CfnMountTargetProps:
3040
3086
  def subnet_id(self) -> builtins.str:
3041
3087
  '''The ID of the subnet to add the mount target in.
3042
3088
 
3043
- For One Zone file systems, use the subnet that is associated with the file system's Availability Zone.
3089
+ For One Zone file systems, use the subnet that is associated with the file system's Availability Zone. The subnet type must be the same type as the ``IpAddressType`` .
3044
3090
 
3045
3091
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-efs-mounttarget.html#cfn-efs-mounttarget-subnetid
3046
3092
  '''
@@ -3050,13 +3096,31 @@ class CfnMountTargetProps:
3050
3096
 
3051
3097
  @builtins.property
3052
3098
  def ip_address(self) -> typing.Optional[builtins.str]:
3053
- '''Valid IPv4 address within the address range of the specified subnet.
3099
+ '''If the ``IpAddressType`` for the mount target is IPv4 ( ``IPV4_ONLY`` or ``DUAL_STACK`` ), then specify the IPv4 address to use.
3100
+
3101
+ If you do not specify an ``IpAddress`` , then Amazon EFS selects an unused IP address from the subnet specified for ``SubnetId`` .
3054
3102
 
3055
3103
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-efs-mounttarget.html#cfn-efs-mounttarget-ipaddress
3056
3104
  '''
3057
3105
  result = self._values.get("ip_address")
3058
3106
  return typing.cast(typing.Optional[builtins.str], result)
3059
3107
 
3108
+ @builtins.property
3109
+ def ip_address_type(self) -> typing.Optional[builtins.str]:
3110
+ '''
3111
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-efs-mounttarget.html#cfn-efs-mounttarget-ipaddresstype
3112
+ '''
3113
+ result = self._values.get("ip_address_type")
3114
+ return typing.cast(typing.Optional[builtins.str], result)
3115
+
3116
+ @builtins.property
3117
+ def ipv6_address(self) -> typing.Optional[builtins.str]:
3118
+ '''
3119
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-efs-mounttarget.html#cfn-efs-mounttarget-ipv6address
3120
+ '''
3121
+ result = self._values.get("ipv6_address")
3122
+ return typing.cast(typing.Optional[builtins.str], result)
3123
+
3060
3124
  def __eq__(self, rhs: typing.Any) -> builtins.bool:
3061
3125
  return isinstance(rhs, self.__class__) and rhs._values == self._values
3062
3126
 
@@ -5234,6 +5298,8 @@ def _typecheckingstub__53e47daec02e70bf8a73cac8e0366ac0f8a6af5ccf7598cf37952afe9
5234
5298
  security_groups: typing.Sequence[builtins.str],
5235
5299
  subnet_id: builtins.str,
5236
5300
  ip_address: typing.Optional[builtins.str] = None,
5301
+ ip_address_type: typing.Optional[builtins.str] = None,
5302
+ ipv6_address: typing.Optional[builtins.str] = None,
5237
5303
  ) -> None:
5238
5304
  """Type checking stubs"""
5239
5305
  pass
@@ -5274,12 +5340,26 @@ def _typecheckingstub__804f6c8cadefc6e3bd989db6da64591d147d67de340d096244f68a218
5274
5340
  """Type checking stubs"""
5275
5341
  pass
5276
5342
 
5343
+ def _typecheckingstub__aa0cce2a23c783f1140d965a20db7db2255e72b575061672bff8884307e12048(
5344
+ value: typing.Optional[builtins.str],
5345
+ ) -> None:
5346
+ """Type checking stubs"""
5347
+ pass
5348
+
5349
+ def _typecheckingstub__4d32de6237501dc91f3fc4a5121f4d28b9f910af301fcb6a625250a259cb215b(
5350
+ value: typing.Optional[builtins.str],
5351
+ ) -> None:
5352
+ """Type checking stubs"""
5353
+ pass
5354
+
5277
5355
  def _typecheckingstub__f2ad126af1a9797276c238562f8185eb06a56da00a9b12a35504f9d72fbdc711(
5278
5356
  *,
5279
5357
  file_system_id: builtins.str,
5280
5358
  security_groups: typing.Sequence[builtins.str],
5281
5359
  subnet_id: builtins.str,
5282
5360
  ip_address: typing.Optional[builtins.str] = None,
5361
+ ip_address_type: typing.Optional[builtins.str] = None,
5362
+ ipv6_address: typing.Optional[builtins.str] = None,
5283
5363
  ) -> None:
5284
5364
  """Type checking stubs"""
5285
5365
  pass