aws-cdk-lib 2.200.2__py3-none-any.whl → 2.202.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 (62) hide show
  1. aws_cdk/__init__.py +129 -37
  2. aws_cdk/_jsii/__init__.py +1 -1
  3. aws_cdk/_jsii/{aws-cdk-lib@2.200.2.jsii.tgz → aws-cdk-lib@2.202.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 +227 -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 +38 -38
  14. aws_cdk/aws_cloudfront/experimental/__init__.py +5 -0
  15. aws_cdk/aws_cloudtrail/__init__.py +178 -0
  16. aws_cdk/aws_cloudwatch/__init__.py +7 -3
  17. aws_cdk/aws_codepipeline_actions/__init__.py +746 -0
  18. aws_cdk/aws_connect/__init__.py +5 -5
  19. aws_cdk/aws_customerprofiles/__init__.py +377 -8
  20. aws_cdk/aws_datasync/__init__.py +189 -160
  21. aws_cdk/aws_datazone/__init__.py +512 -170
  22. aws_cdk/aws_deadline/__init__.py +32 -4
  23. aws_cdk/aws_dsql/__init__.py +150 -10
  24. aws_cdk/aws_ec2/__init__.py +1191 -304
  25. aws_cdk/aws_ecs/__init__.py +94 -11
  26. aws_cdk/aws_efs/__init__.py +103 -12
  27. aws_cdk/aws_eks/__init__.py +337 -168
  28. aws_cdk/aws_elasticloadbalancingv2/__init__.py +2 -2
  29. aws_cdk/aws_emr/__init__.py +10 -4
  30. aws_cdk/aws_entityresolution/__init__.py +25 -10
  31. aws_cdk/aws_evs/__init__.py +2204 -0
  32. aws_cdk/aws_fsx/__init__.py +7 -7
  33. aws_cdk/aws_glue/__init__.py +58 -24
  34. aws_cdk/aws_iam/__init__.py +3 -3
  35. aws_cdk/aws_kms/__init__.py +10 -4
  36. aws_cdk/aws_lambda/__init__.py +1167 -55
  37. aws_cdk/aws_lambda_event_sources/__init__.py +638 -1
  38. aws_cdk/aws_lightsail/__init__.py +17 -13
  39. aws_cdk/aws_logs/__init__.py +1 -0
  40. aws_cdk/aws_msk/__init__.py +21 -2
  41. aws_cdk/aws_mwaa/__init__.py +45 -2
  42. aws_cdk/aws_networkfirewall/__init__.py +562 -0
  43. aws_cdk/aws_opensearchservice/__init__.py +3 -3
  44. aws_cdk/aws_opsworkscm/__init__.py +9 -43
  45. aws_cdk/aws_rds/__init__.py +287 -87
  46. aws_cdk/aws_s3/__init__.py +39 -15
  47. aws_cdk/aws_sagemaker/__init__.py +223 -3
  48. aws_cdk/aws_securityhub/__init__.py +18 -34
  49. aws_cdk/aws_ssm/__init__.py +83 -1
  50. aws_cdk/aws_stepfunctions/__init__.py +235 -45
  51. aws_cdk/aws_synthetics/__init__.py +74 -0
  52. aws_cdk/aws_transfer/__init__.py +3 -3
  53. aws_cdk/aws_verifiedpermissions/__init__.py +17 -6
  54. aws_cdk/aws_wafv2/__init__.py +770 -7
  55. aws_cdk/cx_api/__init__.py +14 -0
  56. aws_cdk/pipelines/__init__.py +147 -38
  57. {aws_cdk_lib-2.200.2.dist-info → aws_cdk_lib-2.202.0.dist-info}/METADATA +3 -3
  58. {aws_cdk_lib-2.200.2.dist-info → aws_cdk_lib-2.202.0.dist-info}/RECORD +62 -61
  59. {aws_cdk_lib-2.200.2.dist-info → aws_cdk_lib-2.202.0.dist-info}/LICENSE +0 -0
  60. {aws_cdk_lib-2.200.2.dist-info → aws_cdk_lib-2.202.0.dist-info}/NOTICE +0 -0
  61. {aws_cdk_lib-2.200.2.dist-info → aws_cdk_lib-2.202.0.dist-info}/WHEEL +0 -0
  62. {aws_cdk_lib-2.200.2.dist-info → aws_cdk_lib-2.202.0.dist-info}/top_level.txt +0 -0
@@ -929,7 +929,10 @@ If the security group ID is known and configuration details are unknown, use met
929
929
  sg = ec2.SecurityGroup.from_lookup_by_id(self, "SecurityGroupLookup", "sg-1234")
930
930
  ```
931
931
 
932
- The result of `SecurityGroup.fromLookupByName` and `SecurityGroup.fromLookupById` operations will be written to a file called `cdk.context.json`. You must commit this file to source control so that the lookup values are available in non-privileged environments such as CI build steps, and to ensure your template builds are repeatable.
932
+ The result of `SecurityGroup.fromLookupByName` and `SecurityGroup.fromLookupById` operations will be
933
+ written to a file called `cdk.context.json`.
934
+ You must commit this file to source control so that the lookup values are available in non-privileged
935
+ environments such as CI build steps, and to ensure your template builds are repeatable.
933
936
 
934
937
  ### Cross Stack Connections
935
938
 
@@ -1054,6 +1057,13 @@ generic_windows = ec2.MachineImage.generic_windows({
1054
1057
  > [Runtime Context](https://docs.aws.amazon.com/cdk/latest/guide/context.html) in the CDK
1055
1058
  > developer guide.
1056
1059
  >
1060
+ > To customize the cache key, use the `additionalCacheKey` parameter.
1061
+ > This allows you to have multiple lookups with the same parameters
1062
+ > cache their values separately. This can be useful if you want to
1063
+ > scope the context variable to a construct (ie, using `additionalCacheKey: this.node.path`),
1064
+ > so that if the value in the cache needs to be updated, it does not need to be updated
1065
+ > for all constructs at the same time.
1066
+ >
1057
1067
  > `MachineImage.genericLinux()`, `MachineImage.genericWindows()` will use `CfnMapping` in
1058
1068
  > an agnostic stack.
1059
1069
 
@@ -1479,6 +1489,30 @@ ec2.Instance(self, "LatestAl2023",
1479
1489
  # context cache is turned on by default
1480
1490
  machine_image=ec2.AmazonLinux2023ImageSsmParameter()
1481
1491
  )
1492
+
1493
+ # or
1494
+ ec2.Instance(self, "LatestAl2023",
1495
+ vpc=vpc,
1496
+ instance_type=ec2.InstanceType.of(ec2.InstanceClass.C7G, ec2.InstanceSize.LARGE),
1497
+ machine_image=ec2.MachineImage.latest_amazon_linux2023(
1498
+ cached_in_context=True,
1499
+ # creates a distinct context variable for this image, instead of resolving to the same
1500
+ # value anywhere this lookup is done in your app
1501
+ additional_cache_key=self.node.path
1502
+ )
1503
+ )
1504
+
1505
+ # or
1506
+ ec2.Instance(self, "LatestAl2023",
1507
+ vpc=vpc,
1508
+ instance_type=ec2.InstanceType.of(ec2.InstanceClass.C7G, ec2.InstanceSize.LARGE),
1509
+ # context cache is turned on by default
1510
+ machine_image=ec2.AmazonLinux2023ImageSsmParameter(
1511
+ # creates a distinct context variable for this image, instead of resolving to the same
1512
+ # value anywhere this lookup is done in your app
1513
+ additional_cache_key=self.node.path
1514
+ )
1515
+ )
1482
1516
  ```
1483
1517
 
1484
1518
  #### Kernel Versions
@@ -1958,6 +1992,25 @@ ec2.Volume(self, "Volume",
1958
1992
  )
1959
1993
  ```
1960
1994
 
1995
+ #### Volume initialization rate
1996
+
1997
+ When creating an EBS volume from a snapshot, you can specify the [volume initialization rate](https://docs.aws.amazon.com/ebs/latest/userguide/initalize-volume.html#volume-initialization-rate) at which the snapshot blocks are downloaded from Amazon S3 to the volume.
1998
+ Specifying a volume initialization rate ensures that the volume is initialized at a predictable and consistent rate after creation.
1999
+
2000
+ ```python
2001
+ ec2.Volume(self, "Volume",
2002
+ availability_zone="us-east-1a",
2003
+ size=Size.gibibytes(500),
2004
+ snapshot_id="snap-1234567890abcdef0",
2005
+ volume_initialization_rate=Size.mebibytes(250)
2006
+ )
2007
+ ```
2008
+
2009
+ The `volumeInitializationRate` must be:
2010
+
2011
+ * Between 100 and 300 MiB/s
2012
+ * Only specified when creating a volume from a snapshot
2013
+
1961
2014
  ### Configuring Instance Metadata Service (IMDS)
1962
2015
 
1963
2016
  #### Toggling IMDSv1
@@ -4108,6 +4161,7 @@ class AmazonLinuxGeneration(enum.Enum):
4108
4161
  jsii_type="aws-cdk-lib.aws_ec2.AmazonLinuxImageProps",
4109
4162
  jsii_struct_bases=[],
4110
4163
  name_mapping={
4164
+ "additional_cache_key": "additionalCacheKey",
4111
4165
  "cached_in_context": "cachedInContext",
4112
4166
  "cpu_type": "cpuType",
4113
4167
  "edition": "edition",
@@ -4122,6 +4176,7 @@ class AmazonLinuxImageProps:
4122
4176
  def __init__(
4123
4177
  self,
4124
4178
  *,
4179
+ additional_cache_key: typing.Optional[builtins.str] = None,
4125
4180
  cached_in_context: typing.Optional[builtins.bool] = None,
4126
4181
  cpu_type: typing.Optional[AmazonLinuxCpuType] = None,
4127
4182
  edition: typing.Optional[AmazonLinuxEdition] = None,
@@ -4133,6 +4188,7 @@ class AmazonLinuxImageProps:
4133
4188
  ) -> None:
4134
4189
  '''Amazon Linux image properties.
4135
4190
 
4191
+ :param additional_cache_key: Adds an additional discriminator to the ``cdk.context.json`` cache key. Default: - no additional cache key
4136
4192
  :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
4137
4193
  :param cpu_type: CPU Type. Default: X86_64
4138
4194
  :param edition: What edition of Amazon Linux to use. Default: Standard
@@ -4163,6 +4219,7 @@ class AmazonLinuxImageProps:
4163
4219
  '''
4164
4220
  if __debug__:
4165
4221
  type_hints = typing.get_type_hints(_typecheckingstub__dd95a518c06563a07debc9bf1ca51713b747cf64bded6f7cc81a28680d7ea9fc)
4222
+ check_type(argname="argument additional_cache_key", value=additional_cache_key, expected_type=type_hints["additional_cache_key"])
4166
4223
  check_type(argname="argument cached_in_context", value=cached_in_context, expected_type=type_hints["cached_in_context"])
4167
4224
  check_type(argname="argument cpu_type", value=cpu_type, expected_type=type_hints["cpu_type"])
4168
4225
  check_type(argname="argument edition", value=edition, expected_type=type_hints["edition"])
@@ -4172,6 +4229,8 @@ class AmazonLinuxImageProps:
4172
4229
  check_type(argname="argument user_data", value=user_data, expected_type=type_hints["user_data"])
4173
4230
  check_type(argname="argument virtualization", value=virtualization, expected_type=type_hints["virtualization"])
4174
4231
  self._values: typing.Dict[builtins.str, typing.Any] = {}
4232
+ if additional_cache_key is not None:
4233
+ self._values["additional_cache_key"] = additional_cache_key
4175
4234
  if cached_in_context is not None:
4176
4235
  self._values["cached_in_context"] = cached_in_context
4177
4236
  if cpu_type is not None:
@@ -4190,242 +4249,286 @@ class AmazonLinuxImageProps:
4190
4249
  self._values["virtualization"] = virtualization
4191
4250
 
4192
4251
  @builtins.property
4193
- def cached_in_context(self) -> typing.Optional[builtins.bool]:
4194
- '''Whether the AMI ID is cached to be stable between deployments.
4195
-
4196
- By default, the newest image is used on each deployment. This will cause
4197
- instances to be replaced whenever a new version is released, and may cause
4198
- downtime if there aren't enough running instances in the AutoScalingGroup
4199
- to reschedule the tasks on.
4200
-
4201
- If set to true, the AMI ID will be cached in ``cdk.context.json`` and the
4202
- same value will be used on future runs. Your instances will not be replaced
4203
- but your AMI version will grow old over time. To refresh the AMI lookup,
4204
- you will have to evict the value from the cache using the ``cdk context``
4205
- command. See https://docs.aws.amazon.com/cdk/latest/guide/context.html for
4206
- more information.
4207
-
4208
- Can not be set to ``true`` in environment-agnostic stacks.
4209
-
4210
- :default: false
4211
- '''
4212
- result = self._values.get("cached_in_context")
4213
- return typing.cast(typing.Optional[builtins.bool], result)
4214
-
4215
- @builtins.property
4216
- def cpu_type(self) -> typing.Optional[AmazonLinuxCpuType]:
4217
- '''CPU Type.
4218
-
4219
- :default: X86_64
4220
- '''
4221
- result = self._values.get("cpu_type")
4222
- return typing.cast(typing.Optional[AmazonLinuxCpuType], result)
4223
-
4224
- @builtins.property
4225
- def edition(self) -> typing.Optional[AmazonLinuxEdition]:
4226
- '''What edition of Amazon Linux to use.
4227
-
4228
- :default: Standard
4229
- '''
4230
- result = self._values.get("edition")
4231
- return typing.cast(typing.Optional[AmazonLinuxEdition], result)
4232
-
4233
- @builtins.property
4234
- def generation(self) -> typing.Optional[AmazonLinuxGeneration]:
4235
- '''What generation of Amazon Linux to use.
4236
-
4237
- :default: AmazonLinux
4238
- '''
4239
- result = self._values.get("generation")
4240
- return typing.cast(typing.Optional[AmazonLinuxGeneration], result)
4241
-
4242
- @builtins.property
4243
- def kernel(self) -> typing.Optional["AmazonLinuxKernel"]:
4244
- '''What kernel version of Amazon Linux to use.
4245
-
4246
- :default: -
4247
- '''
4248
- result = self._values.get("kernel")
4249
- return typing.cast(typing.Optional["AmazonLinuxKernel"], result)
4250
-
4251
- @builtins.property
4252
- def storage(self) -> typing.Optional["AmazonLinuxStorage"]:
4253
- '''What storage backed image to use.
4254
-
4255
- :default: GeneralPurpose
4256
- '''
4257
- result = self._values.get("storage")
4258
- return typing.cast(typing.Optional["AmazonLinuxStorage"], result)
4259
-
4260
- @builtins.property
4261
- def user_data(self) -> typing.Optional["UserData"]:
4262
- '''Initial user data.
4263
-
4264
- :default: - Empty UserData for Linux machines
4265
- '''
4266
- result = self._values.get("user_data")
4267
- return typing.cast(typing.Optional["UserData"], result)
4268
-
4269
- @builtins.property
4270
- def virtualization(self) -> typing.Optional["AmazonLinuxVirt"]:
4271
- '''Virtualization type.
4252
+ def additional_cache_key(self) -> typing.Optional[builtins.str]:
4253
+ '''Adds an additional discriminator to the ``cdk.context.json`` cache key.
4272
4254
 
4273
- :default: HVM
4255
+ :default: - no additional cache key
4274
4256
  '''
4275
- result = self._values.get("virtualization")
4276
- return typing.cast(typing.Optional["AmazonLinuxVirt"], result)
4277
-
4278
- def __eq__(self, rhs: typing.Any) -> builtins.bool:
4279
- return isinstance(rhs, self.__class__) and rhs._values == self._values
4280
-
4281
- def __ne__(self, rhs: typing.Any) -> builtins.bool:
4282
- return not (rhs == self)
4283
-
4284
- def __repr__(self) -> str:
4285
- return "AmazonLinuxImageProps(%s)" % ", ".join(
4286
- k + "=" + repr(v) for k, v in self._values.items()
4287
- )
4288
-
4289
-
4290
- @jsii.data_type(
4291
- jsii_type="aws-cdk-lib.aws_ec2.AmazonLinuxImageSsmParameterBaseOptions",
4292
- jsii_struct_bases=[],
4293
- name_mapping={"cached_in_context": "cachedInContext", "user_data": "userData"},
4294
- )
4295
- class AmazonLinuxImageSsmParameterBaseOptions:
4296
- def __init__(
4297
- self,
4298
- *,
4299
- cached_in_context: typing.Optional[builtins.bool] = None,
4300
- user_data: typing.Optional["UserData"] = None,
4301
- ) -> None:
4302
- '''Base options for amazon linux ssm parameters.
4303
-
4304
- :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
4305
- :param user_data: Initial user data. Default: - Empty UserData for Linux machines
4306
-
4307
- :exampleMetadata: fixture=_generated
4308
-
4309
- Example::
4310
-
4311
- # The code below shows an example of how to instantiate this type.
4312
- # The values are placeholders you should change.
4313
- from aws_cdk import aws_ec2 as ec2
4314
-
4315
- # user_data: ec2.UserData
4316
-
4317
- amazon_linux_image_ssm_parameter_base_options = ec2.AmazonLinuxImageSsmParameterBaseOptions(
4318
- cached_in_context=False,
4319
- user_data=user_data
4320
- )
4321
- '''
4322
- if __debug__:
4323
- type_hints = typing.get_type_hints(_typecheckingstub__08eb71b09afb1d361b3f043a5c2d7d4be91f84b114302afefc8a69963ee6333f)
4324
- check_type(argname="argument cached_in_context", value=cached_in_context, expected_type=type_hints["cached_in_context"])
4325
- check_type(argname="argument user_data", value=user_data, expected_type=type_hints["user_data"])
4326
- self._values: typing.Dict[builtins.str, typing.Any] = {}
4327
- if cached_in_context is not None:
4328
- self._values["cached_in_context"] = cached_in_context
4329
- if user_data is not None:
4330
- self._values["user_data"] = user_data
4331
-
4332
- @builtins.property
4333
- def cached_in_context(self) -> typing.Optional[builtins.bool]:
4334
- '''Whether the AMI ID is cached to be stable between deployments.
4335
-
4336
- By default, the newest image is used on each deployment. This will cause
4337
- instances to be replaced whenever a new version is released, and may cause
4338
- downtime if there aren't enough running instances in the AutoScalingGroup
4339
- to reschedule the tasks on.
4340
-
4341
- If set to true, the AMI ID will be cached in ``cdk.context.json`` and the
4342
- same value will be used on future runs. Your instances will not be replaced
4343
- but your AMI version will grow old over time. To refresh the AMI lookup,
4344
- you will have to evict the value from the cache using the ``cdk context``
4345
- command. See https://docs.aws.amazon.com/cdk/latest/guide/context.html for
4346
- more information.
4347
-
4348
- Can not be set to ``true`` in environment-agnostic stacks.
4349
-
4350
- :default: false
4351
- '''
4352
- result = self._values.get("cached_in_context")
4353
- return typing.cast(typing.Optional[builtins.bool], result)
4354
-
4355
- @builtins.property
4356
- def user_data(self) -> typing.Optional["UserData"]:
4357
- '''Initial user data.
4358
-
4359
- :default: - Empty UserData for Linux machines
4360
- '''
4361
- result = self._values.get("user_data")
4362
- return typing.cast(typing.Optional["UserData"], result)
4363
-
4364
- def __eq__(self, rhs: typing.Any) -> builtins.bool:
4365
- return isinstance(rhs, self.__class__) and rhs._values == self._values
4366
-
4367
- def __ne__(self, rhs: typing.Any) -> builtins.bool:
4368
- return not (rhs == self)
4369
-
4370
- def __repr__(self) -> str:
4371
- return "AmazonLinuxImageSsmParameterBaseOptions(%s)" % ", ".join(
4372
- k + "=" + repr(v) for k, v in self._values.items()
4373
- )
4374
-
4375
-
4376
- @jsii.data_type(
4377
- jsii_type="aws-cdk-lib.aws_ec2.AmazonLinuxImageSsmParameterBaseProps",
4378
- jsii_struct_bases=[AmazonLinuxImageSsmParameterBaseOptions],
4379
- name_mapping={
4380
- "cached_in_context": "cachedInContext",
4381
- "user_data": "userData",
4382
- "parameter_name": "parameterName",
4383
- },
4384
- )
4385
- class AmazonLinuxImageSsmParameterBaseProps(AmazonLinuxImageSsmParameterBaseOptions):
4386
- def __init__(
4387
- self,
4388
- *,
4389
- cached_in_context: typing.Optional[builtins.bool] = None,
4390
- user_data: typing.Optional["UserData"] = None,
4391
- parameter_name: builtins.str,
4392
- ) -> None:
4393
- '''Base properties for an Amazon Linux SSM Parameter.
4394
-
4395
- :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
4396
- :param user_data: Initial user data. Default: - Empty UserData for Linux machines
4397
- :param parameter_name: The name of the SSM parameter that contains the AMI value.
4398
-
4399
- :exampleMetadata: fixture=_generated
4400
-
4401
- Example::
4402
-
4403
- # The code below shows an example of how to instantiate this type.
4404
- # The values are placeholders you should change.
4405
- from aws_cdk import aws_ec2 as ec2
4406
-
4407
- # user_data: ec2.UserData
4408
-
4409
- amazon_linux_image_ssm_parameter_base_props = ec2.AmazonLinuxImageSsmParameterBaseProps(
4410
- parameter_name="parameterName",
4411
-
4412
- # the properties below are optional
4413
- cached_in_context=False,
4414
- user_data=user_data
4415
- )
4416
- '''
4417
- if __debug__:
4418
- type_hints = typing.get_type_hints(_typecheckingstub__78a32cfc14171e780d6e44d3e6a99faa6da50655ac09560f7b229b0c0c7383f1)
4419
- check_type(argname="argument cached_in_context", value=cached_in_context, expected_type=type_hints["cached_in_context"])
4420
- check_type(argname="argument user_data", value=user_data, expected_type=type_hints["user_data"])
4421
- check_type(argname="argument parameter_name", value=parameter_name, expected_type=type_hints["parameter_name"])
4422
- self._values: typing.Dict[builtins.str, typing.Any] = {
4423
- "parameter_name": parameter_name,
4424
- }
4425
- if cached_in_context is not None:
4426
- self._values["cached_in_context"] = cached_in_context
4427
- if user_data is not None:
4428
- self._values["user_data"] = user_data
4257
+ result = self._values.get("additional_cache_key")
4258
+ return typing.cast(typing.Optional[builtins.str], result)
4259
+
4260
+ @builtins.property
4261
+ def cached_in_context(self) -> typing.Optional[builtins.bool]:
4262
+ '''Whether the AMI ID is cached to be stable between deployments.
4263
+
4264
+ By default, the newest image is used on each deployment. This will cause
4265
+ instances to be replaced whenever a new version is released, and may cause
4266
+ downtime if there aren't enough running instances in the AutoScalingGroup
4267
+ to reschedule the tasks on.
4268
+
4269
+ If set to true, the AMI ID will be cached in ``cdk.context.json`` and the
4270
+ same value will be used on future runs. Your instances will not be replaced
4271
+ but your AMI version will grow old over time. To refresh the AMI lookup,
4272
+ you will have to evict the value from the cache using the ``cdk context``
4273
+ command. See https://docs.aws.amazon.com/cdk/latest/guide/context.html for
4274
+ more information.
4275
+
4276
+ Can not be set to ``true`` in environment-agnostic stacks.
4277
+
4278
+ :default: false
4279
+ '''
4280
+ result = self._values.get("cached_in_context")
4281
+ return typing.cast(typing.Optional[builtins.bool], result)
4282
+
4283
+ @builtins.property
4284
+ def cpu_type(self) -> typing.Optional[AmazonLinuxCpuType]:
4285
+ '''CPU Type.
4286
+
4287
+ :default: X86_64
4288
+ '''
4289
+ result = self._values.get("cpu_type")
4290
+ return typing.cast(typing.Optional[AmazonLinuxCpuType], result)
4291
+
4292
+ @builtins.property
4293
+ def edition(self) -> typing.Optional[AmazonLinuxEdition]:
4294
+ '''What edition of Amazon Linux to use.
4295
+
4296
+ :default: Standard
4297
+ '''
4298
+ result = self._values.get("edition")
4299
+ return typing.cast(typing.Optional[AmazonLinuxEdition], result)
4300
+
4301
+ @builtins.property
4302
+ def generation(self) -> typing.Optional[AmazonLinuxGeneration]:
4303
+ '''What generation of Amazon Linux to use.
4304
+
4305
+ :default: AmazonLinux
4306
+ '''
4307
+ result = self._values.get("generation")
4308
+ return typing.cast(typing.Optional[AmazonLinuxGeneration], result)
4309
+
4310
+ @builtins.property
4311
+ def kernel(self) -> typing.Optional["AmazonLinuxKernel"]:
4312
+ '''What kernel version of Amazon Linux to use.
4313
+
4314
+ :default: -
4315
+ '''
4316
+ result = self._values.get("kernel")
4317
+ return typing.cast(typing.Optional["AmazonLinuxKernel"], result)
4318
+
4319
+ @builtins.property
4320
+ def storage(self) -> typing.Optional["AmazonLinuxStorage"]:
4321
+ '''What storage backed image to use.
4322
+
4323
+ :default: GeneralPurpose
4324
+ '''
4325
+ result = self._values.get("storage")
4326
+ return typing.cast(typing.Optional["AmazonLinuxStorage"], result)
4327
+
4328
+ @builtins.property
4329
+ def user_data(self) -> typing.Optional["UserData"]:
4330
+ '''Initial user data.
4331
+
4332
+ :default: - Empty UserData for Linux machines
4333
+ '''
4334
+ result = self._values.get("user_data")
4335
+ return typing.cast(typing.Optional["UserData"], result)
4336
+
4337
+ @builtins.property
4338
+ def virtualization(self) -> typing.Optional["AmazonLinuxVirt"]:
4339
+ '''Virtualization type.
4340
+
4341
+ :default: HVM
4342
+ '''
4343
+ result = self._values.get("virtualization")
4344
+ return typing.cast(typing.Optional["AmazonLinuxVirt"], result)
4345
+
4346
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
4347
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
4348
+
4349
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
4350
+ return not (rhs == self)
4351
+
4352
+ def __repr__(self) -> str:
4353
+ return "AmazonLinuxImageProps(%s)" % ", ".join(
4354
+ k + "=" + repr(v) for k, v in self._values.items()
4355
+ )
4356
+
4357
+
4358
+ @jsii.data_type(
4359
+ jsii_type="aws-cdk-lib.aws_ec2.AmazonLinuxImageSsmParameterBaseOptions",
4360
+ jsii_struct_bases=[],
4361
+ name_mapping={
4362
+ "additional_cache_key": "additionalCacheKey",
4363
+ "cached_in_context": "cachedInContext",
4364
+ "user_data": "userData",
4365
+ },
4366
+ )
4367
+ class AmazonLinuxImageSsmParameterBaseOptions:
4368
+ def __init__(
4369
+ self,
4370
+ *,
4371
+ additional_cache_key: typing.Optional[builtins.str] = None,
4372
+ cached_in_context: typing.Optional[builtins.bool] = None,
4373
+ user_data: typing.Optional["UserData"] = None,
4374
+ ) -> None:
4375
+ '''Base options for amazon linux ssm parameters.
4376
+
4377
+ :param additional_cache_key: Adds an additional discriminator to the ``cdk.context.json`` cache key. Default: - no additional cache key
4378
+ :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
4379
+ :param user_data: Initial user data. Default: - Empty UserData for Linux machines
4380
+
4381
+ :exampleMetadata: fixture=_generated
4382
+
4383
+ Example::
4384
+
4385
+ # The code below shows an example of how to instantiate this type.
4386
+ # The values are placeholders you should change.
4387
+ from aws_cdk import aws_ec2 as ec2
4388
+
4389
+ # user_data: ec2.UserData
4390
+
4391
+ amazon_linux_image_ssm_parameter_base_options = ec2.AmazonLinuxImageSsmParameterBaseOptions(
4392
+ additional_cache_key="additionalCacheKey",
4393
+ cached_in_context=False,
4394
+ user_data=user_data
4395
+ )
4396
+ '''
4397
+ if __debug__:
4398
+ type_hints = typing.get_type_hints(_typecheckingstub__08eb71b09afb1d361b3f043a5c2d7d4be91f84b114302afefc8a69963ee6333f)
4399
+ check_type(argname="argument additional_cache_key", value=additional_cache_key, expected_type=type_hints["additional_cache_key"])
4400
+ check_type(argname="argument cached_in_context", value=cached_in_context, expected_type=type_hints["cached_in_context"])
4401
+ check_type(argname="argument user_data", value=user_data, expected_type=type_hints["user_data"])
4402
+ self._values: typing.Dict[builtins.str, typing.Any] = {}
4403
+ if additional_cache_key is not None:
4404
+ self._values["additional_cache_key"] = additional_cache_key
4405
+ if cached_in_context is not None:
4406
+ self._values["cached_in_context"] = cached_in_context
4407
+ if user_data is not None:
4408
+ self._values["user_data"] = user_data
4409
+
4410
+ @builtins.property
4411
+ def additional_cache_key(self) -> typing.Optional[builtins.str]:
4412
+ '''Adds an additional discriminator to the ``cdk.context.json`` cache key.
4413
+
4414
+ :default: - no additional cache key
4415
+ '''
4416
+ result = self._values.get("additional_cache_key")
4417
+ return typing.cast(typing.Optional[builtins.str], result)
4418
+
4419
+ @builtins.property
4420
+ def cached_in_context(self) -> typing.Optional[builtins.bool]:
4421
+ '''Whether the AMI ID is cached to be stable between deployments.
4422
+
4423
+ By default, the newest image is used on each deployment. This will cause
4424
+ instances to be replaced whenever a new version is released, and may cause
4425
+ downtime if there aren't enough running instances in the AutoScalingGroup
4426
+ to reschedule the tasks on.
4427
+
4428
+ If set to true, the AMI ID will be cached in ``cdk.context.json`` and the
4429
+ same value will be used on future runs. Your instances will not be replaced
4430
+ but your AMI version will grow old over time. To refresh the AMI lookup,
4431
+ you will have to evict the value from the cache using the ``cdk context``
4432
+ command. See https://docs.aws.amazon.com/cdk/latest/guide/context.html for
4433
+ more information.
4434
+
4435
+ Can not be set to ``true`` in environment-agnostic stacks.
4436
+
4437
+ :default: false
4438
+ '''
4439
+ result = self._values.get("cached_in_context")
4440
+ return typing.cast(typing.Optional[builtins.bool], result)
4441
+
4442
+ @builtins.property
4443
+ def user_data(self) -> typing.Optional["UserData"]:
4444
+ '''Initial user data.
4445
+
4446
+ :default: - Empty UserData for Linux machines
4447
+ '''
4448
+ result = self._values.get("user_data")
4449
+ return typing.cast(typing.Optional["UserData"], result)
4450
+
4451
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
4452
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
4453
+
4454
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
4455
+ return not (rhs == self)
4456
+
4457
+ def __repr__(self) -> str:
4458
+ return "AmazonLinuxImageSsmParameterBaseOptions(%s)" % ", ".join(
4459
+ k + "=" + repr(v) for k, v in self._values.items()
4460
+ )
4461
+
4462
+
4463
+ @jsii.data_type(
4464
+ jsii_type="aws-cdk-lib.aws_ec2.AmazonLinuxImageSsmParameterBaseProps",
4465
+ jsii_struct_bases=[AmazonLinuxImageSsmParameterBaseOptions],
4466
+ name_mapping={
4467
+ "additional_cache_key": "additionalCacheKey",
4468
+ "cached_in_context": "cachedInContext",
4469
+ "user_data": "userData",
4470
+ "parameter_name": "parameterName",
4471
+ },
4472
+ )
4473
+ class AmazonLinuxImageSsmParameterBaseProps(AmazonLinuxImageSsmParameterBaseOptions):
4474
+ def __init__(
4475
+ self,
4476
+ *,
4477
+ additional_cache_key: typing.Optional[builtins.str] = None,
4478
+ cached_in_context: typing.Optional[builtins.bool] = None,
4479
+ user_data: typing.Optional["UserData"] = None,
4480
+ parameter_name: builtins.str,
4481
+ ) -> None:
4482
+ '''Base properties for an Amazon Linux SSM Parameter.
4483
+
4484
+ :param additional_cache_key: Adds an additional discriminator to the ``cdk.context.json`` cache key. Default: - no additional cache key
4485
+ :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
4486
+ :param user_data: Initial user data. Default: - Empty UserData for Linux machines
4487
+ :param parameter_name: The name of the SSM parameter that contains the AMI value.
4488
+
4489
+ :exampleMetadata: fixture=_generated
4490
+
4491
+ Example::
4492
+
4493
+ # The code below shows an example of how to instantiate this type.
4494
+ # The values are placeholders you should change.
4495
+ from aws_cdk import aws_ec2 as ec2
4496
+
4497
+ # user_data: ec2.UserData
4498
+
4499
+ amazon_linux_image_ssm_parameter_base_props = ec2.AmazonLinuxImageSsmParameterBaseProps(
4500
+ parameter_name="parameterName",
4501
+
4502
+ # the properties below are optional
4503
+ additional_cache_key="additionalCacheKey",
4504
+ cached_in_context=False,
4505
+ user_data=user_data
4506
+ )
4507
+ '''
4508
+ if __debug__:
4509
+ type_hints = typing.get_type_hints(_typecheckingstub__78a32cfc14171e780d6e44d3e6a99faa6da50655ac09560f7b229b0c0c7383f1)
4510
+ check_type(argname="argument additional_cache_key", value=additional_cache_key, expected_type=type_hints["additional_cache_key"])
4511
+ check_type(argname="argument cached_in_context", value=cached_in_context, expected_type=type_hints["cached_in_context"])
4512
+ check_type(argname="argument user_data", value=user_data, expected_type=type_hints["user_data"])
4513
+ check_type(argname="argument parameter_name", value=parameter_name, expected_type=type_hints["parameter_name"])
4514
+ self._values: typing.Dict[builtins.str, typing.Any] = {
4515
+ "parameter_name": parameter_name,
4516
+ }
4517
+ if additional_cache_key is not None:
4518
+ self._values["additional_cache_key"] = additional_cache_key
4519
+ if cached_in_context is not None:
4520
+ self._values["cached_in_context"] = cached_in_context
4521
+ if user_data is not None:
4522
+ self._values["user_data"] = user_data
4523
+
4524
+ @builtins.property
4525
+ def additional_cache_key(self) -> typing.Optional[builtins.str]:
4526
+ '''Adds an additional discriminator to the ``cdk.context.json`` cache key.
4527
+
4528
+ :default: - no additional cache key
4529
+ '''
4530
+ result = self._values.get("additional_cache_key")
4531
+ return typing.cast(typing.Optional[builtins.str], result)
4429
4532
 
4430
4533
  @builtins.property
4431
4534
  def cached_in_context(self) -> typing.Optional[builtins.bool]:
@@ -4482,6 +4585,7 @@ class AmazonLinuxImageSsmParameterBaseProps(AmazonLinuxImageSsmParameterBaseOpti
4482
4585
  jsii_type="aws-cdk-lib.aws_ec2.AmazonLinuxImageSsmParameterCommonOptions",
4483
4586
  jsii_struct_bases=[AmazonLinuxImageSsmParameterBaseOptions],
4484
4587
  name_mapping={
4588
+ "additional_cache_key": "additionalCacheKey",
4485
4589
  "cached_in_context": "cachedInContext",
4486
4590
  "user_data": "userData",
4487
4591
  "cpu_type": "cpuType",
@@ -4494,6 +4598,7 @@ class AmazonLinuxImageSsmParameterCommonOptions(
4494
4598
  def __init__(
4495
4599
  self,
4496
4600
  *,
4601
+ additional_cache_key: typing.Optional[builtins.str] = None,
4497
4602
  cached_in_context: typing.Optional[builtins.bool] = None,
4498
4603
  user_data: typing.Optional["UserData"] = None,
4499
4604
  cpu_type: typing.Optional[AmazonLinuxCpuType] = None,
@@ -4501,6 +4606,7 @@ class AmazonLinuxImageSsmParameterCommonOptions(
4501
4606
  ) -> None:
4502
4607
  '''Common options across all generations.
4503
4608
 
4609
+ :param additional_cache_key: Adds an additional discriminator to the ``cdk.context.json`` cache key. Default: - no additional cache key
4504
4610
  :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
4505
4611
  :param user_data: Initial user data. Default: - Empty UserData for Linux machines
4506
4612
  :param cpu_type: CPU Type. Default: AmazonLinuxCpuType.X86_64
@@ -4517,6 +4623,7 @@ class AmazonLinuxImageSsmParameterCommonOptions(
4517
4623
  # user_data: ec2.UserData
4518
4624
 
4519
4625
  amazon_linux_image_ssm_parameter_common_options = ec2.AmazonLinuxImageSsmParameterCommonOptions(
4626
+ additional_cache_key="additionalCacheKey",
4520
4627
  cached_in_context=False,
4521
4628
  cpu_type=ec2.AmazonLinuxCpuType.ARM_64,
4522
4629
  edition=ec2.AmazonLinuxEdition.STANDARD,
@@ -4525,11 +4632,14 @@ class AmazonLinuxImageSsmParameterCommonOptions(
4525
4632
  '''
4526
4633
  if __debug__:
4527
4634
  type_hints = typing.get_type_hints(_typecheckingstub__8fcdd01a6ab45c77447fba339b5a9358c3ab40c4833c1f86c68009a6a3bb1422)
4635
+ check_type(argname="argument additional_cache_key", value=additional_cache_key, expected_type=type_hints["additional_cache_key"])
4528
4636
  check_type(argname="argument cached_in_context", value=cached_in_context, expected_type=type_hints["cached_in_context"])
4529
4637
  check_type(argname="argument user_data", value=user_data, expected_type=type_hints["user_data"])
4530
4638
  check_type(argname="argument cpu_type", value=cpu_type, expected_type=type_hints["cpu_type"])
4531
4639
  check_type(argname="argument edition", value=edition, expected_type=type_hints["edition"])
4532
4640
  self._values: typing.Dict[builtins.str, typing.Any] = {}
4641
+ if additional_cache_key is not None:
4642
+ self._values["additional_cache_key"] = additional_cache_key
4533
4643
  if cached_in_context is not None:
4534
4644
  self._values["cached_in_context"] = cached_in_context
4535
4645
  if user_data is not None:
@@ -4539,6 +4649,15 @@ class AmazonLinuxImageSsmParameterCommonOptions(
4539
4649
  if edition is not None:
4540
4650
  self._values["edition"] = edition
4541
4651
 
4652
+ @builtins.property
4653
+ def additional_cache_key(self) -> typing.Optional[builtins.str]:
4654
+ '''Adds an additional discriminator to the ``cdk.context.json`` cache key.
4655
+
4656
+ :default: - no additional cache key
4657
+ '''
4658
+ result = self._values.get("additional_cache_key")
4659
+ return typing.cast(typing.Optional[builtins.str], result)
4660
+
4542
4661
  @builtins.property
4543
4662
  def cached_in_context(self) -> typing.Optional[builtins.bool]:
4544
4663
  '''Whether the AMI ID is cached to be stable between deployments.
@@ -11030,6 +11149,20 @@ class CfnEC2Fleet(
11030
11149
  ),
11031
11150
  overrides=[ec2.CfnEC2Fleet.FleetLaunchTemplateOverridesRequestProperty(
11032
11151
  availability_zone="availabilityZone",
11152
+ block_device_mappings=[ec2.CfnEC2Fleet.BlockDeviceMappingProperty(
11153
+ device_name="deviceName",
11154
+ ebs=ec2.CfnEC2Fleet.EbsBlockDeviceProperty(
11155
+ delete_on_termination=False,
11156
+ encrypted=False,
11157
+ iops=123,
11158
+ kms_key_id="kmsKeyId",
11159
+ snapshot_id="snapshotId",
11160
+ volume_size=123,
11161
+ volume_type="volumeType"
11162
+ ),
11163
+ no_device="noDevice",
11164
+ virtual_name="virtualName"
11165
+ )],
11033
11166
  instance_requirements=ec2.CfnEC2Fleet.InstanceRequirementsRequestProperty(
11034
11167
  accelerator_count=ec2.CfnEC2Fleet.AcceleratorCountRequestProperty(
11035
11168
  max=123,
@@ -11750,6 +11883,129 @@ class CfnEC2Fleet(
11750
11883
  k + "=" + repr(v) for k, v in self._values.items()
11751
11884
  )
11752
11885
 
11886
+ @jsii.data_type(
11887
+ jsii_type="aws-cdk-lib.aws_ec2.CfnEC2Fleet.BlockDeviceMappingProperty",
11888
+ jsii_struct_bases=[],
11889
+ name_mapping={
11890
+ "device_name": "deviceName",
11891
+ "ebs": "ebs",
11892
+ "no_device": "noDevice",
11893
+ "virtual_name": "virtualName",
11894
+ },
11895
+ )
11896
+ class BlockDeviceMappingProperty:
11897
+ def __init__(
11898
+ self,
11899
+ *,
11900
+ device_name: typing.Optional[builtins.str] = None,
11901
+ ebs: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union["CfnEC2Fleet.EbsBlockDeviceProperty", typing.Dict[builtins.str, typing.Any]]]] = None,
11902
+ no_device: typing.Optional[builtins.str] = None,
11903
+ virtual_name: typing.Optional[builtins.str] = None,
11904
+ ) -> None:
11905
+ '''Describes a block device mapping, which defines the EBS volumes and instance store volumes to attach to an instance at launch.
11906
+
11907
+ :param device_name: The device name (for example, ``/dev/sdh`` or ``xvdh`` ).
11908
+ :param ebs: Parameters used to automatically set up EBS volumes when the instance is launched.
11909
+ :param no_device: To omit the device from the block device mapping, specify an empty string. When this property is specified, the device is removed from the block device mapping regardless of the assigned value.
11910
+ :param virtual_name: The virtual device name ( ``ephemeral`` N). Instance store volumes are numbered starting from 0. An instance type with 2 available instance store volumes can specify mappings for ``ephemeral0`` and ``ephemeral1`` . The number of available instance store volumes depends on the instance type. After you connect to the instance, you must mount the volume. NVMe instance store volumes are automatically enumerated and assigned a device name. Including them in your block device mapping has no effect. Constraints: For M3 instances, you must specify instance store volumes in the block device mapping for the instance. When you launch an M3 instance, we ignore any instance store volumes specified in the block device mapping for the AMI.
11911
+
11912
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ec2fleet-blockdevicemapping.html
11913
+ :exampleMetadata: fixture=_generated
11914
+
11915
+ Example::
11916
+
11917
+ # The code below shows an example of how to instantiate this type.
11918
+ # The values are placeholders you should change.
11919
+ from aws_cdk import aws_ec2 as ec2
11920
+
11921
+ block_device_mapping_property = ec2.CfnEC2Fleet.BlockDeviceMappingProperty(
11922
+ device_name="deviceName",
11923
+ ebs=ec2.CfnEC2Fleet.EbsBlockDeviceProperty(
11924
+ delete_on_termination=False,
11925
+ encrypted=False,
11926
+ iops=123,
11927
+ kms_key_id="kmsKeyId",
11928
+ snapshot_id="snapshotId",
11929
+ volume_size=123,
11930
+ volume_type="volumeType"
11931
+ ),
11932
+ no_device="noDevice",
11933
+ virtual_name="virtualName"
11934
+ )
11935
+ '''
11936
+ if __debug__:
11937
+ type_hints = typing.get_type_hints(_typecheckingstub__2ac1bca7bdb78c6a00383adcdf8e49157dfa7db32559bd0d8033ff9f9ea819c7)
11938
+ check_type(argname="argument device_name", value=device_name, expected_type=type_hints["device_name"])
11939
+ check_type(argname="argument ebs", value=ebs, expected_type=type_hints["ebs"])
11940
+ check_type(argname="argument no_device", value=no_device, expected_type=type_hints["no_device"])
11941
+ check_type(argname="argument virtual_name", value=virtual_name, expected_type=type_hints["virtual_name"])
11942
+ self._values: typing.Dict[builtins.str, typing.Any] = {}
11943
+ if device_name is not None:
11944
+ self._values["device_name"] = device_name
11945
+ if ebs is not None:
11946
+ self._values["ebs"] = ebs
11947
+ if no_device is not None:
11948
+ self._values["no_device"] = no_device
11949
+ if virtual_name is not None:
11950
+ self._values["virtual_name"] = virtual_name
11951
+
11952
+ @builtins.property
11953
+ def device_name(self) -> typing.Optional[builtins.str]:
11954
+ '''The device name (for example, ``/dev/sdh`` or ``xvdh`` ).
11955
+
11956
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ec2fleet-blockdevicemapping.html#cfn-ec2-ec2fleet-blockdevicemapping-devicename
11957
+ '''
11958
+ result = self._values.get("device_name")
11959
+ return typing.cast(typing.Optional[builtins.str], result)
11960
+
11961
+ @builtins.property
11962
+ def ebs(
11963
+ self,
11964
+ ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnEC2Fleet.EbsBlockDeviceProperty"]]:
11965
+ '''Parameters used to automatically set up EBS volumes when the instance is launched.
11966
+
11967
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ec2fleet-blockdevicemapping.html#cfn-ec2-ec2fleet-blockdevicemapping-ebs
11968
+ '''
11969
+ result = self._values.get("ebs")
11970
+ return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnEC2Fleet.EbsBlockDeviceProperty"]], result)
11971
+
11972
+ @builtins.property
11973
+ def no_device(self) -> typing.Optional[builtins.str]:
11974
+ '''To omit the device from the block device mapping, specify an empty string.
11975
+
11976
+ When this property is specified, the device is removed from the block device mapping regardless of the assigned value.
11977
+
11978
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ec2fleet-blockdevicemapping.html#cfn-ec2-ec2fleet-blockdevicemapping-nodevice
11979
+ '''
11980
+ result = self._values.get("no_device")
11981
+ return typing.cast(typing.Optional[builtins.str], result)
11982
+
11983
+ @builtins.property
11984
+ def virtual_name(self) -> typing.Optional[builtins.str]:
11985
+ '''The virtual device name ( ``ephemeral`` N).
11986
+
11987
+ Instance store volumes are numbered starting from 0. An instance type with 2 available instance store volumes can specify mappings for ``ephemeral0`` and ``ephemeral1`` . The number of available instance store volumes depends on the instance type. After you connect to the instance, you must mount the volume.
11988
+
11989
+ NVMe instance store volumes are automatically enumerated and assigned a device name. Including them in your block device mapping has no effect.
11990
+
11991
+ Constraints: For M3 instances, you must specify instance store volumes in the block device mapping for the instance. When you launch an M3 instance, we ignore any instance store volumes specified in the block device mapping for the AMI.
11992
+
11993
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ec2fleet-blockdevicemapping.html#cfn-ec2-ec2fleet-blockdevicemapping-virtualname
11994
+ '''
11995
+ result = self._values.get("virtual_name")
11996
+ return typing.cast(typing.Optional[builtins.str], result)
11997
+
11998
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
11999
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
12000
+
12001
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
12002
+ return not (rhs == self)
12003
+
12004
+ def __repr__(self) -> str:
12005
+ return "BlockDeviceMappingProperty(%s)" % ", ".join(
12006
+ k + "=" + repr(v) for k, v in self._values.items()
12007
+ )
12008
+
11753
12009
  @jsii.data_type(
11754
12010
  jsii_type="aws-cdk-lib.aws_ec2.CfnEC2Fleet.CapacityRebalanceProperty",
11755
12011
  jsii_struct_bases=[],
@@ -11964,6 +12220,206 @@ class CfnEC2Fleet(
11964
12220
  k + "=" + repr(v) for k, v in self._values.items()
11965
12221
  )
11966
12222
 
12223
+ @jsii.data_type(
12224
+ jsii_type="aws-cdk-lib.aws_ec2.CfnEC2Fleet.EbsBlockDeviceProperty",
12225
+ jsii_struct_bases=[],
12226
+ name_mapping={
12227
+ "delete_on_termination": "deleteOnTermination",
12228
+ "encrypted": "encrypted",
12229
+ "iops": "iops",
12230
+ "kms_key_id": "kmsKeyId",
12231
+ "snapshot_id": "snapshotId",
12232
+ "volume_size": "volumeSize",
12233
+ "volume_type": "volumeType",
12234
+ },
12235
+ )
12236
+ class EbsBlockDeviceProperty:
12237
+ def __init__(
12238
+ self,
12239
+ *,
12240
+ delete_on_termination: typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]] = None,
12241
+ encrypted: typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]] = None,
12242
+ iops: typing.Optional[jsii.Number] = None,
12243
+ kms_key_id: typing.Optional[builtins.str] = None,
12244
+ snapshot_id: typing.Optional[builtins.str] = None,
12245
+ volume_size: typing.Optional[jsii.Number] = None,
12246
+ volume_type: typing.Optional[builtins.str] = None,
12247
+ ) -> None:
12248
+ '''Describes a block device for an EBS volume.
12249
+
12250
+ :param delete_on_termination: Indicates whether the EBS volume is deleted on instance termination. For more information, see `Preserving Amazon EBS volumes on instance termination <https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/terminating-instances.html#preserving-volumes-on-termination>`_ in the *Amazon EC2 User Guide* .
12251
+ :param encrypted: Indicates whether the encryption state of an EBS volume is changed while being restored from a backing snapshot. The effect of setting the encryption state to ``true`` depends on the volume origin (new or from a snapshot), starting encryption state, ownership, and whether encryption by default is enabled. For more information, see `Amazon EBS encryption <https://docs.aws.amazon.com/ebs/latest/userguide/ebs-encryption.html#encryption-parameters>`_ in the *Amazon EBS User Guide* . In no case can you remove encryption from an encrypted volume. Encrypted volumes can only be attached to instances that support Amazon EBS encryption. For more information, see `Supported instance types <https://docs.aws.amazon.com/ebs/latest/userguide/ebs-encryption-requirements.html#ebs-encryption_supported_instances>`_ . This parameter is not returned by ``DescribeImageAttribute`` . For ``CreateImage`` and ``RegisterImage`` , whether you can include this parameter, and the allowed values differ depending on the type of block device mapping you are creating. - If you are creating a block device mapping for a *new (empty) volume* , you can include this parameter, and specify either ``true`` for an encrypted volume, or ``false`` for an unencrypted volume. If you omit this parameter, it defaults to ``false`` (unencrypted). - If you are creating a block device mapping from an *existing encrypted or unencrypted snapshot* , you must omit this parameter. If you include this parameter, the request will fail, regardless of the value that you specify. - If you are creating a block device mapping from an *existing unencrypted volume* , you can include this parameter, but you must specify ``false`` . If you specify ``true`` , the request will fail. In this case, we recommend that you omit the parameter. - If you are creating a block device mapping from an *existing encrypted volume* , you can include this parameter, and specify either ``true`` or ``false`` . However, if you specify ``false`` , the parameter is ignored and the block device mapping is always encrypted. In this case, we recommend that you omit the parameter.
12252
+ :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 required for ``io1`` and ``io2`` volumes. The default for ``gp3`` volumes is 3,000 IOPS.
12253
+ :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. This parameter is only supported on ``BlockDeviceMapping`` objects called by `RunInstances <https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_RunInstances.html>`_ , `RequestSpotFleet <https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_RequestSpotFleet.html>`_ , and `RequestSpotInstances <https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_RequestSpotInstances.html>`_ .
12254
+ :param snapshot_id: The ID of the snapshot.
12255
+ :param volume_size: The size of the volume, in GiBs. You must specify either a snapshot ID or a volume size. If you specify a snapshot, the default is the snapshot size. You can specify a volume size that is equal to or larger than the snapshot size. The following are the supported 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
12256
+ :param volume_type: The volume type. For more information, see `Amazon EBS volume types <https://docs.aws.amazon.com/ebs/latest/userguide/ebs-volume-types.html>`_ in the *Amazon EBS User Guide* .
12257
+
12258
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ec2fleet-ebsblockdevice.html
12259
+ :exampleMetadata: fixture=_generated
12260
+
12261
+ Example::
12262
+
12263
+ # The code below shows an example of how to instantiate this type.
12264
+ # The values are placeholders you should change.
12265
+ from aws_cdk import aws_ec2 as ec2
12266
+
12267
+ ebs_block_device_property = ec2.CfnEC2Fleet.EbsBlockDeviceProperty(
12268
+ delete_on_termination=False,
12269
+ encrypted=False,
12270
+ iops=123,
12271
+ kms_key_id="kmsKeyId",
12272
+ snapshot_id="snapshotId",
12273
+ volume_size=123,
12274
+ volume_type="volumeType"
12275
+ )
12276
+ '''
12277
+ if __debug__:
12278
+ type_hints = typing.get_type_hints(_typecheckingstub__98937edeb55103aa31b4f310bc1c5cdf31ffd54c5c2d451314118a9d43196bbd)
12279
+ check_type(argname="argument delete_on_termination", value=delete_on_termination, expected_type=type_hints["delete_on_termination"])
12280
+ check_type(argname="argument encrypted", value=encrypted, expected_type=type_hints["encrypted"])
12281
+ check_type(argname="argument iops", value=iops, expected_type=type_hints["iops"])
12282
+ check_type(argname="argument kms_key_id", value=kms_key_id, expected_type=type_hints["kms_key_id"])
12283
+ check_type(argname="argument snapshot_id", value=snapshot_id, expected_type=type_hints["snapshot_id"])
12284
+ check_type(argname="argument volume_size", value=volume_size, expected_type=type_hints["volume_size"])
12285
+ check_type(argname="argument volume_type", value=volume_type, expected_type=type_hints["volume_type"])
12286
+ self._values: typing.Dict[builtins.str, typing.Any] = {}
12287
+ if delete_on_termination is not None:
12288
+ self._values["delete_on_termination"] = delete_on_termination
12289
+ if encrypted is not None:
12290
+ self._values["encrypted"] = encrypted
12291
+ if iops is not None:
12292
+ self._values["iops"] = iops
12293
+ if kms_key_id is not None:
12294
+ self._values["kms_key_id"] = kms_key_id
12295
+ if snapshot_id is not None:
12296
+ self._values["snapshot_id"] = snapshot_id
12297
+ if volume_size is not None:
12298
+ self._values["volume_size"] = volume_size
12299
+ if volume_type is not None:
12300
+ self._values["volume_type"] = volume_type
12301
+
12302
+ @builtins.property
12303
+ def delete_on_termination(
12304
+ self,
12305
+ ) -> typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]]:
12306
+ '''Indicates whether the EBS volume is deleted on instance termination.
12307
+
12308
+ For more information, see `Preserving Amazon EBS volumes on instance termination <https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/terminating-instances.html#preserving-volumes-on-termination>`_ in the *Amazon EC2 User Guide* .
12309
+
12310
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ec2fleet-ebsblockdevice.html#cfn-ec2-ec2fleet-ebsblockdevice-deleteontermination
12311
+ '''
12312
+ result = self._values.get("delete_on_termination")
12313
+ return typing.cast(typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]], result)
12314
+
12315
+ @builtins.property
12316
+ def encrypted(
12317
+ self,
12318
+ ) -> typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]]:
12319
+ '''Indicates whether the encryption state of an EBS volume is changed while being restored from a backing snapshot.
12320
+
12321
+ The effect of setting the encryption state to ``true`` depends on the volume origin (new or from a snapshot), starting encryption state, ownership, and whether encryption by default is enabled. For more information, see `Amazon EBS encryption <https://docs.aws.amazon.com/ebs/latest/userguide/ebs-encryption.html#encryption-parameters>`_ in the *Amazon EBS User Guide* .
12322
+
12323
+ In no case can you remove encryption from an encrypted volume.
12324
+
12325
+ Encrypted volumes can only be attached to instances that support Amazon EBS encryption. For more information, see `Supported instance types <https://docs.aws.amazon.com/ebs/latest/userguide/ebs-encryption-requirements.html#ebs-encryption_supported_instances>`_ .
12326
+
12327
+ This parameter is not returned by ``DescribeImageAttribute`` .
12328
+
12329
+ For ``CreateImage`` and ``RegisterImage`` , whether you can include this parameter, and the allowed values differ depending on the type of block device mapping you are creating.
12330
+
12331
+ - If you are creating a block device mapping for a *new (empty) volume* , you can include this parameter, and specify either ``true`` for an encrypted volume, or ``false`` for an unencrypted volume. If you omit this parameter, it defaults to ``false`` (unencrypted).
12332
+ - If you are creating a block device mapping from an *existing encrypted or unencrypted snapshot* , you must omit this parameter. If you include this parameter, the request will fail, regardless of the value that you specify.
12333
+ - If you are creating a block device mapping from an *existing unencrypted volume* , you can include this parameter, but you must specify ``false`` . If you specify ``true`` , the request will fail. In this case, we recommend that you omit the parameter.
12334
+ - If you are creating a block device mapping from an *existing encrypted volume* , you can include this parameter, and specify either ``true`` or ``false`` . However, if you specify ``false`` , the parameter is ignored and the block device mapping is always encrypted. In this case, we recommend that you omit the parameter.
12335
+
12336
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ec2fleet-ebsblockdevice.html#cfn-ec2-ec2fleet-ebsblockdevice-encrypted
12337
+ '''
12338
+ result = self._values.get("encrypted")
12339
+ return typing.cast(typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]], result)
12340
+
12341
+ @builtins.property
12342
+ def iops(self) -> typing.Optional[jsii.Number]:
12343
+ '''The number of I/O operations per second (IOPS).
12344
+
12345
+ 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.
12346
+
12347
+ The following are the supported values for each volume type:
12348
+
12349
+ - ``gp3`` : 3,000 - 16,000 IOPS
12350
+ - ``io1`` : 100 - 64,000 IOPS
12351
+ - ``io2`` : 100 - 256,000 IOPS
12352
+
12353
+ 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.
12354
+
12355
+ This parameter is required for ``io1`` and ``io2`` volumes. The default for ``gp3`` volumes is 3,000 IOPS.
12356
+
12357
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ec2fleet-ebsblockdevice.html#cfn-ec2-ec2fleet-ebsblockdevice-iops
12358
+ '''
12359
+ result = self._values.get("iops")
12360
+ return typing.cast(typing.Optional[jsii.Number], result)
12361
+
12362
+ @builtins.property
12363
+ def kms_key_id(self) -> typing.Optional[builtins.str]:
12364
+ '''Identifier (key ID, key alias, key ARN, or alias ARN) of the customer managed KMS key to use for EBS encryption.
12365
+
12366
+ This parameter is only supported on ``BlockDeviceMapping`` objects called by `RunInstances <https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_RunInstances.html>`_ , `RequestSpotFleet <https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_RequestSpotFleet.html>`_ , and `RequestSpotInstances <https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_RequestSpotInstances.html>`_ .
12367
+
12368
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ec2fleet-ebsblockdevice.html#cfn-ec2-ec2fleet-ebsblockdevice-kmskeyid
12369
+ '''
12370
+ result = self._values.get("kms_key_id")
12371
+ return typing.cast(typing.Optional[builtins.str], result)
12372
+
12373
+ @builtins.property
12374
+ def snapshot_id(self) -> typing.Optional[builtins.str]:
12375
+ '''The ID of the snapshot.
12376
+
12377
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ec2fleet-ebsblockdevice.html#cfn-ec2-ec2fleet-ebsblockdevice-snapshotid
12378
+ '''
12379
+ result = self._values.get("snapshot_id")
12380
+ return typing.cast(typing.Optional[builtins.str], result)
12381
+
12382
+ @builtins.property
12383
+ def volume_size(self) -> typing.Optional[jsii.Number]:
12384
+ '''The size of the volume, in GiBs.
12385
+
12386
+ You must specify either a snapshot ID or a volume size. If you specify a snapshot, the default is the snapshot size. You can specify a volume size that is equal to or larger than the snapshot size.
12387
+
12388
+ The following are the supported sizes for each volume type:
12389
+
12390
+ - ``gp2`` and ``gp3`` : 1 - 16,384 GiB
12391
+ - ``io1`` : 4 - 16,384 GiB
12392
+ - ``io2`` : 4 - 65,536 GiB
12393
+ - ``st1`` and ``sc1`` : 125 - 16,384 GiB
12394
+ - ``standard`` : 1 - 1024 GiB
12395
+
12396
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ec2fleet-ebsblockdevice.html#cfn-ec2-ec2fleet-ebsblockdevice-volumesize
12397
+ '''
12398
+ result = self._values.get("volume_size")
12399
+ return typing.cast(typing.Optional[jsii.Number], result)
12400
+
12401
+ @builtins.property
12402
+ def volume_type(self) -> typing.Optional[builtins.str]:
12403
+ '''The volume type.
12404
+
12405
+ For more information, see `Amazon EBS volume types <https://docs.aws.amazon.com/ebs/latest/userguide/ebs-volume-types.html>`_ in the *Amazon EBS User Guide* .
12406
+
12407
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ec2fleet-ebsblockdevice.html#cfn-ec2-ec2fleet-ebsblockdevice-volumetype
12408
+ '''
12409
+ result = self._values.get("volume_type")
12410
+ return typing.cast(typing.Optional[builtins.str], result)
12411
+
12412
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
12413
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
12414
+
12415
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
12416
+ return not (rhs == self)
12417
+
12418
+ def __repr__(self) -> str:
12419
+ return "EbsBlockDeviceProperty(%s)" % ", ".join(
12420
+ k + "=" + repr(v) for k, v in self._values.items()
12421
+ )
12422
+
11967
12423
  @jsii.data_type(
11968
12424
  jsii_type="aws-cdk-lib.aws_ec2.CfnEC2Fleet.FleetLaunchTemplateConfigRequestProperty",
11969
12425
  jsii_struct_bases=[],
@@ -12005,6 +12461,20 @@ class CfnEC2Fleet(
12005
12461
  ),
12006
12462
  overrides=[ec2.CfnEC2Fleet.FleetLaunchTemplateOverridesRequestProperty(
12007
12463
  availability_zone="availabilityZone",
12464
+ block_device_mappings=[ec2.CfnEC2Fleet.BlockDeviceMappingProperty(
12465
+ device_name="deviceName",
12466
+ ebs=ec2.CfnEC2Fleet.EbsBlockDeviceProperty(
12467
+ delete_on_termination=False,
12468
+ encrypted=False,
12469
+ iops=123,
12470
+ kms_key_id="kmsKeyId",
12471
+ snapshot_id="snapshotId",
12472
+ volume_size=123,
12473
+ volume_type="volumeType"
12474
+ ),
12475
+ no_device="noDevice",
12476
+ virtual_name="virtualName"
12477
+ )],
12008
12478
  instance_requirements=ec2.CfnEC2Fleet.InstanceRequirementsRequestProperty(
12009
12479
  accelerator_count=ec2.CfnEC2Fleet.AcceleratorCountRequestProperty(
12010
12480
  max=123,
@@ -12135,6 +12605,7 @@ class CfnEC2Fleet(
12135
12605
  jsii_struct_bases=[],
12136
12606
  name_mapping={
12137
12607
  "availability_zone": "availabilityZone",
12608
+ "block_device_mappings": "blockDeviceMappings",
12138
12609
  "instance_requirements": "instanceRequirements",
12139
12610
  "instance_type": "instanceType",
12140
12611
  "max_price": "maxPrice",
@@ -12149,6 +12620,7 @@ class CfnEC2Fleet(
12149
12620
  self,
12150
12621
  *,
12151
12622
  availability_zone: typing.Optional[builtins.str] = None,
12623
+ block_device_mappings: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union["CfnEC2Fleet.BlockDeviceMappingProperty", typing.Dict[builtins.str, typing.Any]]]]]] = None,
12152
12624
  instance_requirements: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union["CfnEC2Fleet.InstanceRequirementsRequestProperty", typing.Dict[builtins.str, typing.Any]]]] = None,
12153
12625
  instance_type: typing.Optional[builtins.str] = None,
12154
12626
  max_price: typing.Optional[builtins.str] = None,
@@ -12162,6 +12634,7 @@ class CfnEC2Fleet(
12162
12634
  ``FleetLaunchTemplateOverridesRequest`` is a property of the `FleetLaunchTemplateConfigRequest <https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ec2fleet-fleetlaunchtemplateconfigrequest.html>`_ property type.
12163
12635
 
12164
12636
  :param availability_zone: The Availability Zone in which to launch the instances.
12637
+ :param block_device_mappings: The block device mappings, which define the EBS volumes and instance store volumes to attach to the instance at launch. Supported only for fleets of type ``instant`` . For more information, see `Block device mappings for volumes on Amazon EC2 instances <https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/block-device-mapping-concepts.html>`_ in the *Amazon EC2 User Guide* .
12165
12638
  :param instance_requirements: The attributes for the instance types. When you specify instance attributes, Amazon EC2 will identify instance types with those attributes. .. epigraph:: If you specify ``InstanceRequirements`` , you can't specify ``InstanceType`` .
12166
12639
  :param instance_type: The instance type. ``mac1.metal`` is not supported as a launch template override. .. epigraph:: If you specify ``InstanceType`` , you can't specify ``InstanceRequirements`` .
12167
12640
  :param max_price: The maximum price per unit hour that you are willing to pay for a Spot Instance. We do not recommend using this parameter because it can lead to increased interruptions. If you do not specify this parameter, you will pay the current Spot price. .. epigraph:: If you specify a maximum price, your instances will be interrupted more frequently than if you do not specify this parameter. If you specify a maximum price, it must be more than USD $0.001. Specifying a value below USD $0.001 will result in an ``InvalidParameterValue`` error message.
@@ -12181,6 +12654,20 @@ class CfnEC2Fleet(
12181
12654
 
12182
12655
  fleet_launch_template_overrides_request_property = ec2.CfnEC2Fleet.FleetLaunchTemplateOverridesRequestProperty(
12183
12656
  availability_zone="availabilityZone",
12657
+ block_device_mappings=[ec2.CfnEC2Fleet.BlockDeviceMappingProperty(
12658
+ device_name="deviceName",
12659
+ ebs=ec2.CfnEC2Fleet.EbsBlockDeviceProperty(
12660
+ delete_on_termination=False,
12661
+ encrypted=False,
12662
+ iops=123,
12663
+ kms_key_id="kmsKeyId",
12664
+ snapshot_id="snapshotId",
12665
+ volume_size=123,
12666
+ volume_type="volumeType"
12667
+ ),
12668
+ no_device="noDevice",
12669
+ virtual_name="virtualName"
12670
+ )],
12184
12671
  instance_requirements=ec2.CfnEC2Fleet.InstanceRequirementsRequestProperty(
12185
12672
  accelerator_count=ec2.CfnEC2Fleet.AcceleratorCountRequestProperty(
12186
12673
  max=123,
@@ -12261,6 +12748,7 @@ class CfnEC2Fleet(
12261
12748
  if __debug__:
12262
12749
  type_hints = typing.get_type_hints(_typecheckingstub__d758750d188cce1b749f19591d20310ad5bc697f0e6f94f495c9619297998763)
12263
12750
  check_type(argname="argument availability_zone", value=availability_zone, expected_type=type_hints["availability_zone"])
12751
+ check_type(argname="argument block_device_mappings", value=block_device_mappings, expected_type=type_hints["block_device_mappings"])
12264
12752
  check_type(argname="argument instance_requirements", value=instance_requirements, expected_type=type_hints["instance_requirements"])
12265
12753
  check_type(argname="argument instance_type", value=instance_type, expected_type=type_hints["instance_type"])
12266
12754
  check_type(argname="argument max_price", value=max_price, expected_type=type_hints["max_price"])
@@ -12271,6 +12759,8 @@ class CfnEC2Fleet(
12271
12759
  self._values: typing.Dict[builtins.str, typing.Any] = {}
12272
12760
  if availability_zone is not None:
12273
12761
  self._values["availability_zone"] = availability_zone
12762
+ if block_device_mappings is not None:
12763
+ self._values["block_device_mappings"] = block_device_mappings
12274
12764
  if instance_requirements is not None:
12275
12765
  self._values["instance_requirements"] = instance_requirements
12276
12766
  if instance_type is not None:
@@ -12295,6 +12785,21 @@ class CfnEC2Fleet(
12295
12785
  result = self._values.get("availability_zone")
12296
12786
  return typing.cast(typing.Optional[builtins.str], result)
12297
12787
 
12788
+ @builtins.property
12789
+ def block_device_mappings(
12790
+ self,
12791
+ ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, "CfnEC2Fleet.BlockDeviceMappingProperty"]]]]:
12792
+ '''The block device mappings, which define the EBS volumes and instance store volumes to attach to the instance at launch.
12793
+
12794
+ Supported only for fleets of type ``instant`` .
12795
+
12796
+ For more information, see `Block device mappings for volumes on Amazon EC2 instances <https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/block-device-mapping-concepts.html>`_ in the *Amazon EC2 User Guide* .
12797
+
12798
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ec2fleet-fleetlaunchtemplateoverridesrequest.html#cfn-ec2-ec2fleet-fleetlaunchtemplateoverridesrequest-blockdevicemappings
12799
+ '''
12800
+ result = self._values.get("block_device_mappings")
12801
+ return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, "CfnEC2Fleet.BlockDeviceMappingProperty"]]]], result)
12802
+
12298
12803
  @builtins.property
12299
12804
  def instance_requirements(
12300
12805
  self,
@@ -14627,6 +15132,20 @@ class CfnEC2FleetProps:
14627
15132
  ),
14628
15133
  overrides=[ec2.CfnEC2Fleet.FleetLaunchTemplateOverridesRequestProperty(
14629
15134
  availability_zone="availabilityZone",
15135
+ block_device_mappings=[ec2.CfnEC2Fleet.BlockDeviceMappingProperty(
15136
+ device_name="deviceName",
15137
+ ebs=ec2.CfnEC2Fleet.EbsBlockDeviceProperty(
15138
+ delete_on_termination=False,
15139
+ encrypted=False,
15140
+ iops=123,
15141
+ kms_key_id="kmsKeyId",
15142
+ snapshot_id="snapshotId",
15143
+ volume_size=123,
15144
+ volume_type="volumeType"
15145
+ ),
15146
+ no_device="noDevice",
15147
+ virtual_name="virtualName"
15148
+ )],
14630
15149
  instance_requirements=ec2.CfnEC2Fleet.InstanceRequirementsRequestProperty(
14631
15150
  accelerator_count=ec2.CfnEC2Fleet.AcceleratorCountRequestProperty(
14632
15151
  max=123,
@@ -15694,7 +16213,7 @@ class CfnEIPProps:
15694
16213
  )
15695
16214
 
15696
16215
 
15697
- @jsii.implements(_IInspectable_c2943556)
16216
+ @jsii.implements(_IInspectable_c2943556, _ITaggableV2_4e6798f8)
15698
16217
  class CfnEgressOnlyInternetGateway(
15699
16218
  _CfnResource_9df397a6,
15700
16219
  metaclass=jsii.JSIIMeta,
@@ -15717,7 +16236,13 @@ class CfnEgressOnlyInternetGateway(
15717
16236
  from aws_cdk import aws_ec2 as ec2
15718
16237
 
15719
16238
  cfn_egress_only_internet_gateway = ec2.CfnEgressOnlyInternetGateway(self, "MyCfnEgressOnlyInternetGateway",
15720
- vpc_id="vpcId"
16239
+ vpc_id="vpcId",
16240
+
16241
+ # the properties below are optional
16242
+ tags=[CfnTag(
16243
+ key="key",
16244
+ value="value"
16245
+ )]
15721
16246
  )
15722
16247
  '''
15723
16248
 
@@ -15727,17 +16252,19 @@ class CfnEgressOnlyInternetGateway(
15727
16252
  id: builtins.str,
15728
16253
  *,
15729
16254
  vpc_id: builtins.str,
16255
+ tags: typing.Optional[typing.Sequence[typing.Union[_CfnTag_f6864754, typing.Dict[builtins.str, typing.Any]]]] = None,
15730
16256
  ) -> None:
15731
16257
  '''
15732
16258
  :param scope: Scope in which this resource is defined.
15733
16259
  :param id: Construct identifier for this resource (unique in its scope).
15734
16260
  :param vpc_id: The ID of the VPC for which to create the egress-only internet gateway.
16261
+ :param tags: The tags assigned to the egress-only internet gateway.
15735
16262
  '''
15736
16263
  if __debug__:
15737
16264
  type_hints = typing.get_type_hints(_typecheckingstub__84a7ddca98bd1c24713f12588ec54b51cdc19c99c2209e07c964172011c4d7ab)
15738
16265
  check_type(argname="argument scope", value=scope, expected_type=type_hints["scope"])
15739
16266
  check_type(argname="argument id", value=id, expected_type=type_hints["id"])
15740
- props = CfnEgressOnlyInternetGatewayProps(vpc_id=vpc_id)
16267
+ props = CfnEgressOnlyInternetGatewayProps(vpc_id=vpc_id, tags=tags)
15741
16268
 
15742
16269
  jsii.create(self.__class__, self, [scope, id, props])
15743
16270
 
@@ -15780,6 +16307,12 @@ class CfnEgressOnlyInternetGateway(
15780
16307
  '''
15781
16308
  return typing.cast(builtins.str, jsii.get(self, "attrId"))
15782
16309
 
16310
+ @builtins.property
16311
+ @jsii.member(jsii_name="cdkTagManager")
16312
+ def cdk_tag_manager(self) -> _TagManager_0a598cb3:
16313
+ '''Tag Manager which manages the tags for this resource.'''
16314
+ return typing.cast(_TagManager_0a598cb3, jsii.get(self, "cdkTagManager"))
16315
+
15783
16316
  @builtins.property
15784
16317
  @jsii.member(jsii_name="cfnProperties")
15785
16318
  def _cfn_properties(self) -> typing.Mapping[builtins.str, typing.Any]:
@@ -15798,17 +16331,36 @@ class CfnEgressOnlyInternetGateway(
15798
16331
  check_type(argname="argument value", value=value, expected_type=type_hints["value"])
15799
16332
  jsii.set(self, "vpcId", value) # pyright: ignore[reportArgumentType]
15800
16333
 
16334
+ @builtins.property
16335
+ @jsii.member(jsii_name="tags")
16336
+ def tags(self) -> typing.Optional[typing.List[_CfnTag_f6864754]]:
16337
+ '''The tags assigned to the egress-only internet gateway.'''
16338
+ return typing.cast(typing.Optional[typing.List[_CfnTag_f6864754]], jsii.get(self, "tags"))
16339
+
16340
+ @tags.setter
16341
+ def tags(self, value: typing.Optional[typing.List[_CfnTag_f6864754]]) -> None:
16342
+ if __debug__:
16343
+ type_hints = typing.get_type_hints(_typecheckingstub__923846a8ba3d02f36c9267e2c903018ed279860265ad8a488da0a81153c5ff44)
16344
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
16345
+ jsii.set(self, "tags", value) # pyright: ignore[reportArgumentType]
16346
+
15801
16347
 
15802
16348
  @jsii.data_type(
15803
16349
  jsii_type="aws-cdk-lib.aws_ec2.CfnEgressOnlyInternetGatewayProps",
15804
16350
  jsii_struct_bases=[],
15805
- name_mapping={"vpc_id": "vpcId"},
16351
+ name_mapping={"vpc_id": "vpcId", "tags": "tags"},
15806
16352
  )
15807
16353
  class CfnEgressOnlyInternetGatewayProps:
15808
- def __init__(self, *, vpc_id: builtins.str) -> None:
16354
+ def __init__(
16355
+ self,
16356
+ *,
16357
+ vpc_id: builtins.str,
16358
+ tags: typing.Optional[typing.Sequence[typing.Union[_CfnTag_f6864754, typing.Dict[builtins.str, typing.Any]]]] = None,
16359
+ ) -> None:
15809
16360
  '''Properties for defining a ``CfnEgressOnlyInternetGateway``.
15810
16361
 
15811
16362
  :param vpc_id: The ID of the VPC for which to create the egress-only internet gateway.
16363
+ :param tags: The tags assigned to the egress-only internet gateway.
15812
16364
 
15813
16365
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-egressonlyinternetgateway.html
15814
16366
  :exampleMetadata: fixture=_generated
@@ -15820,15 +16372,24 @@ class CfnEgressOnlyInternetGatewayProps:
15820
16372
  from aws_cdk import aws_ec2 as ec2
15821
16373
 
15822
16374
  cfn_egress_only_internet_gateway_props = ec2.CfnEgressOnlyInternetGatewayProps(
15823
- vpc_id="vpcId"
16375
+ vpc_id="vpcId",
16376
+
16377
+ # the properties below are optional
16378
+ tags=[CfnTag(
16379
+ key="key",
16380
+ value="value"
16381
+ )]
15824
16382
  )
15825
16383
  '''
15826
16384
  if __debug__:
15827
16385
  type_hints = typing.get_type_hints(_typecheckingstub__b693b2d49003d73758f4c0003564a93353b18fc97434556a2e988e47f367fb84)
15828
16386
  check_type(argname="argument vpc_id", value=vpc_id, expected_type=type_hints["vpc_id"])
16387
+ check_type(argname="argument tags", value=tags, expected_type=type_hints["tags"])
15829
16388
  self._values: typing.Dict[builtins.str, typing.Any] = {
15830
16389
  "vpc_id": vpc_id,
15831
16390
  }
16391
+ if tags is not None:
16392
+ self._values["tags"] = tags
15832
16393
 
15833
16394
  @builtins.property
15834
16395
  def vpc_id(self) -> builtins.str:
@@ -15840,6 +16401,15 @@ class CfnEgressOnlyInternetGatewayProps:
15840
16401
  assert result is not None, "Required property 'vpc_id' is missing"
15841
16402
  return typing.cast(builtins.str, result)
15842
16403
 
16404
+ @builtins.property
16405
+ def tags(self) -> typing.Optional[typing.List[_CfnTag_f6864754]]:
16406
+ '''The tags assigned to the egress-only internet gateway.
16407
+
16408
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-egressonlyinternetgateway.html#cfn-ec2-egressonlyinternetgateway-tags
16409
+ '''
16410
+ result = self._values.get("tags")
16411
+ return typing.cast(typing.Optional[typing.List[_CfnTag_f6864754]], result)
16412
+
15843
16413
  def __eq__(self, rhs: typing.Any) -> builtins.bool:
15844
16414
  return isinstance(rhs, self.__class__) and rhs._values == self._values
15845
16415
 
@@ -52031,7 +52601,7 @@ class CfnSubnet(
52031
52601
 
52032
52602
  Example::
52033
52603
 
52034
- from aws_cdk.lambda_layer_kubectl_v32 import KubectlV32Layer
52604
+ from aws_cdk.lambda_layer_kubectl_v33 import KubectlV33Layer
52035
52605
  # vpc: ec2.Vpc
52036
52606
 
52037
52607
 
@@ -52056,11 +52626,11 @@ class CfnSubnet(
52056
52626
  subnetcount = subnetcount + 1
52057
52627
 
52058
52628
  cluster = eks.Cluster(self, "hello-eks",
52059
- version=eks.KubernetesVersion.V1_32,
52629
+ version=eks.KubernetesVersion.V1_33,
52060
52630
  vpc=vpc,
52061
52631
  ip_family=eks.IpFamily.IP_V6,
52062
52632
  vpc_subnets=[ec2.SubnetSelection(subnets=vpc.public_subnets)],
52063
- kubectl_layer=KubectlV32Layer(self, "kubectl")
52633
+ kubectl_layer=KubectlV33Layer(self, "kubectl")
52064
52634
  )
52065
52635
  '''
52066
52636
 
@@ -52186,6 +52756,14 @@ class CfnSubnet(
52186
52756
  '''
52187
52757
  return typing.cast(builtins.str, jsii.get(self, "attrAvailabilityZoneId"))
52188
52758
 
52759
+ @builtins.property
52760
+ @jsii.member(jsii_name="attrBlockPublicAccessStates")
52761
+ def attr_block_public_access_states(self) -> _IResolvable_da3f097b:
52762
+ '''
52763
+ :cloudformationAttribute: BlockPublicAccessStates
52764
+ '''
52765
+ return typing.cast(_IResolvable_da3f097b, jsii.get(self, "attrBlockPublicAccessStates"))
52766
+
52189
52767
  @builtins.property
52190
52768
  @jsii.member(jsii_name="attrCidrBlock")
52191
52769
  def attr_cidr_block(self) -> builtins.str:
@@ -52498,6 +53076,62 @@ class CfnSubnet(
52498
53076
  check_type(argname="argument value", value=value, expected_type=type_hints["value"])
52499
53077
  jsii.set(self, "tagsRaw", value) # pyright: ignore[reportArgumentType]
52500
53078
 
53079
+ @jsii.data_type(
53080
+ jsii_type="aws-cdk-lib.aws_ec2.CfnSubnet.BlockPublicAccessStatesProperty",
53081
+ jsii_struct_bases=[],
53082
+ name_mapping={"internet_gateway_block_mode": "internetGatewayBlockMode"},
53083
+ )
53084
+ class BlockPublicAccessStatesProperty:
53085
+ def __init__(
53086
+ self,
53087
+ *,
53088
+ internet_gateway_block_mode: typing.Optional[builtins.str] = None,
53089
+ ) -> None:
53090
+ '''
53091
+ :param internet_gateway_block_mode: The mode of VPC BPA. Options here are off, block-bidirectional, block-ingress
53092
+
53093
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-subnet-blockpublicaccessstates.html
53094
+ :exampleMetadata: fixture=_generated
53095
+
53096
+ Example::
53097
+
53098
+ # The code below shows an example of how to instantiate this type.
53099
+ # The values are placeholders you should change.
53100
+ from aws_cdk import aws_ec2 as ec2
53101
+
53102
+ block_public_access_states_property = ec2.CfnSubnet.BlockPublicAccessStatesProperty(
53103
+ internet_gateway_block_mode="internetGatewayBlockMode"
53104
+ )
53105
+ '''
53106
+ if __debug__:
53107
+ type_hints = typing.get_type_hints(_typecheckingstub__39b852e2beaad9da72706596053a58f7c1190828d458e590af07c5701812220d)
53108
+ check_type(argname="argument internet_gateway_block_mode", value=internet_gateway_block_mode, expected_type=type_hints["internet_gateway_block_mode"])
53109
+ self._values: typing.Dict[builtins.str, typing.Any] = {}
53110
+ if internet_gateway_block_mode is not None:
53111
+ self._values["internet_gateway_block_mode"] = internet_gateway_block_mode
53112
+
53113
+ @builtins.property
53114
+ def internet_gateway_block_mode(self) -> typing.Optional[builtins.str]:
53115
+ '''The mode of VPC BPA.
53116
+
53117
+ Options here are off, block-bidirectional, block-ingress
53118
+
53119
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-subnet-blockpublicaccessstates.html#cfn-ec2-subnet-blockpublicaccessstates-internetgatewayblockmode
53120
+ '''
53121
+ result = self._values.get("internet_gateway_block_mode")
53122
+ return typing.cast(typing.Optional[builtins.str], result)
53123
+
53124
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
53125
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
53126
+
53127
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
53128
+ return not (rhs == self)
53129
+
53130
+ def __repr__(self) -> str:
53131
+ return "BlockPublicAccessStatesProperty(%s)" % ", ".join(
53132
+ k + "=" + repr(v) for k, v in self._values.items()
53133
+ )
53134
+
52501
53135
  @jsii.data_type(
52502
53136
  jsii_type="aws-cdk-lib.aws_ec2.CfnSubnet.PrivateDnsNameOptionsOnLaunchProperty",
52503
53137
  jsii_struct_bases=[],
@@ -53720,8 +54354,7 @@ class CfnTrafficMirrorFilter(
53720
54354
  @builtins.property
53721
54355
  @jsii.member(jsii_name="attrId")
53722
54356
  def attr_id(self) -> builtins.str:
53723
- '''The ID of a traffic mirror filter.
53724
-
54357
+ '''
53725
54358
  :cloudformationAttribute: Id
53726
54359
  '''
53727
54360
  return typing.cast(builtins.str, jsii.get(self, "attrId"))
@@ -60356,7 +60989,7 @@ class CfnVPCCidrBlock(
60356
60989
 
60357
60990
  Example::
60358
60991
 
60359
- from aws_cdk.lambda_layer_kubectl_v32 import KubectlV32Layer
60992
+ from aws_cdk.lambda_layer_kubectl_v33 import KubectlV33Layer
60360
60993
  # vpc: ec2.Vpc
60361
60994
 
60362
60995
 
@@ -60381,11 +61014,11 @@ class CfnVPCCidrBlock(
60381
61014
  subnetcount = subnetcount + 1
60382
61015
 
60383
61016
  cluster = eks.Cluster(self, "hello-eks",
60384
- version=eks.KubernetesVersion.V1_32,
61017
+ version=eks.KubernetesVersion.V1_33,
60385
61018
  vpc=vpc,
60386
61019
  ip_family=eks.IpFamily.IP_V6,
60387
61020
  vpc_subnets=[ec2.SubnetSelection(subnets=vpc.public_subnets)],
60388
- kubectl_layer=KubectlV32Layer(self, "kubectl")
61021
+ kubectl_layer=KubectlV33Layer(self, "kubectl")
60389
61022
  )
60390
61023
  '''
60391
61024
 
@@ -60695,7 +61328,7 @@ class CfnVPCCidrBlockProps:
60695
61328
 
60696
61329
  Example::
60697
61330
 
60698
- from aws_cdk.lambda_layer_kubectl_v32 import KubectlV32Layer
61331
+ from aws_cdk.lambda_layer_kubectl_v33 import KubectlV33Layer
60699
61332
  # vpc: ec2.Vpc
60700
61333
 
60701
61334
 
@@ -60720,11 +61353,11 @@ class CfnVPCCidrBlockProps:
60720
61353
  subnetcount = subnetcount + 1
60721
61354
 
60722
61355
  cluster = eks.Cluster(self, "hello-eks",
60723
- version=eks.KubernetesVersion.V1_32,
61356
+ version=eks.KubernetesVersion.V1_33,
60724
61357
  vpc=vpc,
60725
61358
  ip_family=eks.IpFamily.IP_V6,
60726
61359
  vpc_subnets=[ec2.SubnetSelection(subnets=vpc.public_subnets)],
60727
- kubectl_layer=KubectlV32Layer(self, "kubectl")
61360
+ kubectl_layer=KubectlV33Layer(self, "kubectl")
60728
61361
  )
60729
61362
  '''
60730
61363
  if __debug__:
@@ -82206,6 +82839,16 @@ class InterfaceVpcEndpointAwsService(
82206
82839
  def DIRECTORY_SERVICE_DATA(cls) -> "InterfaceVpcEndpointAwsService":
82207
82840
  return typing.cast("InterfaceVpcEndpointAwsService", jsii.sget(cls, "DIRECTORY_SERVICE_DATA"))
82208
82841
 
82842
+ @jsii.python.classproperty
82843
+ @jsii.member(jsii_name="DSQL_MANAGEMENT")
82844
+ def DSQL_MANAGEMENT(cls) -> "InterfaceVpcEndpointAwsService":
82845
+ '''The management endpoint for DSQL.
82846
+
82847
+ For the Connection endpoint, use ``new InterfaceVpcEndpointService(cfnCluster.attrVpcEndpointServiceName)``.
82848
+ See https://docs.aws.amazon.com/aurora-dsql/latest/userguide/privatelink-managing-clusters.html#endpoint-types-dsql for details
82849
+ '''
82850
+ return typing.cast("InterfaceVpcEndpointAwsService", jsii.sget(cls, "DSQL_MANAGEMENT"))
82851
+
82209
82852
  @jsii.python.classproperty
82210
82853
  @jsii.member(jsii_name="DYNAMODB")
82211
82854
  def DYNAMODB(cls) -> "InterfaceVpcEndpointAwsService":
@@ -83352,6 +83995,16 @@ class InterfaceVpcEndpointAwsService(
83352
83995
  '''
83353
83996
  return typing.cast("InterfaceVpcEndpointAwsService", jsii.sget(cls, "SES"))
83354
83997
 
83998
+ @jsii.python.classproperty
83999
+ @jsii.member(jsii_name="SHIELD")
84000
+ def SHIELD(cls) -> "InterfaceVpcEndpointAwsService":
84001
+ return typing.cast("InterfaceVpcEndpointAwsService", jsii.sget(cls, "SHIELD"))
84002
+
84003
+ @jsii.python.classproperty
84004
+ @jsii.member(jsii_name="SHIELD_FIPS")
84005
+ def SHIELD_FIPS(cls) -> "InterfaceVpcEndpointAwsService":
84006
+ return typing.cast("InterfaceVpcEndpointAwsService", jsii.sget(cls, "SHIELD_FIPS"))
84007
+
83355
84008
  @jsii.python.classproperty
83356
84009
  @jsii.member(jsii_name="SIMSPACE_WEAVER")
83357
84010
  def SIMSPACE_WEAVER(cls) -> "InterfaceVpcEndpointAwsService":
@@ -83372,6 +84025,11 @@ class InterfaceVpcEndpointAwsService(
83372
84025
  def SQS(cls) -> "InterfaceVpcEndpointAwsService":
83373
84026
  return typing.cast("InterfaceVpcEndpointAwsService", jsii.sget(cls, "SQS"))
83374
84027
 
84028
+ @jsii.python.classproperty
84029
+ @jsii.member(jsii_name="SQS_FIPS")
84030
+ def SQS_FIPS(cls) -> "InterfaceVpcEndpointAwsService":
84031
+ return typing.cast("InterfaceVpcEndpointAwsService", jsii.sget(cls, "SQS_FIPS"))
84032
+
83375
84033
  @jsii.python.classproperty
83376
84034
  @jsii.member(jsii_name="SSM")
83377
84035
  def SSM(cls) -> "InterfaceVpcEndpointAwsService":
@@ -83422,6 +84080,11 @@ class InterfaceVpcEndpointAwsService(
83422
84080
  def STS(cls) -> "InterfaceVpcEndpointAwsService":
83423
84081
  return typing.cast("InterfaceVpcEndpointAwsService", jsii.sget(cls, "STS"))
83424
84082
 
84083
+ @jsii.python.classproperty
84084
+ @jsii.member(jsii_name="STS_FIPS")
84085
+ def STS_FIPS(cls) -> "InterfaceVpcEndpointAwsService":
84086
+ return typing.cast("InterfaceVpcEndpointAwsService", jsii.sget(cls, "STS_FIPS"))
84087
+
83425
84088
  @jsii.python.classproperty
83426
84089
  @jsii.member(jsii_name="SUPPLY_CHAIN")
83427
84090
  def SUPPLY_CHAIN(cls) -> "InterfaceVpcEndpointAwsService":
@@ -84889,7 +85552,7 @@ class LaunchTemplate(
84889
85552
  :param role: An IAM role to associate with the instance profile that is used by instances. The role must be assumable by the service principal ``ec2.amazonaws.com``. Note: You can provide an instanceProfile or a role, but not both. Default: - No new role is created.
84890
85553
  :param security_group: Security group to assign to instances created with the launch template. Default: No security group is assigned.
84891
85554
  :param spot_options: If this property is defined, then the Launch Template's InstanceMarketOptions will be set to use Spot instances, and the options for the Spot instances will be as defined. Default: - Instance launched with this template will not be spot instances.
84892
- :param user_data: The AMI that will be used by instances. Default: - This Launch Template creates a UserData based on the type of provided machineImage; no UserData is created if a machineImage is not provided
85555
+ :param user_data: The user data to make available to the instance. Default: - This Launch Template creates a UserData based on the type of provided machineImage; no UserData is created if a machineImage is not provided
84893
85556
  :param version_description: A description for the first version of the launch template. The version description must be maximum 255 characters long. Default: - No description
84894
85557
  '''
84895
85558
  if __debug__:
@@ -85301,7 +85964,7 @@ class LaunchTemplateProps:
85301
85964
  :param role: An IAM role to associate with the instance profile that is used by instances. The role must be assumable by the service principal ``ec2.amazonaws.com``. Note: You can provide an instanceProfile or a role, but not both. Default: - No new role is created.
85302
85965
  :param security_group: Security group to assign to instances created with the launch template. Default: No security group is assigned.
85303
85966
  :param spot_options: If this property is defined, then the Launch Template's InstanceMarketOptions will be set to use Spot instances, and the options for the Spot instances will be as defined. Default: - Instance launched with this template will not be spot instances.
85304
- :param user_data: The AMI that will be used by instances. Default: - This Launch Template creates a UserData based on the type of provided machineImage; no UserData is created if a machineImage is not provided
85967
+ :param user_data: The user data to make available to the instance. Default: - This Launch Template creates a UserData based on the type of provided machineImage; no UserData is created if a machineImage is not provided
85305
85968
  :param version_description: A description for the first version of the launch template. The version description must be maximum 255 characters long. Default: - No description
85306
85969
 
85307
85970
  :exampleMetadata: infused
@@ -85694,7 +86357,7 @@ class LaunchTemplateProps:
85694
86357
 
85695
86358
  @builtins.property
85696
86359
  def user_data(self) -> typing.Optional["UserData"]:
85697
- '''The AMI that will be used by instances.
86360
+ '''The user data to make available to the instance.
85698
86361
 
85699
86362
  :default:
85700
86363
 
@@ -86512,6 +87175,8 @@ class LookupMachineImage(
86512
87175
  will be used on future runs. To refresh the AMI lookup, you will have to
86513
87176
  evict the value from the cache using the ``cdk context`` command. See
86514
87177
  https://docs.aws.amazon.com/cdk/latest/guide/context.html for more information.
87178
+ If ``props.additionalCacheKey`` is set, the context key uses that value as a discriminator
87179
+ rather than the cached value being global across all lookups.
86515
87180
 
86516
87181
  :exampleMetadata: fixture=_generated
86517
87182
 
@@ -86527,6 +87192,7 @@ class LookupMachineImage(
86527
87192
  name="name",
86528
87193
 
86529
87194
  # the properties below are optional
87195
+ additional_cache_key="additionalCacheKey",
86530
87196
  filters={
86531
87197
  "filters_key": ["filters"]
86532
87198
  },
@@ -86540,6 +87206,7 @@ class LookupMachineImage(
86540
87206
  self,
86541
87207
  *,
86542
87208
  name: builtins.str,
87209
+ additional_cache_key: typing.Optional[builtins.str] = None,
86543
87210
  filters: typing.Optional[typing.Mapping[builtins.str, typing.Sequence[builtins.str]]] = None,
86544
87211
  owners: typing.Optional[typing.Sequence[builtins.str]] = None,
86545
87212
  user_data: typing.Optional["UserData"] = None,
@@ -86547,6 +87214,7 @@ class LookupMachineImage(
86547
87214
  ) -> None:
86548
87215
  '''
86549
87216
  :param name: Name of the image (may contain wildcards).
87217
+ :param additional_cache_key: Adds an additional discriminator to the ``cdk.context.json`` cache key. Default: - no additional cache key
86550
87218
  :param filters: Additional filters on the AMI. Default: - No additional filters
86551
87219
  :param owners: Owner account IDs or aliases. Default: - All owners
86552
87220
  :param user_data: Custom userdata for this image. Default: - Empty user data appropriate for the platform type
@@ -86554,6 +87222,7 @@ class LookupMachineImage(
86554
87222
  '''
86555
87223
  props = LookupMachineImageProps(
86556
87224
  name=name,
87225
+ additional_cache_key=additional_cache_key,
86557
87226
  filters=filters,
86558
87227
  owners=owners,
86559
87228
  user_data=user_data,
@@ -86564,7 +87233,7 @@ class LookupMachineImage(
86564
87233
 
86565
87234
  @jsii.member(jsii_name="getImage")
86566
87235
  def get_image(self, scope: _constructs_77d1e7e8.Construct) -> "MachineImageConfig":
86567
- '''Return the image to use in the given context.
87236
+ '''Return the correct image.
86568
87237
 
86569
87238
  :param scope: -
86570
87239
  '''
@@ -86579,6 +87248,7 @@ class LookupMachineImage(
86579
87248
  jsii_struct_bases=[],
86580
87249
  name_mapping={
86581
87250
  "name": "name",
87251
+ "additional_cache_key": "additionalCacheKey",
86582
87252
  "filters": "filters",
86583
87253
  "owners": "owners",
86584
87254
  "user_data": "userData",
@@ -86590,6 +87260,7 @@ class LookupMachineImageProps:
86590
87260
  self,
86591
87261
  *,
86592
87262
  name: builtins.str,
87263
+ additional_cache_key: typing.Optional[builtins.str] = None,
86593
87264
  filters: typing.Optional[typing.Mapping[builtins.str, typing.Sequence[builtins.str]]] = None,
86594
87265
  owners: typing.Optional[typing.Sequence[builtins.str]] = None,
86595
87266
  user_data: typing.Optional["UserData"] = None,
@@ -86598,6 +87269,7 @@ class LookupMachineImageProps:
86598
87269
  '''Properties for looking up an image.
86599
87270
 
86600
87271
  :param name: Name of the image (may contain wildcards).
87272
+ :param additional_cache_key: Adds an additional discriminator to the ``cdk.context.json`` cache key. Default: - no additional cache key
86601
87273
  :param filters: Additional filters on the AMI. Default: - No additional filters
86602
87274
  :param owners: Owner account IDs or aliases. Default: - All owners
86603
87275
  :param user_data: Custom userdata for this image. Default: - Empty user data appropriate for the platform type
@@ -86648,6 +87320,7 @@ class LookupMachineImageProps:
86648
87320
  if __debug__:
86649
87321
  type_hints = typing.get_type_hints(_typecheckingstub__9c44b2bd75c4714250889165d6fd2d06ab6a906b90c817320a7c5f526dcbfc2f)
86650
87322
  check_type(argname="argument name", value=name, expected_type=type_hints["name"])
87323
+ check_type(argname="argument additional_cache_key", value=additional_cache_key, expected_type=type_hints["additional_cache_key"])
86651
87324
  check_type(argname="argument filters", value=filters, expected_type=type_hints["filters"])
86652
87325
  check_type(argname="argument owners", value=owners, expected_type=type_hints["owners"])
86653
87326
  check_type(argname="argument user_data", value=user_data, expected_type=type_hints["user_data"])
@@ -86655,6 +87328,8 @@ class LookupMachineImageProps:
86655
87328
  self._values: typing.Dict[builtins.str, typing.Any] = {
86656
87329
  "name": name,
86657
87330
  }
87331
+ if additional_cache_key is not None:
87332
+ self._values["additional_cache_key"] = additional_cache_key
86658
87333
  if filters is not None:
86659
87334
  self._values["filters"] = filters
86660
87335
  if owners is not None:
@@ -86671,6 +87346,15 @@ class LookupMachineImageProps:
86671
87346
  assert result is not None, "Required property 'name' is missing"
86672
87347
  return typing.cast(builtins.str, result)
86673
87348
 
87349
+ @builtins.property
87350
+ def additional_cache_key(self) -> typing.Optional[builtins.str]:
87351
+ '''Adds an additional discriminator to the ``cdk.context.json`` cache key.
87352
+
87353
+ :default: - no additional cache key
87354
+ '''
87355
+ result = self._values.get("additional_cache_key")
87356
+ return typing.cast(typing.Optional[builtins.str], result)
87357
+
86674
87358
  @builtins.property
86675
87359
  def filters(
86676
87360
  self,
@@ -86754,6 +87438,7 @@ class MachineImage(
86754
87438
  cls,
86755
87439
  parameter_name: builtins.str,
86756
87440
  *,
87441
+ additional_cache_key: typing.Optional[builtins.str] = None,
86757
87442
  cached_in_context: typing.Optional[builtins.bool] = None,
86758
87443
  os: typing.Optional["OperatingSystemType"] = None,
86759
87444
  parameter_version: typing.Optional[builtins.str] = None,
@@ -86770,6 +87455,7 @@ class MachineImage(
86770
87455
  to the newest AMI ID.
86771
87456
 
86772
87457
  :param parameter_name: -
87458
+ :param additional_cache_key: Adds an additional discriminator to the ``cdk.context.json`` cache key. Default: - no additional cache key
86773
87459
  :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
86774
87460
  :param os: Operating system. Default: OperatingSystemType.LINUX
86775
87461
  :param parameter_version: The version of the SSM parameter. Default: no version specified.
@@ -86779,6 +87465,7 @@ class MachineImage(
86779
87465
  type_hints = typing.get_type_hints(_typecheckingstub__677afd5ea9b4639913a489ab67346107c0d290e015be12483e980d3a19e33a6e)
86780
87466
  check_type(argname="argument parameter_name", value=parameter_name, expected_type=type_hints["parameter_name"])
86781
87467
  options = SsmParameterImageOptions(
87468
+ additional_cache_key=additional_cache_key,
86782
87469
  cached_in_context=cached_in_context,
86783
87470
  os=os,
86784
87471
  parameter_version=parameter_version,
@@ -86832,6 +87519,7 @@ class MachineImage(
86832
87519
  def latest_amazon_linux(
86833
87520
  cls,
86834
87521
  *,
87522
+ additional_cache_key: typing.Optional[builtins.str] = None,
86835
87523
  cached_in_context: typing.Optional[builtins.bool] = None,
86836
87524
  cpu_type: typing.Optional[AmazonLinuxCpuType] = None,
86837
87525
  edition: typing.Optional[AmazonLinuxEdition] = None,
@@ -86860,6 +87548,7 @@ class MachineImage(
86860
87548
  generation=ec2.AmazonLinuxGeneration.AMAZON_LINUX_2
86861
87549
  )
86862
87550
 
87551
+ :param additional_cache_key: Adds an additional discriminator to the ``cdk.context.json`` cache key. Default: - no additional cache key
86863
87552
  :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
86864
87553
  :param cpu_type: CPU Type. Default: X86_64
86865
87554
  :param edition: What edition of Amazon Linux to use. Default: Standard
@@ -86874,6 +87563,7 @@ class MachineImage(
86874
87563
  :stability: deprecated
86875
87564
  '''
86876
87565
  props = AmazonLinuxImageProps(
87566
+ additional_cache_key=additional_cache_key,
86877
87567
  cached_in_context=cached_in_context,
86878
87568
  cpu_type=cpu_type,
86879
87569
  edition=edition,
@@ -86896,6 +87586,7 @@ class MachineImage(
86896
87586
  virtualization: typing.Optional[AmazonLinuxVirt] = None,
86897
87587
  cpu_type: typing.Optional[AmazonLinuxCpuType] = None,
86898
87588
  edition: typing.Optional[AmazonLinuxEdition] = None,
87589
+ additional_cache_key: typing.Optional[builtins.str] = None,
86899
87590
  cached_in_context: typing.Optional[builtins.bool] = None,
86900
87591
  user_data: typing.Optional["UserData"] = None,
86901
87592
  ) -> IMachineImage:
@@ -86911,6 +87602,7 @@ class MachineImage(
86911
87602
  :param virtualization: Virtualization type. Default: HVM
86912
87603
  :param cpu_type: CPU Type. Default: AmazonLinuxCpuType.X86_64
86913
87604
  :param edition: What edition of Amazon Linux to use. Default: AmazonLinuxEdition.Standard
87605
+ :param additional_cache_key: Adds an additional discriminator to the ``cdk.context.json`` cache key. Default: - no additional cache key
86914
87606
  :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
86915
87607
  :param user_data: Initial user data. Default: - Empty UserData for Linux machines
86916
87608
  '''
@@ -86920,6 +87612,7 @@ class MachineImage(
86920
87612
  virtualization=virtualization,
86921
87613
  cpu_type=cpu_type,
86922
87614
  edition=edition,
87615
+ additional_cache_key=additional_cache_key,
86923
87616
  cached_in_context=cached_in_context,
86924
87617
  user_data=user_data,
86925
87618
  )
@@ -86934,6 +87627,7 @@ class MachineImage(
86934
87627
  kernel: typing.Optional[AmazonLinux2022Kernel] = None,
86935
87628
  cpu_type: typing.Optional[AmazonLinuxCpuType] = None,
86936
87629
  edition: typing.Optional[AmazonLinuxEdition] = None,
87630
+ additional_cache_key: typing.Optional[builtins.str] = None,
86937
87631
  cached_in_context: typing.Optional[builtins.bool] = None,
86938
87632
  user_data: typing.Optional["UserData"] = None,
86939
87633
  ) -> IMachineImage:
@@ -86947,6 +87641,7 @@ class MachineImage(
86947
87641
  :param kernel: What kernel version of Amazon Linux to use. Default: AmazonLinux2022Kernel.DEFAULT
86948
87642
  :param cpu_type: CPU Type. Default: AmazonLinuxCpuType.X86_64
86949
87643
  :param edition: What edition of Amazon Linux to use. Default: AmazonLinuxEdition.Standard
87644
+ :param additional_cache_key: Adds an additional discriminator to the ``cdk.context.json`` cache key. Default: - no additional cache key
86950
87645
  :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
86951
87646
  :param user_data: Initial user data. Default: - Empty UserData for Linux machines
86952
87647
 
@@ -86958,6 +87653,7 @@ class MachineImage(
86958
87653
  kernel=kernel,
86959
87654
  cpu_type=cpu_type,
86960
87655
  edition=edition,
87656
+ additional_cache_key=additional_cache_key,
86961
87657
  cached_in_context=cached_in_context,
86962
87658
  user_data=user_data,
86963
87659
  )
@@ -86972,6 +87668,7 @@ class MachineImage(
86972
87668
  kernel: typing.Optional[AmazonLinux2023Kernel] = None,
86973
87669
  cpu_type: typing.Optional[AmazonLinuxCpuType] = None,
86974
87670
  edition: typing.Optional[AmazonLinuxEdition] = None,
87671
+ additional_cache_key: typing.Optional[builtins.str] = None,
86975
87672
  cached_in_context: typing.Optional[builtins.bool] = None,
86976
87673
  user_data: typing.Optional["UserData"] = None,
86977
87674
  ) -> IMachineImage:
@@ -86985,6 +87682,7 @@ class MachineImage(
86985
87682
  :param kernel: What kernel version of Amazon Linux to use. Default: AmazonLinux2023Kernel.DEFAULT
86986
87683
  :param cpu_type: CPU Type. Default: AmazonLinuxCpuType.X86_64
86987
87684
  :param edition: What edition of Amazon Linux to use. Default: AmazonLinuxEdition.Standard
87685
+ :param additional_cache_key: Adds an additional discriminator to the ``cdk.context.json`` cache key. Default: - no additional cache key
86988
87686
  :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
86989
87687
  :param user_data: Initial user data. Default: - Empty UserData for Linux machines
86990
87688
  '''
@@ -86992,6 +87690,7 @@ class MachineImage(
86992
87690
  kernel=kernel,
86993
87691
  cpu_type=cpu_type,
86994
87692
  edition=edition,
87693
+ additional_cache_key=additional_cache_key,
86995
87694
  cached_in_context=cached_in_context,
86996
87695
  user_data=user_data,
86997
87696
  )
@@ -87029,6 +87728,7 @@ class MachineImage(
87029
87728
  cls,
87030
87729
  *,
87031
87730
  name: builtins.str,
87731
+ additional_cache_key: typing.Optional[builtins.str] = None,
87032
87732
  filters: typing.Optional[typing.Mapping[builtins.str, typing.Sequence[builtins.str]]] = None,
87033
87733
  owners: typing.Optional[typing.Sequence[builtins.str]] = None,
87034
87734
  user_data: typing.Optional["UserData"] = None,
@@ -87048,6 +87748,7 @@ class MachineImage(
87048
87748
  This function can not be used in environment-agnostic stacks.
87049
87749
 
87050
87750
  :param name: Name of the image (may contain wildcards).
87751
+ :param additional_cache_key: Adds an additional discriminator to the ``cdk.context.json`` cache key. Default: - no additional cache key
87051
87752
  :param filters: Additional filters on the AMI. Default: - No additional filters
87052
87753
  :param owners: Owner account IDs or aliases. Default: - All owners
87053
87754
  :param user_data: Custom userdata for this image. Default: - Empty user data appropriate for the platform type
@@ -87055,6 +87756,7 @@ class MachineImage(
87055
87756
  '''
87056
87757
  props = LookupMachineImageProps(
87057
87758
  name=name,
87759
+ additional_cache_key=additional_cache_key,
87058
87760
  filters=filters,
87059
87761
  owners=owners,
87060
87762
  user_data=user_data,
@@ -87069,6 +87771,7 @@ class MachineImage(
87069
87771
  cls,
87070
87772
  parameter_name: builtins.str,
87071
87773
  *,
87774
+ additional_cache_key: typing.Optional[builtins.str] = None,
87072
87775
  cached_in_context: typing.Optional[builtins.bool] = None,
87073
87776
  os: typing.Optional["OperatingSystemType"] = None,
87074
87777
  parameter_version: typing.Optional[builtins.str] = None,
@@ -87079,6 +87782,7 @@ class MachineImage(
87079
87782
  The AMI ID will be resolved at instance launch time.
87080
87783
 
87081
87784
  :param parameter_name: The name of SSM parameter containing the AMI ID.
87785
+ :param additional_cache_key: Adds an additional discriminator to the ``cdk.context.json`` cache key. Default: - no additional cache key
87082
87786
  :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
87083
87787
  :param os: Operating system. Default: OperatingSystemType.LINUX
87084
87788
  :param parameter_version: The version of the SSM parameter. Default: no version specified.
@@ -87090,6 +87794,7 @@ class MachineImage(
87090
87794
  type_hints = typing.get_type_hints(_typecheckingstub__5e832dd82a3ef447ebf9a639dc9d6983793ce7321287fb2370dbed898b67d02a)
87091
87795
  check_type(argname="argument parameter_name", value=parameter_name, expected_type=type_hints["parameter_name"])
87092
87796
  options = SsmParameterImageOptions(
87797
+ additional_cache_key=additional_cache_key,
87093
87798
  cached_in_context=cached_in_context,
87094
87799
  os=os,
87095
87800
  parameter_version=parameter_version,
@@ -90185,6 +90890,7 @@ class ResolveSsmParameterAtLaunchImage(
90185
90890
  # user_data: ec2.UserData
90186
90891
 
90187
90892
  resolve_ssm_parameter_at_launch_image = ec2.ResolveSsmParameterAtLaunchImage("parameterName",
90893
+ additional_cache_key="additionalCacheKey",
90188
90894
  cached_in_context=False,
90189
90895
  os=ec2.OperatingSystemType.LINUX,
90190
90896
  parameter_version="parameterVersion",
@@ -90196,6 +90902,7 @@ class ResolveSsmParameterAtLaunchImage(
90196
90902
  self,
90197
90903
  parameter_name: builtins.str,
90198
90904
  *,
90905
+ additional_cache_key: typing.Optional[builtins.str] = None,
90199
90906
  cached_in_context: typing.Optional[builtins.bool] = None,
90200
90907
  os: typing.Optional[OperatingSystemType] = None,
90201
90908
  parameter_version: typing.Optional[builtins.str] = None,
@@ -90203,6 +90910,7 @@ class ResolveSsmParameterAtLaunchImage(
90203
90910
  ) -> None:
90204
90911
  '''
90205
90912
  :param parameter_name: -
90913
+ :param additional_cache_key: Adds an additional discriminator to the ``cdk.context.json`` cache key. Default: - no additional cache key
90206
90914
  :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
90207
90915
  :param os: Operating system. Default: OperatingSystemType.LINUX
90208
90916
  :param parameter_version: The version of the SSM parameter. Default: no version specified.
@@ -90212,6 +90920,7 @@ class ResolveSsmParameterAtLaunchImage(
90212
90920
  type_hints = typing.get_type_hints(_typecheckingstub__ae85933c688e38a0dd9faa69a685488b55c8c19f918eabcacbd33c964c7bb468)
90213
90921
  check_type(argname="argument parameter_name", value=parameter_name, expected_type=type_hints["parameter_name"])
90214
90922
  props = SsmParameterImageOptions(
90923
+ additional_cache_key=additional_cache_key,
90215
90924
  cached_in_context=cached_in_context,
90216
90925
  os=os,
90217
90926
  parameter_version=parameter_version,
@@ -91411,6 +92120,7 @@ class SpotRequestType(enum.Enum):
91411
92120
  jsii_type="aws-cdk-lib.aws_ec2.SsmParameterImageOptions",
91412
92121
  jsii_struct_bases=[],
91413
92122
  name_mapping={
92123
+ "additional_cache_key": "additionalCacheKey",
91414
92124
  "cached_in_context": "cachedInContext",
91415
92125
  "os": "os",
91416
92126
  "parameter_version": "parameterVersion",
@@ -91421,6 +92131,7 @@ class SsmParameterImageOptions:
91421
92131
  def __init__(
91422
92132
  self,
91423
92133
  *,
92134
+ additional_cache_key: typing.Optional[builtins.str] = None,
91424
92135
  cached_in_context: typing.Optional[builtins.bool] = None,
91425
92136
  os: typing.Optional[OperatingSystemType] = None,
91426
92137
  parameter_version: typing.Optional[builtins.str] = None,
@@ -91428,6 +92139,7 @@ class SsmParameterImageOptions:
91428
92139
  ) -> None:
91429
92140
  '''Properties for GenericSsmParameterImage.
91430
92141
 
92142
+ :param additional_cache_key: Adds an additional discriminator to the ``cdk.context.json`` cache key. Default: - no additional cache key
91431
92143
  :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
91432
92144
  :param os: Operating system. Default: OperatingSystemType.LINUX
91433
92145
  :param parameter_version: The version of the SSM parameter. Default: no version specified.
@@ -91477,11 +92189,14 @@ class SsmParameterImageOptions:
91477
92189
  '''
91478
92190
  if __debug__:
91479
92191
  type_hints = typing.get_type_hints(_typecheckingstub__a03f16dc6f5eb3eb6f69587f84001af20bc314a1c46a530aa5fb21da814be237)
92192
+ check_type(argname="argument additional_cache_key", value=additional_cache_key, expected_type=type_hints["additional_cache_key"])
91480
92193
  check_type(argname="argument cached_in_context", value=cached_in_context, expected_type=type_hints["cached_in_context"])
91481
92194
  check_type(argname="argument os", value=os, expected_type=type_hints["os"])
91482
92195
  check_type(argname="argument parameter_version", value=parameter_version, expected_type=type_hints["parameter_version"])
91483
92196
  check_type(argname="argument user_data", value=user_data, expected_type=type_hints["user_data"])
91484
92197
  self._values: typing.Dict[builtins.str, typing.Any] = {}
92198
+ if additional_cache_key is not None:
92199
+ self._values["additional_cache_key"] = additional_cache_key
91485
92200
  if cached_in_context is not None:
91486
92201
  self._values["cached_in_context"] = cached_in_context
91487
92202
  if os is not None:
@@ -91491,6 +92206,15 @@ class SsmParameterImageOptions:
91491
92206
  if user_data is not None:
91492
92207
  self._values["user_data"] = user_data
91493
92208
 
92209
+ @builtins.property
92210
+ def additional_cache_key(self) -> typing.Optional[builtins.str]:
92211
+ '''Adds an additional discriminator to the ``cdk.context.json`` cache key.
92212
+
92213
+ :default: - no additional cache key
92214
+ '''
92215
+ result = self._values.get("additional_cache_key")
92216
+ return typing.cast(typing.Optional[builtins.str], result)
92217
+
91494
92218
  @builtins.property
91495
92219
  def cached_in_context(self) -> typing.Optional[builtins.bool]:
91496
92220
  '''Whether the AMI ID is cached to be stable between deployments.
@@ -93385,17 +94109,12 @@ class Volume(
93385
94109
 
93386
94110
  Example::
93387
94111
 
93388
- # instance: ec2.Instance
93389
- # role: iam.Role
93390
-
93391
-
93392
- volume = ec2.Volume(self, "Volume",
93393
- availability_zone="us-west-2a",
93394
- size=Size.gibibytes(500),
93395
- encrypted=True
94112
+ ec2.Volume(self, "Volume",
94113
+ availability_zone="us-east-1a",
94114
+ size=Size.gibibytes(125),
94115
+ volume_type=ec2.EbsDeviceVolumeType.GP3,
94116
+ throughput=125
93396
94117
  )
93397
-
93398
- volume.grant_attach_volume(role, [instance])
93399
94118
  '''
93400
94119
 
93401
94120
  def __init__(
@@ -93413,6 +94132,7 @@ class Volume(
93413
94132
  size: typing.Optional[_Size_7b441c34] = None,
93414
94133
  snapshot_id: typing.Optional[builtins.str] = None,
93415
94134
  throughput: typing.Optional[jsii.Number] = None,
94135
+ volume_initialization_rate: typing.Optional[_Size_7b441c34] = None,
93416
94136
  volume_name: typing.Optional[builtins.str] = None,
93417
94137
  volume_type: typing.Optional[EbsDeviceVolumeType] = None,
93418
94138
  ) -> None:
@@ -93423,13 +94143,14 @@ class Volume(
93423
94143
  :param auto_enable_io: Indicates whether the volume is auto-enabled for I/O operations. By default, Amazon EBS disables I/O to the volume from attached EC2 instances when it determines that a volume's data is potentially inconsistent. If the consistency of the volume is not a concern, and you prefer that the volume be made available immediately if it's impaired, you can configure the volume to automatically enable I/O. Default: false
93424
94144
  :param enable_multi_attach: Indicates whether Amazon EBS Multi-Attach is enabled. See `Considerations and limitations <https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-volumes-multi.html#considerations>`_ for the constraints of multi-attach. Default: false
93425
94145
  :param encrypted: Specifies whether the volume should be encrypted. The effect of setting the encryption state to true depends on the volume origin (new or from a snapshot), starting encryption state, ownership, and whether encryption by default is enabled. For more information, see `Encryption by Default <https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSEncryption.html#encryption-by-default>`_ in the Amazon Elastic Compute Cloud User Guide. Encrypted Amazon EBS volumes must be attached to instances that support Amazon EBS encryption. For more information, see `Supported Instance Types <https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSEncryption.html#EBSEncryption_supported_instances>`_. Default: false
93426
- :param encryption_key: The customer-managed encryption key that is used to encrypt the Volume. The encrypted property must be true if this is provided. Note: If using an ``aws-kms.IKey`` created from a ``aws-kms.Key.fromKeyArn()`` here, then the KMS key **must** have the following in its Key policy; otherwise, the Volume will fail to create:: { "Effect": "Allow", "Principal": { "AWS": "<arn for your account-user> ex: arn:aws:iam::00000000000:root" }, "Resource": "*", "Action": [ "kms:DescribeKey", "kms:GenerateDataKeyWithoutPlainText", ], "Condition": { "StringEquals": { "kms:ViaService": "ec2.<Region>.amazonaws.com", (eg: ec2.us-east-1.amazonaws.com) "kms:CallerAccount": "0000000000" (your account ID) } } } Default: The default KMS key for the account, region, and EC2 service is used.
94146
+ :param encryption_key: The customer-managed encryption key that is used to encrypt the Volume. The encrypted property must be true if this is provided. Note: If using an ``aws-kms.IKey`` created from a ``aws-kms.Key.fromKeyArn()`` here, then the KMS key **must** have the following in its Key policy; otherwise, the Volume will fail to create:: { "Effect": "Allow", "Principal": { "AWS": "<arn for your account-user> ex: arn:aws:iam::00000000000:root" }, "Resource": "*", "Action": [ "kms:DescribeKey", "kms:GenerateDataKeyWithoutPlainText", ], "Condition": { "StringEquals": { "kms:ViaService": "ec2.<Region>.amazonaws.com", (eg: ec2.us-east-1.amazonaws.com) "kms:CallerAccount": "0000000000" (your account ID) } } } Default: - The default KMS key for the account, region, and EC2 service is used.
93427
94147
  :param iops: The number of I/O operations per second (IOPS) to provision for the volume. The maximum ratio is 50 IOPS/GiB for PROVISIONED_IOPS_SSD, and 500 IOPS/GiB for both PROVISIONED_IOPS_SSD_IO2 and GENERAL_PURPOSE_SSD_GP3. See https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-volume.html for more information. This parameter is valid only for PROVISIONED_IOPS_SSD, PROVISIONED_IOPS_SSD_IO2 and GENERAL_PURPOSE_SSD_GP3 volumes. Default: None -- Required for io1 and io2 volumes. The default for gp3 volumes is 3,000 IOPS if omitted.
93428
94148
  :param removal_policy: Policy to apply when the volume is removed from the stack. Default: RemovalPolicy.RETAIN
93429
- :param size: The size of the volume, in GiBs. You must specify either a snapshot ID or a volume size. See https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-volume.html for details on the allowable size for each type of volume. Default: If you're creating the volume from a snapshot and don't specify a volume size, the default is the snapshot size.
93430
- :param snapshot_id: The snapshot from which to create the volume. You must specify either a snapshot ID or a volume size. Default: The EBS volume is not created from a snapshot.
94149
+ :param size: The size of the volume, in GiBs. You must specify either a snapshot ID or a volume size. See https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-volume.html for details on the allowable size for each type of volume. Default: - If you're creating the volume from a snapshot and don't specify a volume size, the default is the snapshot size.
94150
+ :param snapshot_id: The snapshot from which to create the volume. You must specify either a snapshot ID or a volume size. Default: - The EBS volume is not created from a snapshot.
93431
94151
  :param throughput: The throughput that the volume supports, in MiB/s Takes a minimum of 125 and maximum of 1000. Default: - 125 MiB/s. Only valid on gp3 volumes.
93432
- :param volume_name: The value of the physicalName property of this resource. Default: The physical name will be allocated by CloudFormation at deployment time
94152
+ :param volume_initialization_rate: Specifies the Amazon EBS Provisioned Rate for Volume Initialization (volume initialization rate), at which to download the snapshot blocks from Amazon S3 to the volume. Valid range is between 100 and 300 MiB/s. This parameter is supported only for volumes created from snapshots. Default: undefined - The volume initialization rate is not set.
94153
+ :param volume_name: The value of the physicalName property of this resource. Default: - The physical name will be allocated by CloudFormation at deployment time
93433
94154
  :param volume_type: The type of the volume; what type of storage to use to form the EBS Volume. Default: ``EbsDeviceVolumeType.GENERAL_PURPOSE_SSD``
93434
94155
  '''
93435
94156
  if __debug__:
@@ -93447,6 +94168,7 @@ class Volume(
93447
94168
  size=size,
93448
94169
  snapshot_id=snapshot_id,
93449
94170
  throughput=throughput,
94171
+ volume_initialization_rate=volume_initialization_rate,
93450
94172
  volume_name=volume_name,
93451
94173
  volume_type=volume_type,
93452
94174
  )
@@ -93592,6 +94314,7 @@ class Volume(
93592
94314
  size: typing.Optional[_Size_7b441c34] = None,
93593
94315
  snapshot_id: typing.Optional[builtins.str] = None,
93594
94316
  throughput: typing.Optional[jsii.Number] = None,
94317
+ volume_initialization_rate: typing.Optional[_Size_7b441c34] = None,
93595
94318
  volume_name: typing.Optional[builtins.str] = None,
93596
94319
  volume_type: typing.Optional[EbsDeviceVolumeType] = None,
93597
94320
  ) -> None:
@@ -93600,13 +94323,14 @@ class Volume(
93600
94323
  :param auto_enable_io: Indicates whether the volume is auto-enabled for I/O operations. By default, Amazon EBS disables I/O to the volume from attached EC2 instances when it determines that a volume's data is potentially inconsistent. If the consistency of the volume is not a concern, and you prefer that the volume be made available immediately if it's impaired, you can configure the volume to automatically enable I/O. Default: false
93601
94324
  :param enable_multi_attach: Indicates whether Amazon EBS Multi-Attach is enabled. See `Considerations and limitations <https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-volumes-multi.html#considerations>`_ for the constraints of multi-attach. Default: false
93602
94325
  :param encrypted: Specifies whether the volume should be encrypted. The effect of setting the encryption state to true depends on the volume origin (new or from a snapshot), starting encryption state, ownership, and whether encryption by default is enabled. For more information, see `Encryption by Default <https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSEncryption.html#encryption-by-default>`_ in the Amazon Elastic Compute Cloud User Guide. Encrypted Amazon EBS volumes must be attached to instances that support Amazon EBS encryption. For more information, see `Supported Instance Types <https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSEncryption.html#EBSEncryption_supported_instances>`_. Default: false
93603
- :param encryption_key: The customer-managed encryption key that is used to encrypt the Volume. The encrypted property must be true if this is provided. Note: If using an ``aws-kms.IKey`` created from a ``aws-kms.Key.fromKeyArn()`` here, then the KMS key **must** have the following in its Key policy; otherwise, the Volume will fail to create:: { "Effect": "Allow", "Principal": { "AWS": "<arn for your account-user> ex: arn:aws:iam::00000000000:root" }, "Resource": "*", "Action": [ "kms:DescribeKey", "kms:GenerateDataKeyWithoutPlainText", ], "Condition": { "StringEquals": { "kms:ViaService": "ec2.<Region>.amazonaws.com", (eg: ec2.us-east-1.amazonaws.com) "kms:CallerAccount": "0000000000" (your account ID) } } } Default: The default KMS key for the account, region, and EC2 service is used.
94326
+ :param encryption_key: The customer-managed encryption key that is used to encrypt the Volume. The encrypted property must be true if this is provided. Note: If using an ``aws-kms.IKey`` created from a ``aws-kms.Key.fromKeyArn()`` here, then the KMS key **must** have the following in its Key policy; otherwise, the Volume will fail to create:: { "Effect": "Allow", "Principal": { "AWS": "<arn for your account-user> ex: arn:aws:iam::00000000000:root" }, "Resource": "*", "Action": [ "kms:DescribeKey", "kms:GenerateDataKeyWithoutPlainText", ], "Condition": { "StringEquals": { "kms:ViaService": "ec2.<Region>.amazonaws.com", (eg: ec2.us-east-1.amazonaws.com) "kms:CallerAccount": "0000000000" (your account ID) } } } Default: - The default KMS key for the account, region, and EC2 service is used.
93604
94327
  :param iops: The number of I/O operations per second (IOPS) to provision for the volume. The maximum ratio is 50 IOPS/GiB for PROVISIONED_IOPS_SSD, and 500 IOPS/GiB for both PROVISIONED_IOPS_SSD_IO2 and GENERAL_PURPOSE_SSD_GP3. See https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-volume.html for more information. This parameter is valid only for PROVISIONED_IOPS_SSD, PROVISIONED_IOPS_SSD_IO2 and GENERAL_PURPOSE_SSD_GP3 volumes. Default: None -- Required for io1 and io2 volumes. The default for gp3 volumes is 3,000 IOPS if omitted.
93605
94328
  :param removal_policy: Policy to apply when the volume is removed from the stack. Default: RemovalPolicy.RETAIN
93606
- :param size: The size of the volume, in GiBs. You must specify either a snapshot ID or a volume size. See https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-volume.html for details on the allowable size for each type of volume. Default: If you're creating the volume from a snapshot and don't specify a volume size, the default is the snapshot size.
93607
- :param snapshot_id: The snapshot from which to create the volume. You must specify either a snapshot ID or a volume size. Default: The EBS volume is not created from a snapshot.
94329
+ :param size: The size of the volume, in GiBs. You must specify either a snapshot ID or a volume size. See https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-volume.html for details on the allowable size for each type of volume. Default: - If you're creating the volume from a snapshot and don't specify a volume size, the default is the snapshot size.
94330
+ :param snapshot_id: The snapshot from which to create the volume. You must specify either a snapshot ID or a volume size. Default: - The EBS volume is not created from a snapshot.
93608
94331
  :param throughput: The throughput that the volume supports, in MiB/s Takes a minimum of 125 and maximum of 1000. Default: - 125 MiB/s. Only valid on gp3 volumes.
93609
- :param volume_name: The value of the physicalName property of this resource. Default: The physical name will be allocated by CloudFormation at deployment time
94332
+ :param volume_initialization_rate: Specifies the Amazon EBS Provisioned Rate for Volume Initialization (volume initialization rate), at which to download the snapshot blocks from Amazon S3 to the volume. Valid range is between 100 and 300 MiB/s. This parameter is supported only for volumes created from snapshots. Default: undefined - The volume initialization rate is not set.
94333
+ :param volume_name: The value of the physicalName property of this resource. Default: - The physical name will be allocated by CloudFormation at deployment time
93610
94334
  :param volume_type: The type of the volume; what type of storage to use to form the EBS Volume. Default: ``EbsDeviceVolumeType.GENERAL_PURPOSE_SSD``
93611
94335
  '''
93612
94336
  props = VolumeProps(
@@ -93620,6 +94344,7 @@ class Volume(
93620
94344
  size=size,
93621
94345
  snapshot_id=snapshot_id,
93622
94346
  throughput=throughput,
94347
+ volume_initialization_rate=volume_initialization_rate,
93623
94348
  volume_name=volume_name,
93624
94349
  volume_type=volume_type,
93625
94350
  )
@@ -93754,6 +94479,7 @@ class VolumeAttributes:
93754
94479
  "size": "size",
93755
94480
  "snapshot_id": "snapshotId",
93756
94481
  "throughput": "throughput",
94482
+ "volume_initialization_rate": "volumeInitializationRate",
93757
94483
  "volume_name": "volumeName",
93758
94484
  "volume_type": "volumeType",
93759
94485
  },
@@ -93772,6 +94498,7 @@ class VolumeProps:
93772
94498
  size: typing.Optional[_Size_7b441c34] = None,
93773
94499
  snapshot_id: typing.Optional[builtins.str] = None,
93774
94500
  throughput: typing.Optional[jsii.Number] = None,
94501
+ volume_initialization_rate: typing.Optional[_Size_7b441c34] = None,
93775
94502
  volume_name: typing.Optional[builtins.str] = None,
93776
94503
  volume_type: typing.Optional[EbsDeviceVolumeType] = None,
93777
94504
  ) -> None:
@@ -93781,30 +94508,26 @@ class VolumeProps:
93781
94508
  :param auto_enable_io: Indicates whether the volume is auto-enabled for I/O operations. By default, Amazon EBS disables I/O to the volume from attached EC2 instances when it determines that a volume's data is potentially inconsistent. If the consistency of the volume is not a concern, and you prefer that the volume be made available immediately if it's impaired, you can configure the volume to automatically enable I/O. Default: false
93782
94509
  :param enable_multi_attach: Indicates whether Amazon EBS Multi-Attach is enabled. See `Considerations and limitations <https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-volumes-multi.html#considerations>`_ for the constraints of multi-attach. Default: false
93783
94510
  :param encrypted: Specifies whether the volume should be encrypted. The effect of setting the encryption state to true depends on the volume origin (new or from a snapshot), starting encryption state, ownership, and whether encryption by default is enabled. For more information, see `Encryption by Default <https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSEncryption.html#encryption-by-default>`_ in the Amazon Elastic Compute Cloud User Guide. Encrypted Amazon EBS volumes must be attached to instances that support Amazon EBS encryption. For more information, see `Supported Instance Types <https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSEncryption.html#EBSEncryption_supported_instances>`_. Default: false
93784
- :param encryption_key: The customer-managed encryption key that is used to encrypt the Volume. The encrypted property must be true if this is provided. Note: If using an ``aws-kms.IKey`` created from a ``aws-kms.Key.fromKeyArn()`` here, then the KMS key **must** have the following in its Key policy; otherwise, the Volume will fail to create:: { "Effect": "Allow", "Principal": { "AWS": "<arn for your account-user> ex: arn:aws:iam::00000000000:root" }, "Resource": "*", "Action": [ "kms:DescribeKey", "kms:GenerateDataKeyWithoutPlainText", ], "Condition": { "StringEquals": { "kms:ViaService": "ec2.<Region>.amazonaws.com", (eg: ec2.us-east-1.amazonaws.com) "kms:CallerAccount": "0000000000" (your account ID) } } } Default: The default KMS key for the account, region, and EC2 service is used.
94511
+ :param encryption_key: The customer-managed encryption key that is used to encrypt the Volume. The encrypted property must be true if this is provided. Note: If using an ``aws-kms.IKey`` created from a ``aws-kms.Key.fromKeyArn()`` here, then the KMS key **must** have the following in its Key policy; otherwise, the Volume will fail to create:: { "Effect": "Allow", "Principal": { "AWS": "<arn for your account-user> ex: arn:aws:iam::00000000000:root" }, "Resource": "*", "Action": [ "kms:DescribeKey", "kms:GenerateDataKeyWithoutPlainText", ], "Condition": { "StringEquals": { "kms:ViaService": "ec2.<Region>.amazonaws.com", (eg: ec2.us-east-1.amazonaws.com) "kms:CallerAccount": "0000000000" (your account ID) } } } Default: - The default KMS key for the account, region, and EC2 service is used.
93785
94512
  :param iops: The number of I/O operations per second (IOPS) to provision for the volume. The maximum ratio is 50 IOPS/GiB for PROVISIONED_IOPS_SSD, and 500 IOPS/GiB for both PROVISIONED_IOPS_SSD_IO2 and GENERAL_PURPOSE_SSD_GP3. See https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-volume.html for more information. This parameter is valid only for PROVISIONED_IOPS_SSD, PROVISIONED_IOPS_SSD_IO2 and GENERAL_PURPOSE_SSD_GP3 volumes. Default: None -- Required for io1 and io2 volumes. The default for gp3 volumes is 3,000 IOPS if omitted.
93786
94513
  :param removal_policy: Policy to apply when the volume is removed from the stack. Default: RemovalPolicy.RETAIN
93787
- :param size: The size of the volume, in GiBs. You must specify either a snapshot ID or a volume size. See https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-volume.html for details on the allowable size for each type of volume. Default: If you're creating the volume from a snapshot and don't specify a volume size, the default is the snapshot size.
93788
- :param snapshot_id: The snapshot from which to create the volume. You must specify either a snapshot ID or a volume size. Default: The EBS volume is not created from a snapshot.
94514
+ :param size: The size of the volume, in GiBs. You must specify either a snapshot ID or a volume size. See https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-volume.html for details on the allowable size for each type of volume. Default: - If you're creating the volume from a snapshot and don't specify a volume size, the default is the snapshot size.
94515
+ :param snapshot_id: The snapshot from which to create the volume. You must specify either a snapshot ID or a volume size. Default: - The EBS volume is not created from a snapshot.
93789
94516
  :param throughput: The throughput that the volume supports, in MiB/s Takes a minimum of 125 and maximum of 1000. Default: - 125 MiB/s. Only valid on gp3 volumes.
93790
- :param volume_name: The value of the physicalName property of this resource. Default: The physical name will be allocated by CloudFormation at deployment time
94517
+ :param volume_initialization_rate: Specifies the Amazon EBS Provisioned Rate for Volume Initialization (volume initialization rate), at which to download the snapshot blocks from Amazon S3 to the volume. Valid range is between 100 and 300 MiB/s. This parameter is supported only for volumes created from snapshots. Default: undefined - The volume initialization rate is not set.
94518
+ :param volume_name: The value of the physicalName property of this resource. Default: - The physical name will be allocated by CloudFormation at deployment time
93791
94519
  :param volume_type: The type of the volume; what type of storage to use to form the EBS Volume. Default: ``EbsDeviceVolumeType.GENERAL_PURPOSE_SSD``
93792
94520
 
93793
94521
  :exampleMetadata: infused
93794
94522
 
93795
94523
  Example::
93796
94524
 
93797
- # instance: ec2.Instance
93798
- # role: iam.Role
93799
-
93800
-
93801
- volume = ec2.Volume(self, "Volume",
93802
- availability_zone="us-west-2a",
93803
- size=Size.gibibytes(500),
93804
- encrypted=True
94525
+ ec2.Volume(self, "Volume",
94526
+ availability_zone="us-east-1a",
94527
+ size=Size.gibibytes(125),
94528
+ volume_type=ec2.EbsDeviceVolumeType.GP3,
94529
+ throughput=125
93805
94530
  )
93806
-
93807
- volume.grant_attach_volume(role, [instance])
93808
94531
  '''
93809
94532
  if __debug__:
93810
94533
  type_hints = typing.get_type_hints(_typecheckingstub__fd11037db838f64c74264a09154568b99584932152ae7679e47051119dcaf1ed)
@@ -93818,6 +94541,7 @@ class VolumeProps:
93818
94541
  check_type(argname="argument size", value=size, expected_type=type_hints["size"])
93819
94542
  check_type(argname="argument snapshot_id", value=snapshot_id, expected_type=type_hints["snapshot_id"])
93820
94543
  check_type(argname="argument throughput", value=throughput, expected_type=type_hints["throughput"])
94544
+ check_type(argname="argument volume_initialization_rate", value=volume_initialization_rate, expected_type=type_hints["volume_initialization_rate"])
93821
94545
  check_type(argname="argument volume_name", value=volume_name, expected_type=type_hints["volume_name"])
93822
94546
  check_type(argname="argument volume_type", value=volume_type, expected_type=type_hints["volume_type"])
93823
94547
  self._values: typing.Dict[builtins.str, typing.Any] = {
@@ -93841,6 +94565,8 @@ class VolumeProps:
93841
94565
  self._values["snapshot_id"] = snapshot_id
93842
94566
  if throughput is not None:
93843
94567
  self._values["throughput"] = throughput
94568
+ if volume_initialization_rate is not None:
94569
+ self._values["volume_initialization_rate"] = volume_initialization_rate
93844
94570
  if volume_name is not None:
93845
94571
  self._values["volume_name"] = volume_name
93846
94572
  if volume_type is not None:
@@ -93922,7 +94648,7 @@ class VolumeProps:
93922
94648
  }
93923
94649
  }
93924
94650
 
93925
- :default: The default KMS key for the account, region, and EC2 service is used.
94651
+ :default: - The default KMS key for the account, region, and EC2 service is used.
93926
94652
  '''
93927
94653
  result = self._values.get("encryption_key")
93928
94654
  return typing.cast(typing.Optional[_IKey_5f11635f], result)
@@ -93960,7 +94686,7 @@ class VolumeProps:
93960
94686
  See https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-volume.html
93961
94687
  for details on the allowable size for each type of volume.
93962
94688
 
93963
- :default: If you're creating the volume from a snapshot and don't specify a volume size, the default is the snapshot size.
94689
+ :default: - If you're creating the volume from a snapshot and don't specify a volume size, the default is the snapshot size.
93964
94690
  '''
93965
94691
  result = self._values.get("size")
93966
94692
  return typing.cast(typing.Optional[_Size_7b441c34], result)
@@ -93971,7 +94697,7 @@ class VolumeProps:
93971
94697
 
93972
94698
  You must specify either a snapshot ID or a volume size.
93973
94699
 
93974
- :default: The EBS volume is not created from a snapshot.
94700
+ :default: - The EBS volume is not created from a snapshot.
93975
94701
  '''
93976
94702
  result = self._values.get("snapshot_id")
93977
94703
  return typing.cast(typing.Optional[builtins.str], result)
@@ -93987,11 +94713,26 @@ class VolumeProps:
93987
94713
  result = self._values.get("throughput")
93988
94714
  return typing.cast(typing.Optional[jsii.Number], result)
93989
94715
 
94716
+ @builtins.property
94717
+ def volume_initialization_rate(self) -> typing.Optional[_Size_7b441c34]:
94718
+ '''Specifies the Amazon EBS Provisioned Rate for Volume Initialization (volume initialization rate), at which to download the snapshot blocks from Amazon S3 to the volume.
94719
+
94720
+ Valid range is between 100 and 300 MiB/s.
94721
+
94722
+ This parameter is supported only for volumes created from snapshots.
94723
+
94724
+ :default: undefined - The volume initialization rate is not set.
94725
+
94726
+ :see: https://docs.aws.amazon.com/ebs/latest/userguide/initalize-volume.html#volume-initialization-rate
94727
+ '''
94728
+ result = self._values.get("volume_initialization_rate")
94729
+ return typing.cast(typing.Optional[_Size_7b441c34], result)
94730
+
93990
94731
  @builtins.property
93991
94732
  def volume_name(self) -> typing.Optional[builtins.str]:
93992
94733
  '''The value of the physicalName property of this resource.
93993
94734
 
93994
- :default: The physical name will be allocated by CloudFormation at deployment time
94735
+ :default: - The physical name will be allocated by CloudFormation at deployment time
93995
94736
  '''
93996
94737
  result = self._values.get("volume_name")
93997
94738
  return typing.cast(typing.Optional[builtins.str], result)
@@ -97750,6 +98491,7 @@ class WindowsVersion(enum.Enum):
97750
98491
  jsii_type="aws-cdk-lib.aws_ec2.AmazonLinux2022ImageSsmParameterProps",
97751
98492
  jsii_struct_bases=[AmazonLinuxImageSsmParameterCommonOptions],
97752
98493
  name_mapping={
98494
+ "additional_cache_key": "additionalCacheKey",
97753
98495
  "cached_in_context": "cachedInContext",
97754
98496
  "user_data": "userData",
97755
98497
  "cpu_type": "cpuType",
@@ -97761,6 +98503,7 @@ class AmazonLinux2022ImageSsmParameterProps(AmazonLinuxImageSsmParameterCommonOp
97761
98503
  def __init__(
97762
98504
  self,
97763
98505
  *,
98506
+ additional_cache_key: typing.Optional[builtins.str] = None,
97764
98507
  cached_in_context: typing.Optional[builtins.bool] = None,
97765
98508
  user_data: typing.Optional[UserData] = None,
97766
98509
  cpu_type: typing.Optional[AmazonLinuxCpuType] = None,
@@ -97769,6 +98512,7 @@ class AmazonLinux2022ImageSsmParameterProps(AmazonLinuxImageSsmParameterCommonOp
97769
98512
  ) -> None:
97770
98513
  '''Properties specific to al2022 images.
97771
98514
 
98515
+ :param additional_cache_key: Adds an additional discriminator to the ``cdk.context.json`` cache key. Default: - no additional cache key
97772
98516
  :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
97773
98517
  :param user_data: Initial user data. Default: - Empty UserData for Linux machines
97774
98518
  :param cpu_type: CPU Type. Default: AmazonLinuxCpuType.X86_64
@@ -97787,6 +98531,7 @@ class AmazonLinux2022ImageSsmParameterProps(AmazonLinuxImageSsmParameterCommonOp
97787
98531
  # user_data: ec2.UserData
97788
98532
 
97789
98533
  amazon_linux2022_image_ssm_parameter_props = ec2.AmazonLinux2022ImageSsmParameterProps(
98534
+ additional_cache_key="additionalCacheKey",
97790
98535
  cached_in_context=False,
97791
98536
  cpu_type=ec2.AmazonLinuxCpuType.ARM_64,
97792
98537
  edition=ec2.AmazonLinuxEdition.STANDARD,
@@ -97796,12 +98541,15 @@ class AmazonLinux2022ImageSsmParameterProps(AmazonLinuxImageSsmParameterCommonOp
97796
98541
  '''
97797
98542
  if __debug__:
97798
98543
  type_hints = typing.get_type_hints(_typecheckingstub__968329b6e3d88dbd1836e6234bc305a96628c570666cc423d4eeccc95dc92ab6)
98544
+ check_type(argname="argument additional_cache_key", value=additional_cache_key, expected_type=type_hints["additional_cache_key"])
97799
98545
  check_type(argname="argument cached_in_context", value=cached_in_context, expected_type=type_hints["cached_in_context"])
97800
98546
  check_type(argname="argument user_data", value=user_data, expected_type=type_hints["user_data"])
97801
98547
  check_type(argname="argument cpu_type", value=cpu_type, expected_type=type_hints["cpu_type"])
97802
98548
  check_type(argname="argument edition", value=edition, expected_type=type_hints["edition"])
97803
98549
  check_type(argname="argument kernel", value=kernel, expected_type=type_hints["kernel"])
97804
98550
  self._values: typing.Dict[builtins.str, typing.Any] = {}
98551
+ if additional_cache_key is not None:
98552
+ self._values["additional_cache_key"] = additional_cache_key
97805
98553
  if cached_in_context is not None:
97806
98554
  self._values["cached_in_context"] = cached_in_context
97807
98555
  if user_data is not None:
@@ -97813,6 +98561,15 @@ class AmazonLinux2022ImageSsmParameterProps(AmazonLinuxImageSsmParameterCommonOp
97813
98561
  if kernel is not None:
97814
98562
  self._values["kernel"] = kernel
97815
98563
 
98564
+ @builtins.property
98565
+ def additional_cache_key(self) -> typing.Optional[builtins.str]:
98566
+ '''Adds an additional discriminator to the ``cdk.context.json`` cache key.
98567
+
98568
+ :default: - no additional cache key
98569
+ '''
98570
+ result = self._values.get("additional_cache_key")
98571
+ return typing.cast(typing.Optional[builtins.str], result)
98572
+
97816
98573
  @builtins.property
97817
98574
  def cached_in_context(self) -> typing.Optional[builtins.bool]:
97818
98575
  '''Whether the AMI ID is cached to be stable between deployments.
@@ -97888,6 +98645,7 @@ class AmazonLinux2022ImageSsmParameterProps(AmazonLinuxImageSsmParameterCommonOp
97888
98645
  jsii_type="aws-cdk-lib.aws_ec2.AmazonLinux2023ImageSsmParameterProps",
97889
98646
  jsii_struct_bases=[AmazonLinuxImageSsmParameterCommonOptions],
97890
98647
  name_mapping={
98648
+ "additional_cache_key": "additionalCacheKey",
97891
98649
  "cached_in_context": "cachedInContext",
97892
98650
  "user_data": "userData",
97893
98651
  "cpu_type": "cpuType",
@@ -97899,6 +98657,7 @@ class AmazonLinux2023ImageSsmParameterProps(AmazonLinuxImageSsmParameterCommonOp
97899
98657
  def __init__(
97900
98658
  self,
97901
98659
  *,
98660
+ additional_cache_key: typing.Optional[builtins.str] = None,
97902
98661
  cached_in_context: typing.Optional[builtins.bool] = None,
97903
98662
  user_data: typing.Optional[UserData] = None,
97904
98663
  cpu_type: typing.Optional[AmazonLinuxCpuType] = None,
@@ -97907,6 +98666,7 @@ class AmazonLinux2023ImageSsmParameterProps(AmazonLinuxImageSsmParameterCommonOp
97907
98666
  ) -> None:
97908
98667
  '''Properties specific to al2023 images.
97909
98668
 
98669
+ :param additional_cache_key: Adds an additional discriminator to the ``cdk.context.json`` cache key. Default: - no additional cache key
97910
98670
  :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
97911
98671
  :param user_data: Initial user data. Default: - Empty UserData for Linux machines
97912
98672
  :param cpu_type: CPU Type. Default: AmazonLinuxCpuType.X86_64
@@ -97918,32 +98678,52 @@ class AmazonLinux2023ImageSsmParameterProps(AmazonLinuxImageSsmParameterCommonOp
97918
98678
  Example::
97919
98679
 
97920
98680
  # vpc: ec2.Vpc
98681
+ # instance_type: ec2.InstanceType
97921
98682
 
97922
98683
 
97923
- ec2.Instance(self, "LatestAl2023",
98684
+ # Amazon Linux 2
98685
+ ec2.Instance(self, "Instance2",
97924
98686
  vpc=vpc,
97925
- instance_type=ec2.InstanceType.of(ec2.InstanceClass.C7G, ec2.InstanceSize.LARGE),
97926
- machine_image=ec2.MachineImage.latest_amazon_linux2023(
97927
- cached_in_context=True
98687
+ instance_type=instance_type,
98688
+ machine_image=ec2.MachineImage.latest_amazon_linux2()
98689
+ )
98690
+
98691
+ # Amazon Linux 2 with kernel 5.x
98692
+ ec2.Instance(self, "Instance3",
98693
+ vpc=vpc,
98694
+ instance_type=instance_type,
98695
+ machine_image=ec2.MachineImage.latest_amazon_linux2(
98696
+ kernel=ec2.AmazonLinux2Kernel.KERNEL_5_10
97928
98697
  )
97929
98698
  )
97930
98699
 
97931
- # or
97932
- ec2.Instance(self, "LatestAl2023",
98700
+ # Amazon Linux 2023
98701
+ ec2.Instance(self, "Instance4",
98702
+ vpc=vpc,
98703
+ instance_type=instance_type,
98704
+ machine_image=ec2.MachineImage.latest_amazon_linux2023()
98705
+ )
98706
+
98707
+ # Graviton 3 Processor
98708
+ ec2.Instance(self, "Instance5",
97933
98709
  vpc=vpc,
97934
98710
  instance_type=ec2.InstanceType.of(ec2.InstanceClass.C7G, ec2.InstanceSize.LARGE),
97935
- # context cache is turned on by default
97936
- machine_image=ec2.AmazonLinux2023ImageSsmParameter()
98711
+ machine_image=ec2.MachineImage.latest_amazon_linux2023(
98712
+ cpu_type=ec2.AmazonLinuxCpuType.ARM_64
98713
+ )
97937
98714
  )
97938
98715
  '''
97939
98716
  if __debug__:
97940
98717
  type_hints = typing.get_type_hints(_typecheckingstub__d2a291560388da3a1deca6cc63773b445813e32521bbcf4ece1d3a557e2eda6b)
98718
+ check_type(argname="argument additional_cache_key", value=additional_cache_key, expected_type=type_hints["additional_cache_key"])
97941
98719
  check_type(argname="argument cached_in_context", value=cached_in_context, expected_type=type_hints["cached_in_context"])
97942
98720
  check_type(argname="argument user_data", value=user_data, expected_type=type_hints["user_data"])
97943
98721
  check_type(argname="argument cpu_type", value=cpu_type, expected_type=type_hints["cpu_type"])
97944
98722
  check_type(argname="argument edition", value=edition, expected_type=type_hints["edition"])
97945
98723
  check_type(argname="argument kernel", value=kernel, expected_type=type_hints["kernel"])
97946
98724
  self._values: typing.Dict[builtins.str, typing.Any] = {}
98725
+ if additional_cache_key is not None:
98726
+ self._values["additional_cache_key"] = additional_cache_key
97947
98727
  if cached_in_context is not None:
97948
98728
  self._values["cached_in_context"] = cached_in_context
97949
98729
  if user_data is not None:
@@ -97955,6 +98735,15 @@ class AmazonLinux2023ImageSsmParameterProps(AmazonLinuxImageSsmParameterCommonOp
97955
98735
  if kernel is not None:
97956
98736
  self._values["kernel"] = kernel
97957
98737
 
98738
+ @builtins.property
98739
+ def additional_cache_key(self) -> typing.Optional[builtins.str]:
98740
+ '''Adds an additional discriminator to the ``cdk.context.json`` cache key.
98741
+
98742
+ :default: - no additional cache key
98743
+ '''
98744
+ result = self._values.get("additional_cache_key")
98745
+ return typing.cast(typing.Optional[builtins.str], result)
98746
+
97958
98747
  @builtins.property
97959
98748
  def cached_in_context(self) -> typing.Optional[builtins.bool]:
97960
98749
  '''Whether the AMI ID is cached to be stable between deployments.
@@ -98030,6 +98819,7 @@ class AmazonLinux2023ImageSsmParameterProps(AmazonLinuxImageSsmParameterCommonOp
98030
98819
  jsii_type="aws-cdk-lib.aws_ec2.AmazonLinux2ImageSsmParameterProps",
98031
98820
  jsii_struct_bases=[AmazonLinuxImageSsmParameterCommonOptions],
98032
98821
  name_mapping={
98822
+ "additional_cache_key": "additionalCacheKey",
98033
98823
  "cached_in_context": "cachedInContext",
98034
98824
  "user_data": "userData",
98035
98825
  "cpu_type": "cpuType",
@@ -98043,6 +98833,7 @@ class AmazonLinux2ImageSsmParameterProps(AmazonLinuxImageSsmParameterCommonOptio
98043
98833
  def __init__(
98044
98834
  self,
98045
98835
  *,
98836
+ additional_cache_key: typing.Optional[builtins.str] = None,
98046
98837
  cached_in_context: typing.Optional[builtins.bool] = None,
98047
98838
  user_data: typing.Optional[UserData] = None,
98048
98839
  cpu_type: typing.Optional[AmazonLinuxCpuType] = None,
@@ -98053,6 +98844,7 @@ class AmazonLinux2ImageSsmParameterProps(AmazonLinuxImageSsmParameterCommonOptio
98053
98844
  ) -> None:
98054
98845
  '''Properties specific to amzn2 images.
98055
98846
 
98847
+ :param additional_cache_key: Adds an additional discriminator to the ``cdk.context.json`` cache key. Default: - no additional cache key
98056
98848
  :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
98057
98849
  :param user_data: Initial user data. Default: - Empty UserData for Linux machines
98058
98850
  :param cpu_type: CPU Type. Default: AmazonLinuxCpuType.X86_64
@@ -98103,6 +98895,7 @@ class AmazonLinux2ImageSsmParameterProps(AmazonLinuxImageSsmParameterCommonOptio
98103
98895
  '''
98104
98896
  if __debug__:
98105
98897
  type_hints = typing.get_type_hints(_typecheckingstub__8aa3dd8e9489482da5f68eebe827af2a2367490c7299028616bae30c26efbd55)
98898
+ check_type(argname="argument additional_cache_key", value=additional_cache_key, expected_type=type_hints["additional_cache_key"])
98106
98899
  check_type(argname="argument cached_in_context", value=cached_in_context, expected_type=type_hints["cached_in_context"])
98107
98900
  check_type(argname="argument user_data", value=user_data, expected_type=type_hints["user_data"])
98108
98901
  check_type(argname="argument cpu_type", value=cpu_type, expected_type=type_hints["cpu_type"])
@@ -98111,6 +98904,8 @@ class AmazonLinux2ImageSsmParameterProps(AmazonLinuxImageSsmParameterCommonOptio
98111
98904
  check_type(argname="argument storage", value=storage, expected_type=type_hints["storage"])
98112
98905
  check_type(argname="argument virtualization", value=virtualization, expected_type=type_hints["virtualization"])
98113
98906
  self._values: typing.Dict[builtins.str, typing.Any] = {}
98907
+ if additional_cache_key is not None:
98908
+ self._values["additional_cache_key"] = additional_cache_key
98114
98909
  if cached_in_context is not None:
98115
98910
  self._values["cached_in_context"] = cached_in_context
98116
98911
  if user_data is not None:
@@ -98126,6 +98921,15 @@ class AmazonLinux2ImageSsmParameterProps(AmazonLinuxImageSsmParameterCommonOptio
98126
98921
  if virtualization is not None:
98127
98922
  self._values["virtualization"] = virtualization
98128
98923
 
98924
+ @builtins.property
98925
+ def additional_cache_key(self) -> typing.Optional[builtins.str]:
98926
+ '''Adds an additional discriminator to the ``cdk.context.json`` cache key.
98927
+
98928
+ :default: - no additional cache key
98929
+ '''
98930
+ result = self._values.get("additional_cache_key")
98931
+ return typing.cast(typing.Optional[builtins.str], result)
98932
+
98129
98933
  @builtins.property
98130
98934
  def cached_in_context(self) -> typing.Optional[builtins.bool]:
98131
98935
  '''Whether the AMI ID is cached to be stable between deployments.
@@ -98224,16 +99028,19 @@ class AmazonLinuxImageSsmParameterBase(
98224
99028
  self,
98225
99029
  *,
98226
99030
  parameter_name: builtins.str,
99031
+ additional_cache_key: typing.Optional[builtins.str] = None,
98227
99032
  cached_in_context: typing.Optional[builtins.bool] = None,
98228
99033
  user_data: typing.Optional[UserData] = None,
98229
99034
  ) -> None:
98230
99035
  '''
98231
99036
  :param parameter_name: The name of the SSM parameter that contains the AMI value.
99037
+ :param additional_cache_key: Adds an additional discriminator to the ``cdk.context.json`` cache key. Default: - no additional cache key
98232
99038
  :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
98233
99039
  :param user_data: Initial user data. Default: - Empty UserData for Linux machines
98234
99040
  '''
98235
99041
  props = AmazonLinuxImageSsmParameterBaseProps(
98236
99042
  parameter_name=parameter_name,
99043
+ additional_cache_key=additional_cache_key,
98237
99044
  cached_in_context=cached_in_context,
98238
99045
  user_data=user_data,
98239
99046
  )
@@ -102336,6 +103143,7 @@ class AmazonLinux2022ImageSsmParameter(
102336
103143
  # user_data: ec2.UserData
102337
103144
 
102338
103145
  amazon_linux2022_image_ssm_parameter = ec2.AmazonLinux2022ImageSsmParameter(
103146
+ additional_cache_key="additionalCacheKey",
102339
103147
  cached_in_context=False,
102340
103148
  cpu_type=ec2.AmazonLinuxCpuType.ARM_64,
102341
103149
  edition=ec2.AmazonLinuxEdition.STANDARD,
@@ -102350,6 +103158,7 @@ class AmazonLinux2022ImageSsmParameter(
102350
103158
  kernel: typing.Optional[AmazonLinux2022Kernel] = None,
102351
103159
  cpu_type: typing.Optional[AmazonLinuxCpuType] = None,
102352
103160
  edition: typing.Optional[AmazonLinuxEdition] = None,
103161
+ additional_cache_key: typing.Optional[builtins.str] = None,
102353
103162
  cached_in_context: typing.Optional[builtins.bool] = None,
102354
103163
  user_data: typing.Optional[UserData] = None,
102355
103164
  ) -> None:
@@ -102357,6 +103166,7 @@ class AmazonLinux2022ImageSsmParameter(
102357
103166
  :param kernel: What kernel version of Amazon Linux to use. Default: AmazonLinux2022Kernel.DEFAULT
102358
103167
  :param cpu_type: CPU Type. Default: AmazonLinuxCpuType.X86_64
102359
103168
  :param edition: What edition of Amazon Linux to use. Default: AmazonLinuxEdition.Standard
103169
+ :param additional_cache_key: Adds an additional discriminator to the ``cdk.context.json`` cache key. Default: - no additional cache key
102360
103170
  :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
102361
103171
  :param user_data: Initial user data. Default: - Empty UserData for Linux machines
102362
103172
  '''
@@ -102364,6 +103174,7 @@ class AmazonLinux2022ImageSsmParameter(
102364
103174
  kernel=kernel,
102365
103175
  cpu_type=cpu_type,
102366
103176
  edition=edition,
103177
+ additional_cache_key=additional_cache_key,
102367
103178
  cached_in_context=cached_in_context,
102368
103179
  user_data=user_data,
102369
103180
  )
@@ -102378,6 +103189,7 @@ class AmazonLinux2022ImageSsmParameter(
102378
103189
  kernel: typing.Optional[AmazonLinux2022Kernel] = None,
102379
103190
  cpu_type: typing.Optional[AmazonLinuxCpuType] = None,
102380
103191
  edition: typing.Optional[AmazonLinuxEdition] = None,
103192
+ additional_cache_key: typing.Optional[builtins.str] = None,
102381
103193
  cached_in_context: typing.Optional[builtins.bool] = None,
102382
103194
  user_data: typing.Optional[UserData] = None,
102383
103195
  ) -> builtins.str:
@@ -102397,6 +103209,7 @@ class AmazonLinux2022ImageSsmParameter(
102397
103209
  :param kernel: What kernel version of Amazon Linux to use. Default: AmazonLinux2022Kernel.DEFAULT
102398
103210
  :param cpu_type: CPU Type. Default: AmazonLinuxCpuType.X86_64
102399
103211
  :param edition: What edition of Amazon Linux to use. Default: AmazonLinuxEdition.Standard
103212
+ :param additional_cache_key: Adds an additional discriminator to the ``cdk.context.json`` cache key. Default: - no additional cache key
102400
103213
  :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
102401
103214
  :param user_data: Initial user data. Default: - Empty UserData for Linux machines
102402
103215
  '''
@@ -102404,6 +103217,7 @@ class AmazonLinux2022ImageSsmParameter(
102404
103217
  kernel=kernel,
102405
103218
  cpu_type=cpu_type,
102406
103219
  edition=edition,
103220
+ additional_cache_key=additional_cache_key,
102407
103221
  cached_in_context=cached_in_context,
102408
103222
  user_data=user_data,
102409
103223
  )
@@ -102428,17 +103242,18 @@ class AmazonLinux2023ImageSsmParameter(
102428
103242
  ec2.Instance(self, "LatestAl2023",
102429
103243
  vpc=vpc,
102430
103244
  instance_type=ec2.InstanceType.of(ec2.InstanceClass.C7G, ec2.InstanceSize.LARGE),
102431
- machine_image=ec2.MachineImage.latest_amazon_linux2023(
102432
- cached_in_context=True
103245
+ # context cache is turned on by default
103246
+ machine_image=ec2.AmazonLinux2023ImageSsmParameter(
103247
+ kernel=ec2.AmazonLinux2023Kernel.CDK_LATEST
102433
103248
  )
102434
103249
  )
102435
103250
 
102436
103251
  # or
103252
+
102437
103253
  ec2.Instance(self, "LatestAl2023",
102438
103254
  vpc=vpc,
102439
103255
  instance_type=ec2.InstanceType.of(ec2.InstanceClass.C7G, ec2.InstanceSize.LARGE),
102440
- # context cache is turned on by default
102441
- machine_image=ec2.AmazonLinux2023ImageSsmParameter()
103256
+ machine_image=ec2.MachineImage.latest_amazon_linux2023()
102442
103257
  )
102443
103258
  '''
102444
103259
 
@@ -102448,6 +103263,7 @@ class AmazonLinux2023ImageSsmParameter(
102448
103263
  kernel: typing.Optional[AmazonLinux2023Kernel] = None,
102449
103264
  cpu_type: typing.Optional[AmazonLinuxCpuType] = None,
102450
103265
  edition: typing.Optional[AmazonLinuxEdition] = None,
103266
+ additional_cache_key: typing.Optional[builtins.str] = None,
102451
103267
  cached_in_context: typing.Optional[builtins.bool] = None,
102452
103268
  user_data: typing.Optional[UserData] = None,
102453
103269
  ) -> None:
@@ -102455,6 +103271,7 @@ class AmazonLinux2023ImageSsmParameter(
102455
103271
  :param kernel: What kernel version of Amazon Linux to use. Default: AmazonLinux2023Kernel.DEFAULT
102456
103272
  :param cpu_type: CPU Type. Default: AmazonLinuxCpuType.X86_64
102457
103273
  :param edition: What edition of Amazon Linux to use. Default: AmazonLinuxEdition.Standard
103274
+ :param additional_cache_key: Adds an additional discriminator to the ``cdk.context.json`` cache key. Default: - no additional cache key
102458
103275
  :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
102459
103276
  :param user_data: Initial user data. Default: - Empty UserData for Linux machines
102460
103277
  '''
@@ -102462,6 +103279,7 @@ class AmazonLinux2023ImageSsmParameter(
102462
103279
  kernel=kernel,
102463
103280
  cpu_type=cpu_type,
102464
103281
  edition=edition,
103282
+ additional_cache_key=additional_cache_key,
102465
103283
  cached_in_context=cached_in_context,
102466
103284
  user_data=user_data,
102467
103285
  )
@@ -102476,6 +103294,7 @@ class AmazonLinux2023ImageSsmParameter(
102476
103294
  kernel: typing.Optional[AmazonLinux2023Kernel] = None,
102477
103295
  cpu_type: typing.Optional[AmazonLinuxCpuType] = None,
102478
103296
  edition: typing.Optional[AmazonLinuxEdition] = None,
103297
+ additional_cache_key: typing.Optional[builtins.str] = None,
102479
103298
  cached_in_context: typing.Optional[builtins.bool] = None,
102480
103299
  user_data: typing.Optional[UserData] = None,
102481
103300
  ) -> builtins.str:
@@ -102495,6 +103314,7 @@ class AmazonLinux2023ImageSsmParameter(
102495
103314
  :param kernel: What kernel version of Amazon Linux to use. Default: AmazonLinux2023Kernel.DEFAULT
102496
103315
  :param cpu_type: CPU Type. Default: AmazonLinuxCpuType.X86_64
102497
103316
  :param edition: What edition of Amazon Linux to use. Default: AmazonLinuxEdition.Standard
103317
+ :param additional_cache_key: Adds an additional discriminator to the ``cdk.context.json`` cache key. Default: - no additional cache key
102498
103318
  :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
102499
103319
  :param user_data: Initial user data. Default: - Empty UserData for Linux machines
102500
103320
  '''
@@ -102502,6 +103322,7 @@ class AmazonLinux2023ImageSsmParameter(
102502
103322
  kernel=kernel,
102503
103323
  cpu_type=cpu_type,
102504
103324
  edition=edition,
103325
+ additional_cache_key=additional_cache_key,
102505
103326
  cached_in_context=cached_in_context,
102506
103327
  user_data=user_data,
102507
103328
  )
@@ -102528,6 +103349,7 @@ class AmazonLinux2ImageSsmParameter(
102528
103349
  # user_data: ec2.UserData
102529
103350
 
102530
103351
  amazon_linux2_image_ssm_parameter = ec2.AmazonLinux2ImageSsmParameter(
103352
+ additional_cache_key="additionalCacheKey",
102531
103353
  cached_in_context=False,
102532
103354
  cpu_type=ec2.AmazonLinuxCpuType.ARM_64,
102533
103355
  edition=ec2.AmazonLinuxEdition.STANDARD,
@@ -102546,6 +103368,7 @@ class AmazonLinux2ImageSsmParameter(
102546
103368
  virtualization: typing.Optional[AmazonLinuxVirt] = None,
102547
103369
  cpu_type: typing.Optional[AmazonLinuxCpuType] = None,
102548
103370
  edition: typing.Optional[AmazonLinuxEdition] = None,
103371
+ additional_cache_key: typing.Optional[builtins.str] = None,
102549
103372
  cached_in_context: typing.Optional[builtins.bool] = None,
102550
103373
  user_data: typing.Optional[UserData] = None,
102551
103374
  ) -> None:
@@ -102555,6 +103378,7 @@ class AmazonLinux2ImageSsmParameter(
102555
103378
  :param virtualization: Virtualization type. Default: HVM
102556
103379
  :param cpu_type: CPU Type. Default: AmazonLinuxCpuType.X86_64
102557
103380
  :param edition: What edition of Amazon Linux to use. Default: AmazonLinuxEdition.Standard
103381
+ :param additional_cache_key: Adds an additional discriminator to the ``cdk.context.json`` cache key. Default: - no additional cache key
102558
103382
  :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
102559
103383
  :param user_data: Initial user data. Default: - Empty UserData for Linux machines
102560
103384
  '''
@@ -102564,6 +103388,7 @@ class AmazonLinux2ImageSsmParameter(
102564
103388
  virtualization=virtualization,
102565
103389
  cpu_type=cpu_type,
102566
103390
  edition=edition,
103391
+ additional_cache_key=additional_cache_key,
102567
103392
  cached_in_context=cached_in_context,
102568
103393
  user_data=user_data,
102569
103394
  )
@@ -102580,6 +103405,7 @@ class AmazonLinux2ImageSsmParameter(
102580
103405
  virtualization: typing.Optional[AmazonLinuxVirt] = None,
102581
103406
  cpu_type: typing.Optional[AmazonLinuxCpuType] = None,
102582
103407
  edition: typing.Optional[AmazonLinuxEdition] = None,
103408
+ additional_cache_key: typing.Optional[builtins.str] = None,
102583
103409
  cached_in_context: typing.Optional[builtins.bool] = None,
102584
103410
  user_data: typing.Optional[UserData] = None,
102585
103411
  ) -> builtins.str:
@@ -102601,6 +103427,7 @@ class AmazonLinux2ImageSsmParameter(
102601
103427
  :param virtualization: Virtualization type. Default: HVM
102602
103428
  :param cpu_type: CPU Type. Default: AmazonLinuxCpuType.X86_64
102603
103429
  :param edition: What edition of Amazon Linux to use. Default: AmazonLinuxEdition.Standard
103430
+ :param additional_cache_key: Adds an additional discriminator to the ``cdk.context.json`` cache key. Default: - no additional cache key
102604
103431
  :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
102605
103432
  :param user_data: Initial user data. Default: - Empty UserData for Linux machines
102606
103433
  '''
@@ -102610,6 +103437,7 @@ class AmazonLinux2ImageSsmParameter(
102610
103437
  virtualization=virtualization,
102611
103438
  cpu_type=cpu_type,
102612
103439
  edition=edition,
103440
+ additional_cache_key=additional_cache_key,
102613
103441
  cached_in_context=cached_in_context,
102614
103442
  user_data=user_data,
102615
103443
  )
@@ -102654,6 +103482,7 @@ class AmazonLinuxImage(
102654
103482
  def __init__(
102655
103483
  self,
102656
103484
  *,
103485
+ additional_cache_key: typing.Optional[builtins.str] = None,
102657
103486
  cached_in_context: typing.Optional[builtins.bool] = None,
102658
103487
  cpu_type: typing.Optional[AmazonLinuxCpuType] = None,
102659
103488
  edition: typing.Optional[AmazonLinuxEdition] = None,
@@ -102664,6 +103493,7 @@ class AmazonLinuxImage(
102664
103493
  virtualization: typing.Optional[AmazonLinuxVirt] = None,
102665
103494
  ) -> None:
102666
103495
  '''
103496
+ :param additional_cache_key: Adds an additional discriminator to the ``cdk.context.json`` cache key. Default: - no additional cache key
102667
103497
  :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
102668
103498
  :param cpu_type: CPU Type. Default: X86_64
102669
103499
  :param edition: What edition of Amazon Linux to use. Default: Standard
@@ -102674,6 +103504,7 @@ class AmazonLinuxImage(
102674
103504
  :param virtualization: Virtualization type. Default: HVM
102675
103505
  '''
102676
103506
  props = AmazonLinuxImageProps(
103507
+ additional_cache_key=additional_cache_key,
102677
103508
  cached_in_context=cached_in_context,
102678
103509
  cpu_type=cpu_type,
102679
103510
  edition=edition,
@@ -102691,6 +103522,7 @@ class AmazonLinuxImage(
102691
103522
  def ssm_parameter_name(
102692
103523
  cls,
102693
103524
  *,
103525
+ additional_cache_key: typing.Optional[builtins.str] = None,
102694
103526
  cached_in_context: typing.Optional[builtins.bool] = None,
102695
103527
  cpu_type: typing.Optional[AmazonLinuxCpuType] = None,
102696
103528
  edition: typing.Optional[AmazonLinuxEdition] = None,
@@ -102702,6 +103534,7 @@ class AmazonLinuxImage(
102702
103534
  ) -> builtins.str:
102703
103535
  '''Return the SSM parameter name that will contain the Amazon Linux image with the given attributes.
102704
103536
 
103537
+ :param additional_cache_key: Adds an additional discriminator to the ``cdk.context.json`` cache key. Default: - no additional cache key
102705
103538
  :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
102706
103539
  :param cpu_type: CPU Type. Default: X86_64
102707
103540
  :param edition: What edition of Amazon Linux to use. Default: Standard
@@ -102712,6 +103545,7 @@ class AmazonLinuxImage(
102712
103545
  :param virtualization: Virtualization type. Default: HVM
102713
103546
  '''
102714
103547
  props = AmazonLinuxImageProps(
103548
+ additional_cache_key=additional_cache_key,
102715
103549
  cached_in_context=cached_in_context,
102716
103550
  cpu_type=cpu_type,
102717
103551
  edition=edition,
@@ -103680,6 +104514,7 @@ def _typecheckingstub__3d9d80aebc17990a8f3419f9444ec1fdd3e5bc1c150c3db0d42eda409
103680
104514
 
103681
104515
  def _typecheckingstub__dd95a518c06563a07debc9bf1ca51713b747cf64bded6f7cc81a28680d7ea9fc(
103682
104516
  *,
104517
+ additional_cache_key: typing.Optional[builtins.str] = None,
103683
104518
  cached_in_context: typing.Optional[builtins.bool] = None,
103684
104519
  cpu_type: typing.Optional[AmazonLinuxCpuType] = None,
103685
104520
  edition: typing.Optional[AmazonLinuxEdition] = None,
@@ -103694,6 +104529,7 @@ def _typecheckingstub__dd95a518c06563a07debc9bf1ca51713b747cf64bded6f7cc81a28680
103694
104529
 
103695
104530
  def _typecheckingstub__08eb71b09afb1d361b3f043a5c2d7d4be91f84b114302afefc8a69963ee6333f(
103696
104531
  *,
104532
+ additional_cache_key: typing.Optional[builtins.str] = None,
103697
104533
  cached_in_context: typing.Optional[builtins.bool] = None,
103698
104534
  user_data: typing.Optional[UserData] = None,
103699
104535
  ) -> None:
@@ -103702,6 +104538,7 @@ def _typecheckingstub__08eb71b09afb1d361b3f043a5c2d7d4be91f84b114302afefc8a69963
103702
104538
 
103703
104539
  def _typecheckingstub__78a32cfc14171e780d6e44d3e6a99faa6da50655ac09560f7b229b0c0c7383f1(
103704
104540
  *,
104541
+ additional_cache_key: typing.Optional[builtins.str] = None,
103705
104542
  cached_in_context: typing.Optional[builtins.bool] = None,
103706
104543
  user_data: typing.Optional[UserData] = None,
103707
104544
  parameter_name: builtins.str,
@@ -103711,6 +104548,7 @@ def _typecheckingstub__78a32cfc14171e780d6e44d3e6a99faa6da50655ac09560f7b229b0c0
103711
104548
 
103712
104549
  def _typecheckingstub__8fcdd01a6ab45c77447fba339b5a9358c3ab40c4833c1f86c68009a6a3bb1422(
103713
104550
  *,
104551
+ additional_cache_key: typing.Optional[builtins.str] = None,
103714
104552
  cached_in_context: typing.Optional[builtins.bool] = None,
103715
104553
  user_data: typing.Optional[UserData] = None,
103716
104554
  cpu_type: typing.Optional[AmazonLinuxCpuType] = None,
@@ -104860,6 +105698,16 @@ def _typecheckingstub__af90912c9ac24abaec82396197e6a69e4a9b7287343456143c11dce76
104860
105698
  """Type checking stubs"""
104861
105699
  pass
104862
105700
 
105701
+ def _typecheckingstub__2ac1bca7bdb78c6a00383adcdf8e49157dfa7db32559bd0d8033ff9f9ea819c7(
105702
+ *,
105703
+ device_name: typing.Optional[builtins.str] = None,
105704
+ ebs: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnEC2Fleet.EbsBlockDeviceProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
105705
+ no_device: typing.Optional[builtins.str] = None,
105706
+ virtual_name: typing.Optional[builtins.str] = None,
105707
+ ) -> None:
105708
+ """Type checking stubs"""
105709
+ pass
105710
+
104863
105711
  def _typecheckingstub__1c9644ecfacce71230069287c64c15045d2faa220f98ae11e6e91993204231d1(
104864
105712
  *,
104865
105713
  replacement_strategy: typing.Optional[builtins.str] = None,
@@ -104882,6 +105730,19 @@ def _typecheckingstub__2e29954f7c2c9dfcf753ab53031041abbaad5b5371796092fa6a7e5ca
104882
105730
  """Type checking stubs"""
104883
105731
  pass
104884
105732
 
105733
+ def _typecheckingstub__98937edeb55103aa31b4f310bc1c5cdf31ffd54c5c2d451314118a9d43196bbd(
105734
+ *,
105735
+ delete_on_termination: typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]] = None,
105736
+ encrypted: typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]] = None,
105737
+ iops: typing.Optional[jsii.Number] = None,
105738
+ kms_key_id: typing.Optional[builtins.str] = None,
105739
+ snapshot_id: typing.Optional[builtins.str] = None,
105740
+ volume_size: typing.Optional[jsii.Number] = None,
105741
+ volume_type: typing.Optional[builtins.str] = None,
105742
+ ) -> None:
105743
+ """Type checking stubs"""
105744
+ pass
105745
+
104885
105746
  def _typecheckingstub__a16391ac858f174f4e714e8b72b94e7e61e1b50ead8e638dff708e3d739752d5(
104886
105747
  *,
104887
105748
  launch_template_specification: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnEC2Fleet.FleetLaunchTemplateSpecificationRequestProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
@@ -104893,6 +105754,7 @@ def _typecheckingstub__a16391ac858f174f4e714e8b72b94e7e61e1b50ead8e638dff708e3d7
104893
105754
  def _typecheckingstub__d758750d188cce1b749f19591d20310ad5bc697f0e6f94f495c9619297998763(
104894
105755
  *,
104895
105756
  availability_zone: typing.Optional[builtins.str] = None,
105757
+ block_device_mappings: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union[CfnEC2Fleet.BlockDeviceMappingProperty, typing.Dict[builtins.str, typing.Any]]]]]] = None,
104896
105758
  instance_requirements: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnEC2Fleet.InstanceRequirementsRequestProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
104897
105759
  instance_type: typing.Optional[builtins.str] = None,
104898
105760
  max_price: typing.Optional[builtins.str] = None,
@@ -105244,6 +106106,7 @@ def _typecheckingstub__84a7ddca98bd1c24713f12588ec54b51cdc19c99c2209e07c96417201
105244
106106
  id: builtins.str,
105245
106107
  *,
105246
106108
  vpc_id: builtins.str,
106109
+ tags: typing.Optional[typing.Sequence[typing.Union[_CfnTag_f6864754, typing.Dict[builtins.str, typing.Any]]]] = None,
105247
106110
  ) -> None:
105248
106111
  """Type checking stubs"""
105249
106112
  pass
@@ -105266,9 +106129,16 @@ def _typecheckingstub__dd41a3676da418b0ac30e8c6707af491b5f32416672bf517e640f6132
105266
106129
  """Type checking stubs"""
105267
106130
  pass
105268
106131
 
106132
+ def _typecheckingstub__923846a8ba3d02f36c9267e2c903018ed279860265ad8a488da0a81153c5ff44(
106133
+ value: typing.Optional[typing.List[_CfnTag_f6864754]],
106134
+ ) -> None:
106135
+ """Type checking stubs"""
106136
+ pass
106137
+
105269
106138
  def _typecheckingstub__b693b2d49003d73758f4c0003564a93353b18fc97434556a2e988e47f367fb84(
105270
106139
  *,
105271
106140
  vpc_id: builtins.str,
106141
+ tags: typing.Optional[typing.Sequence[typing.Union[_CfnTag_f6864754, typing.Dict[builtins.str, typing.Any]]]] = None,
105272
106142
  ) -> None:
105273
106143
  """Type checking stubs"""
105274
106144
  pass
@@ -110207,6 +111077,13 @@ def _typecheckingstub__b297663d31b5bbe92a3f56911eb6c57abab4c122a855b348cb1da68bc
110207
111077
  """Type checking stubs"""
110208
111078
  pass
110209
111079
 
111080
+ def _typecheckingstub__39b852e2beaad9da72706596053a58f7c1190828d458e590af07c5701812220d(
111081
+ *,
111082
+ internet_gateway_block_mode: typing.Optional[builtins.str] = None,
111083
+ ) -> None:
111084
+ """Type checking stubs"""
111085
+ pass
111086
+
110210
111087
  def _typecheckingstub__9ead2dbf33a2462f22ec4fe1b542f6a0fc766e914575dd0c8da36b35e6a471a0(
110211
111088
  *,
110212
111089
  enable_resource_name_dns_aaaa_record: typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]] = None,
@@ -114862,6 +115739,7 @@ def _typecheckingstub__866a74bec8e14dd27073a82d4ff7b25ab450e0eff08b7026d08431998
114862
115739
  def _typecheckingstub__9c44b2bd75c4714250889165d6fd2d06ab6a906b90c817320a7c5f526dcbfc2f(
114863
115740
  *,
114864
115741
  name: builtins.str,
115742
+ additional_cache_key: typing.Optional[builtins.str] = None,
114865
115743
  filters: typing.Optional[typing.Mapping[builtins.str, typing.Sequence[builtins.str]]] = None,
114866
115744
  owners: typing.Optional[typing.Sequence[builtins.str]] = None,
114867
115745
  user_data: typing.Optional[UserData] = None,
@@ -114873,6 +115751,7 @@ def _typecheckingstub__9c44b2bd75c4714250889165d6fd2d06ab6a906b90c817320a7c5f526
114873
115751
  def _typecheckingstub__677afd5ea9b4639913a489ab67346107c0d290e015be12483e980d3a19e33a6e(
114874
115752
  parameter_name: builtins.str,
114875
115753
  *,
115754
+ additional_cache_key: typing.Optional[builtins.str] = None,
114876
115755
  cached_in_context: typing.Optional[builtins.bool] = None,
114877
115756
  os: typing.Optional[OperatingSystemType] = None,
114878
115757
  parameter_version: typing.Optional[builtins.str] = None,
@@ -114908,6 +115787,7 @@ def _typecheckingstub__0340fbf48f206279d16bd5e5e0956522ca9a19ba8d39aa2efcc7d06b4
114908
115787
  def _typecheckingstub__5e832dd82a3ef447ebf9a639dc9d6983793ce7321287fb2370dbed898b67d02a(
114909
115788
  parameter_name: builtins.str,
114910
115789
  *,
115790
+ additional_cache_key: typing.Optional[builtins.str] = None,
114911
115791
  cached_in_context: typing.Optional[builtins.bool] = None,
114912
115792
  os: typing.Optional[OperatingSystemType] = None,
114913
115793
  parameter_version: typing.Optional[builtins.str] = None,
@@ -115239,6 +116119,7 @@ def _typecheckingstub__fb9c21f15b378acd78737933455e65f7bb8b078652a7ac4ee6c129501
115239
116119
  def _typecheckingstub__ae85933c688e38a0dd9faa69a685488b55c8c19f918eabcacbd33c964c7bb468(
115240
116120
  parameter_name: builtins.str,
115241
116121
  *,
116122
+ additional_cache_key: typing.Optional[builtins.str] = None,
115242
116123
  cached_in_context: typing.Optional[builtins.bool] = None,
115243
116124
  os: typing.Optional[OperatingSystemType] = None,
115244
116125
  parameter_version: typing.Optional[builtins.str] = None,
@@ -115391,6 +116272,7 @@ def _typecheckingstub__238a040275c82fe5911f2f1fd16a54d47e5937007b9647e86fefb63d0
115391
116272
 
115392
116273
  def _typecheckingstub__a03f16dc6f5eb3eb6f69587f84001af20bc314a1c46a530aa5fb21da814be237(
115393
116274
  *,
116275
+ additional_cache_key: typing.Optional[builtins.str] = None,
115394
116276
  cached_in_context: typing.Optional[builtins.bool] = None,
115395
116277
  os: typing.Optional[OperatingSystemType] = None,
115396
116278
  parameter_version: typing.Optional[builtins.str] = None,
@@ -115665,6 +116547,7 @@ def _typecheckingstub__7e030ab114373c1029fa90c55af2097b08d29de0c6045a2812c36b009
115665
116547
  size: typing.Optional[_Size_7b441c34] = None,
115666
116548
  snapshot_id: typing.Optional[builtins.str] = None,
115667
116549
  throughput: typing.Optional[jsii.Number] = None,
116550
+ volume_initialization_rate: typing.Optional[_Size_7b441c34] = None,
115668
116551
  volume_name: typing.Optional[builtins.str] = None,
115669
116552
  volume_type: typing.Optional[EbsDeviceVolumeType] = None,
115670
116553
  ) -> None:
@@ -115733,6 +116616,7 @@ def _typecheckingstub__fd11037db838f64c74264a09154568b99584932152ae7679e47051119
115733
116616
  size: typing.Optional[_Size_7b441c34] = None,
115734
116617
  snapshot_id: typing.Optional[builtins.str] = None,
115735
116618
  throughput: typing.Optional[jsii.Number] = None,
116619
+ volume_initialization_rate: typing.Optional[_Size_7b441c34] = None,
115736
116620
  volume_name: typing.Optional[builtins.str] = None,
115737
116621
  volume_type: typing.Optional[EbsDeviceVolumeType] = None,
115738
116622
  ) -> None:
@@ -116118,6 +117002,7 @@ def _typecheckingstub__a9243d0fea7f4d4e8b65c37925a1dbb71b6136866e6c28c37f9d5dc79
116118
117002
 
116119
117003
  def _typecheckingstub__968329b6e3d88dbd1836e6234bc305a96628c570666cc423d4eeccc95dc92ab6(
116120
117004
  *,
117005
+ additional_cache_key: typing.Optional[builtins.str] = None,
116121
117006
  cached_in_context: typing.Optional[builtins.bool] = None,
116122
117007
  user_data: typing.Optional[UserData] = None,
116123
117008
  cpu_type: typing.Optional[AmazonLinuxCpuType] = None,
@@ -116129,6 +117014,7 @@ def _typecheckingstub__968329b6e3d88dbd1836e6234bc305a96628c570666cc423d4eeccc95
116129
117014
 
116130
117015
  def _typecheckingstub__d2a291560388da3a1deca6cc63773b445813e32521bbcf4ece1d3a557e2eda6b(
116131
117016
  *,
117017
+ additional_cache_key: typing.Optional[builtins.str] = None,
116132
117018
  cached_in_context: typing.Optional[builtins.bool] = None,
116133
117019
  user_data: typing.Optional[UserData] = None,
116134
117020
  cpu_type: typing.Optional[AmazonLinuxCpuType] = None,
@@ -116140,6 +117026,7 @@ def _typecheckingstub__d2a291560388da3a1deca6cc63773b445813e32521bbcf4ece1d3a557
116140
117026
 
116141
117027
  def _typecheckingstub__8aa3dd8e9489482da5f68eebe827af2a2367490c7299028616bae30c26efbd55(
116142
117028
  *,
117029
+ additional_cache_key: typing.Optional[builtins.str] = None,
116143
117030
  cached_in_context: typing.Optional[builtins.bool] = None,
116144
117031
  user_data: typing.Optional[UserData] = None,
116145
117032
  cpu_type: typing.Optional[AmazonLinuxCpuType] = None,