aws-cdk-lib 2.161.1__py3-none-any.whl → 2.162.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.
Files changed (45) hide show
  1. aws_cdk/__init__.py +64 -10
  2. aws_cdk/_jsii/__init__.py +1 -1
  3. aws_cdk/_jsii/{aws-cdk-lib@2.161.1.jsii.tgz → aws-cdk-lib@2.162.0.jsii.tgz} +0 -0
  4. aws_cdk/aws_apigatewayv2/__init__.py +16 -7
  5. aws_cdk/aws_apigatewayv2_authorizers/__init__.py +94 -0
  6. aws_cdk/aws_appsync/__init__.py +35 -0
  7. aws_cdk/aws_b2bi/__init__.py +18 -21
  8. aws_cdk/aws_cloudformation/__init__.py +59 -5
  9. aws_cdk/aws_cloudfront/__init__.py +4 -4
  10. aws_cdk/aws_codebuild/__init__.py +6 -6
  11. aws_cdk/aws_codepipeline/__init__.py +1 -1
  12. aws_cdk/aws_codepipeline_actions/__init__.py +1 -1
  13. aws_cdk/aws_dynamodb/__init__.py +1 -1
  14. aws_cdk/aws_ec2/__init__.py +13 -3
  15. aws_cdk/aws_ecs/__init__.py +122 -29
  16. aws_cdk/aws_eks/__init__.py +62 -51
  17. aws_cdk/aws_elasticloadbalancingv2/__init__.py +139 -25
  18. aws_cdk/aws_emr/__init__.py +2182 -2129
  19. aws_cdk/aws_glue/__init__.py +9 -6
  20. aws_cdk/aws_iam/__init__.py +26 -4
  21. aws_cdk/aws_iot/__init__.py +190 -0
  22. aws_cdk/aws_iotsitewise/__init__.py +3 -1
  23. aws_cdk/aws_lambda/__init__.py +7 -1
  24. aws_cdk/aws_lambda_event_sources/__init__.py +2 -2
  25. aws_cdk/aws_logs/__init__.py +6 -6
  26. aws_cdk/aws_quicksight/__init__.py +32 -19
  27. aws_cdk/aws_rds/__init__.py +62 -30
  28. aws_cdk/aws_route53/__init__.py +5 -1
  29. aws_cdk/aws_route53resolver/__init__.py +17 -3
  30. aws_cdk/aws_s3/__init__.py +47 -25
  31. aws_cdk/aws_s3_assets/__init__.py +2 -2
  32. aws_cdk/aws_s3_notifications/__init__.py +1 -1
  33. aws_cdk/aws_servicecatalog/__init__.py +2 -2
  34. aws_cdk/aws_servicediscovery/__init__.py +8 -8
  35. aws_cdk/aws_sqs/__init__.py +12 -10
  36. aws_cdk/aws_stepfunctions_tasks/__init__.py +20 -20
  37. aws_cdk/cloudformation_include/__init__.py +4 -4
  38. aws_cdk/custom_resources/__init__.py +1 -1
  39. aws_cdk/pipelines/__init__.py +1 -1
  40. {aws_cdk_lib-2.161.1.dist-info → aws_cdk_lib-2.162.0.dist-info}/METADATA +4 -4
  41. {aws_cdk_lib-2.161.1.dist-info → aws_cdk_lib-2.162.0.dist-info}/RECORD +45 -45
  42. {aws_cdk_lib-2.161.1.dist-info → aws_cdk_lib-2.162.0.dist-info}/LICENSE +0 -0
  43. {aws_cdk_lib-2.161.1.dist-info → aws_cdk_lib-2.162.0.dist-info}/NOTICE +0 -0
  44. {aws_cdk_lib-2.161.1.dist-info → aws_cdk_lib-2.162.0.dist-info}/WHEEL +0 -0
  45. {aws_cdk_lib-2.161.1.dist-info → aws_cdk_lib-2.162.0.dist-info}/top_level.txt +0 -0
@@ -71,7 +71,10 @@ class CfnCustomResource(
71
71
  from aws_cdk import aws_cloudformation as cloudformation
72
72
 
73
73
  cfn_custom_resource = cloudformation.CfnCustomResource(self, "MyCfnCustomResource",
74
- service_token="serviceToken"
74
+ service_token="serviceToken",
75
+
76
+ # the properties below are optional
77
+ service_timeout=123
75
78
  )
76
79
  '''
77
80
 
@@ -81,17 +84,21 @@ class CfnCustomResource(
81
84
  id: builtins.str,
82
85
  *,
83
86
  service_token: builtins.str,
87
+ service_timeout: typing.Optional[jsii.Number] = None,
84
88
  ) -> None:
85
89
  '''
86
90
  :param scope: Scope in which this resource is defined.
87
91
  :param id: Construct identifier for this resource (unique in its scope).
88
92
  :param service_token: The service token, such as an Amazon SNS topic ARN or Lambda function ARN. The service token must be from the same Region as the stack. Updates aren't supported.
93
+ :param service_timeout: The maximum time, in seconds, that can elapse before a custom resource operation times out. The value must be an integer from 1 to 3600. The default value is 3600 seconds (1 hour).
89
94
  '''
90
95
  if __debug__:
91
96
  type_hints = typing.get_type_hints(_typecheckingstub__c0a3b106ffbe7fa1289a8e834aa35f1789994087e265fc54556841046e49661f)
92
97
  check_type(argname="argument scope", value=scope, expected_type=type_hints["scope"])
93
98
  check_type(argname="argument id", value=id, expected_type=type_hints["id"])
94
- props = CfnCustomResourceProps(service_token=service_token)
99
+ props = CfnCustomResourceProps(
100
+ service_token=service_token, service_timeout=service_timeout
101
+ )
95
102
 
96
103
  jsii.create(self.__class__, self, [scope, id, props])
97
104
 
@@ -151,17 +158,39 @@ class CfnCustomResource(
151
158
  check_type(argname="argument value", value=value, expected_type=type_hints["value"])
152
159
  jsii.set(self, "serviceToken", value) # pyright: ignore[reportArgumentType]
153
160
 
161
+ @builtins.property
162
+ @jsii.member(jsii_name="serviceTimeout")
163
+ def service_timeout(self) -> typing.Optional[jsii.Number]:
164
+ '''The maximum time, in seconds, that can elapse before a custom resource operation times out.'''
165
+ return typing.cast(typing.Optional[jsii.Number], jsii.get(self, "serviceTimeout"))
166
+
167
+ @service_timeout.setter
168
+ def service_timeout(self, value: typing.Optional[jsii.Number]) -> None:
169
+ if __debug__:
170
+ type_hints = typing.get_type_hints(_typecheckingstub__8aeb9202526d3c023edb03694e6fd97bdab3490571f472a31d826759168ed9d6)
171
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
172
+ jsii.set(self, "serviceTimeout", value) # pyright: ignore[reportArgumentType]
173
+
154
174
 
155
175
  @jsii.data_type(
156
176
  jsii_type="aws-cdk-lib.aws_cloudformation.CfnCustomResourceProps",
157
177
  jsii_struct_bases=[],
158
- name_mapping={"service_token": "serviceToken"},
178
+ name_mapping={
179
+ "service_token": "serviceToken",
180
+ "service_timeout": "serviceTimeout",
181
+ },
159
182
  )
160
183
  class CfnCustomResourceProps:
161
- def __init__(self, *, service_token: builtins.str) -> None:
184
+ def __init__(
185
+ self,
186
+ *,
187
+ service_token: builtins.str,
188
+ service_timeout: typing.Optional[jsii.Number] = None,
189
+ ) -> None:
162
190
  '''Properties for defining a ``CfnCustomResource``.
163
191
 
164
192
  :param service_token: The service token, such as an Amazon SNS topic ARN or Lambda function ARN. The service token must be from the same Region as the stack. Updates aren't supported.
193
+ :param service_timeout: The maximum time, in seconds, that can elapse before a custom resource operation times out. The value must be an integer from 1 to 3600. The default value is 3600 seconds (1 hour).
165
194
 
166
195
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-customresource.html
167
196
  :exampleMetadata: fixture=_generated
@@ -173,15 +202,21 @@ class CfnCustomResourceProps:
173
202
  from aws_cdk import aws_cloudformation as cloudformation
174
203
 
175
204
  cfn_custom_resource_props = cloudformation.CfnCustomResourceProps(
176
- service_token="serviceToken"
205
+ service_token="serviceToken",
206
+
207
+ # the properties below are optional
208
+ service_timeout=123
177
209
  )
178
210
  '''
179
211
  if __debug__:
180
212
  type_hints = typing.get_type_hints(_typecheckingstub__f766b9f5ea2582bff4d2cb33b19a38fbdabfbe380c61d04a056e8e0d2a00b54a)
181
213
  check_type(argname="argument service_token", value=service_token, expected_type=type_hints["service_token"])
214
+ check_type(argname="argument service_timeout", value=service_timeout, expected_type=type_hints["service_timeout"])
182
215
  self._values: typing.Dict[builtins.str, typing.Any] = {
183
216
  "service_token": service_token,
184
217
  }
218
+ if service_timeout is not None:
219
+ self._values["service_timeout"] = service_timeout
185
220
 
186
221
  @builtins.property
187
222
  def service_token(self) -> builtins.str:
@@ -197,6 +232,17 @@ class CfnCustomResourceProps:
197
232
  assert result is not None, "Required property 'service_token' is missing"
198
233
  return typing.cast(builtins.str, result)
199
234
 
235
+ @builtins.property
236
+ def service_timeout(self) -> typing.Optional[jsii.Number]:
237
+ '''The maximum time, in seconds, that can elapse before a custom resource operation times out.
238
+
239
+ The value must be an integer from 1 to 3600. The default value is 3600 seconds (1 hour).
240
+
241
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-customresource.html#cfn-cloudformation-customresource-servicetimeout
242
+ '''
243
+ result = self._values.get("service_timeout")
244
+ return typing.cast(typing.Optional[jsii.Number], result)
245
+
200
246
  def __eq__(self, rhs: typing.Any) -> builtins.bool:
201
247
  return isinstance(rhs, self.__class__) and rhs._values == self._values
202
248
 
@@ -6183,6 +6229,7 @@ def _typecheckingstub__c0a3b106ffbe7fa1289a8e834aa35f1789994087e265fc54556841046
6183
6229
  id: builtins.str,
6184
6230
  *,
6185
6231
  service_token: builtins.str,
6232
+ service_timeout: typing.Optional[jsii.Number] = None,
6186
6233
  ) -> None:
6187
6234
  """Type checking stubs"""
6188
6235
  pass
@@ -6205,9 +6252,16 @@ def _typecheckingstub__77951bc16957122471cd48666095011465879476219c4b12cf6a7c268
6205
6252
  """Type checking stubs"""
6206
6253
  pass
6207
6254
 
6255
+ def _typecheckingstub__8aeb9202526d3c023edb03694e6fd97bdab3490571f472a31d826759168ed9d6(
6256
+ value: typing.Optional[jsii.Number],
6257
+ ) -> None:
6258
+ """Type checking stubs"""
6259
+ pass
6260
+
6208
6261
  def _typecheckingstub__f766b9f5ea2582bff4d2cb33b19a38fbdabfbe380c61d04a056e8e0d2a00b54a(
6209
6262
  *,
6210
6263
  service_token: builtins.str,
6264
+ service_timeout: typing.Optional[jsii.Number] = None,
6211
6265
  ) -> None:
6212
6266
  """Type checking stubs"""
6213
6267
  pass
@@ -1167,7 +1167,7 @@ specified status codes the failover origin source will be used.
1167
1167
  cloudfront.CloudFrontWebDistribution(self, "ADistribution",
1168
1168
  origin_configs=[cloudfront.SourceConfiguration(
1169
1169
  s3_origin_source=cloudfront.S3OriginConfig(
1170
- s3_bucket_source=s3.Bucket.from_bucket_name(self, "aBucket", "myoriginbucket"),
1170
+ s3_bucket_source=s3.Bucket.from_bucket_name(self, "aBucket", "amzn-s3-demo-bucket"),
1171
1171
  origin_path="/",
1172
1172
  origin_headers={
1173
1173
  "myHeader": "42"
@@ -1175,7 +1175,7 @@ cloudfront.CloudFrontWebDistribution(self, "ADistribution",
1175
1175
  origin_shield_region="us-west-2"
1176
1176
  ),
1177
1177
  failover_s3_origin_source=cloudfront.S3OriginConfig(
1178
- s3_bucket_source=s3.Bucket.from_bucket_name(self, "aBucketFallback", "myoriginbucketfallback"),
1178
+ s3_bucket_source=s3.Bucket.from_bucket_name(self, "aBucketFallback", "amzn-s3-demo-bucket1"),
1179
1179
  origin_path="/somewhere",
1180
1180
  origin_headers={
1181
1181
  "myHeader2": "21"
@@ -16343,7 +16343,7 @@ class FailoverStatusCode(enum.Enum):
16343
16343
  cloudfront.CloudFrontWebDistribution(self, "ADistribution",
16344
16344
  origin_configs=[cloudfront.SourceConfiguration(
16345
16345
  s3_origin_source=cloudfront.S3OriginConfig(
16346
- s3_bucket_source=s3.Bucket.from_bucket_name(self, "aBucket", "myoriginbucket"),
16346
+ s3_bucket_source=s3.Bucket.from_bucket_name(self, "aBucket", "amzn-s3-demo-bucket"),
16347
16347
  origin_path="/",
16348
16348
  origin_headers={
16349
16349
  "myHeader": "42"
@@ -16351,7 +16351,7 @@ class FailoverStatusCode(enum.Enum):
16351
16351
  origin_shield_region="us-west-2"
16352
16352
  ),
16353
16353
  failover_s3_origin_source=cloudfront.S3OriginConfig(
16354
- s3_bucket_source=s3.Bucket.from_bucket_name(self, "aBucketFallback", "myoriginbucketfallback"),
16354
+ s3_bucket_source=s3.Bucket.from_bucket_name(self, "aBucketFallback", "amzn-s3-demo-bucket1"),
16355
16355
  origin_path="/somewhere",
16356
16356
  origin_headers={
16357
16357
  "myHeader2": "21"
@@ -361,7 +361,7 @@ codebuild.Project(self, "Project",
361
361
  build_image=codebuild.WindowsBuildImage.from_ecr_repository(ecr_repository, "v1.0", codebuild.WindowsImageType.SERVER_2019),
362
362
  # optional certificate to include in the build image
363
363
  certificate=codebuild.BuildEnvironmentCertificate(
364
- bucket=s3.Bucket.from_bucket_name(self, "Bucket", "my-bucket"),
364
+ bucket=s3.Bucket.from_bucket_name(self, "Bucket", "amzn-s3-demo-bucket"),
365
365
  object_key="path/to/cert.pem"
366
366
  )
367
367
  )
@@ -1641,7 +1641,7 @@ class BuildEnvironmentCertificate:
1641
1641
  build_image=codebuild.WindowsBuildImage.from_ecr_repository(ecr_repository, "v1.0", codebuild.WindowsImageType.SERVER_2019),
1642
1642
  # optional certificate to include in the build image
1643
1643
  certificate=codebuild.BuildEnvironmentCertificate(
1644
- bucket=s3.Bucket.from_bucket_name(self, "Bucket", "my-bucket"),
1644
+ bucket=s3.Bucket.from_bucket_name(self, "Bucket", "amzn-s3-demo-bucket"),
1645
1645
  object_key="path/to/cert.pem"
1646
1646
  )
1647
1647
  )
@@ -12618,7 +12618,7 @@ class Project(
12618
12618
  build_image=codebuild.WindowsBuildImage.from_ecr_repository(ecr_repository, "v1.0", codebuild.WindowsImageType.SERVER_2019),
12619
12619
  # optional certificate to include in the build image
12620
12620
  certificate=codebuild.BuildEnvironmentCertificate(
12621
- bucket=s3.Bucket.from_bucket_name(self, "Bucket", "my-bucket"),
12621
+ bucket=s3.Bucket.from_bucket_name(self, "Bucket", "amzn-s3-demo-bucket"),
12622
12622
  object_key="path/to/cert.pem"
12623
12623
  )
12624
12624
  )
@@ -13736,7 +13736,7 @@ class ProjectProps(CommonProjectProps):
13736
13736
  build_image=codebuild.WindowsBuildImage.from_ecr_repository(ecr_repository, "v1.0", codebuild.WindowsImageType.SERVER_2019),
13737
13737
  # optional certificate to include in the build image
13738
13738
  certificate=codebuild.BuildEnvironmentCertificate(
13739
- bucket=s3.Bucket.from_bucket_name(self, "Bucket", "my-bucket"),
13739
+ bucket=s3.Bucket.from_bucket_name(self, "Bucket", "amzn-s3-demo-bucket"),
13740
13740
  object_key="path/to/cert.pem"
13741
13741
  )
13742
13742
  )
@@ -15402,7 +15402,7 @@ class WindowsBuildImage(
15402
15402
  build_image=codebuild.WindowsBuildImage.from_ecr_repository(ecr_repository, "v1.0", codebuild.WindowsImageType.SERVER_2019),
15403
15403
  # optional certificate to include in the build image
15404
15404
  certificate=codebuild.BuildEnvironmentCertificate(
15405
- bucket=s3.Bucket.from_bucket_name(self, "Bucket", "my-bucket"),
15405
+ bucket=s3.Bucket.from_bucket_name(self, "Bucket", "amzn-s3-demo-bucket"),
15406
15406
  object_key="path/to/cert.pem"
15407
15407
  )
15408
15408
  )
@@ -15619,7 +15619,7 @@ class WindowsImageType(enum.Enum):
15619
15619
  build_image=codebuild.WindowsBuildImage.from_ecr_repository(ecr_repository, "v1.0", codebuild.WindowsImageType.SERVER_2019),
15620
15620
  # optional certificate to include in the build image
15621
15621
  certificate=codebuild.BuildEnvironmentCertificate(
15622
- bucket=s3.Bucket.from_bucket_name(self, "Bucket", "my-bucket"),
15622
+ bucket=s3.Bucket.from_bucket_name(self, "Bucket", "amzn-s3-demo-bucket"),
15623
15623
  object_key="path/to/cert.pem"
15624
15624
  )
15625
15625
  )
@@ -291,7 +291,7 @@ pipeline = codepipeline.Pipeline(self, "MyFirstPipeline",
291
291
  cross_region_replication_buckets={
292
292
  # note that a physical name of the replication Bucket must be known at synthesis time
293
293
  "us-west-1": s3.Bucket.from_bucket_attributes(self, "UsWest1ReplicationBucket",
294
- bucket_name="my-us-west-1-replication-bucket",
294
+ bucket_name="amzn-s3-demo-bucket",
295
295
  # optional KMS key
296
296
  encryption_key=kms.Key.from_key_arn(self, "UsWest1ReplicationKey", "arn:aws:kms:us-west-1:123456789012:key/1234-5678-9012")
297
297
  )
@@ -282,7 +282,7 @@ you can specify the region explicitly:
282
282
 
283
283
  ```python
284
284
  source_bucket = s3.Bucket.from_bucket_attributes(self, "SourceBucket",
285
- bucket_name="my-bucket",
285
+ bucket_name="amzn-s3-demo-bucket",
286
286
  region="ap-southeast-1"
287
287
  )
288
288
  ```
@@ -11464,7 +11464,7 @@ class TableEncryptionV2(
11464
11464
  @jsii.member(jsii_name="awsManagedKey")
11465
11465
  @builtins.classmethod
11466
11466
  def aws_managed_key(cls) -> "TableEncryptionV2":
11467
- '''Configure server-side encryption using a DynamoDB owned key.'''
11467
+ '''Configure server-side encryption using an AWS managed key.'''
11468
11468
  return typing.cast("TableEncryptionV2", jsii.sinvoke(cls, "awsManagedKey", []))
11469
11469
 
11470
11470
  @jsii.member(jsii_name="customerManagedKey")
@@ -48057,7 +48057,7 @@ class CfnSubnet(
48057
48057
  subnetcount = subnetcount + 1
48058
48058
 
48059
48059
  cluster = eks.Cluster(self, "hello-eks",
48060
- version=eks.KubernetesVersion.V1_30,
48060
+ version=eks.KubernetesVersion.V1_31,
48061
48061
  vpc=vpc,
48062
48062
  ip_family=eks.IpFamily.IP_V6,
48063
48063
  vpc_subnets=[ec2.SubnetSelection(subnets=vpc.public_subnets)]
@@ -55930,7 +55930,7 @@ class CfnVPCCidrBlock(
55930
55930
  subnetcount = subnetcount + 1
55931
55931
 
55932
55932
  cluster = eks.Cluster(self, "hello-eks",
55933
- version=eks.KubernetesVersion.V1_30,
55933
+ version=eks.KubernetesVersion.V1_31,
55934
55934
  vpc=vpc,
55935
55935
  ip_family=eks.IpFamily.IP_V6,
55936
55936
  vpc_subnets=[ec2.SubnetSelection(subnets=vpc.public_subnets)]
@@ -56245,7 +56245,7 @@ class CfnVPCCidrBlockProps:
56245
56245
  subnetcount = subnetcount + 1
56246
56246
 
56247
56247
  cluster = eks.Cluster(self, "hello-eks",
56248
- version=eks.KubernetesVersion.V1_30,
56248
+ version=eks.KubernetesVersion.V1_31,
56249
56249
  vpc=vpc,
56250
56250
  ip_family=eks.IpFamily.IP_V6,
56251
56251
  vpc_subnets=[ec2.SubnetSelection(subnets=vpc.public_subnets)]
@@ -75581,6 +75581,16 @@ class InterfaceVpcEndpointAwsService(
75581
75581
  def IOT_TWINMAKER_DATA(cls) -> "InterfaceVpcEndpointAwsService":
75582
75582
  return typing.cast("InterfaceVpcEndpointAwsService", jsii.sget(cls, "IOT_TWINMAKER_DATA"))
75583
75583
 
75584
+ @jsii.python.classproperty
75585
+ @jsii.member(jsii_name="KAFKA")
75586
+ def KAFKA(cls) -> "InterfaceVpcEndpointAwsService":
75587
+ return typing.cast("InterfaceVpcEndpointAwsService", jsii.sget(cls, "KAFKA"))
75588
+
75589
+ @jsii.python.classproperty
75590
+ @jsii.member(jsii_name="KAFKA_FIPS")
75591
+ def KAFKA_FIPS(cls) -> "InterfaceVpcEndpointAwsService":
75592
+ return typing.cast("InterfaceVpcEndpointAwsService", jsii.sget(cls, "KAFKA_FIPS"))
75593
+
75584
75594
  @jsii.python.classproperty
75585
75595
  @jsii.member(jsii_name="KENDRA")
75586
75596
  def KENDRA(cls) -> "InterfaceVpcEndpointAwsService":
@@ -87,6 +87,19 @@ cluster = ecs.Cluster(self, "Cluster",
87
87
  )
88
88
  ```
89
89
 
90
+ To encrypt the fargate ephemeral storage configure a KMS key.
91
+
92
+ ```python
93
+ # key: kms.Key
94
+
95
+
96
+ cluster = ecs.Cluster(self, "Cluster",
97
+ managed_storage_configuration=ecs.ManagedStorageConfiguration(
98
+ fargate_ephemeral_storage_kms_key=key
99
+ )
100
+ )
101
+ ```
102
+
90
103
  The following code imports an existing cluster using the ARN which can be used to
91
104
  import an Amazon ECS service either EC2 or Fargate.
92
105
 
@@ -1635,7 +1648,7 @@ to work, you need to have the SSM plugin for the AWS CLI installed locally. For
1635
1648
  [Install Session Manager plugin for AWS CLI](https://docs.aws.amazon.com/systems-manager/latest/userguide/session-manager-working-with-install-plugin.html).
1636
1649
 
1637
1650
  To enable the ECS Exec feature for your containers, set the boolean flag `enableExecuteCommand` to `true` in
1638
- your `Ec2Service` or `FargateService`.
1651
+ your `Ec2Service`, `FargateService` or `ExternalService`.
1639
1652
 
1640
1653
  ```python
1641
1654
  # cluster: ecs.Cluster
@@ -19179,6 +19192,7 @@ class ClusterAttributes:
19179
19192
  "default_cloud_map_namespace": "defaultCloudMapNamespace",
19180
19193
  "enable_fargate_capacity_providers": "enableFargateCapacityProviders",
19181
19194
  "execute_command_configuration": "executeCommandConfiguration",
19195
+ "managed_storage_configuration": "managedStorageConfiguration",
19182
19196
  "vpc": "vpc",
19183
19197
  },
19184
19198
  )
@@ -19192,6 +19206,7 @@ class ClusterProps:
19192
19206
  default_cloud_map_namespace: typing.Optional[typing.Union[CloudMapNamespaceOptions, typing.Dict[builtins.str, typing.Any]]] = None,
19193
19207
  enable_fargate_capacity_providers: typing.Optional[builtins.bool] = None,
19194
19208
  execute_command_configuration: typing.Optional[typing.Union["ExecuteCommandConfiguration", typing.Dict[builtins.str, typing.Any]]] = None,
19209
+ managed_storage_configuration: typing.Optional[typing.Union["ManagedStorageConfiguration", typing.Dict[builtins.str, typing.Any]]] = None,
19195
19210
  vpc: typing.Optional[_IVpc_f30d5663] = None,
19196
19211
  ) -> None:
19197
19212
  '''The properties used to define an ECS cluster.
@@ -19202,48 +19217,35 @@ class ClusterProps:
19202
19217
  :param default_cloud_map_namespace: The service discovery namespace created in this cluster. Default: - no service discovery namespace created, you can use ``addDefaultCloudMapNamespace`` to add a default service discovery namespace later.
19203
19218
  :param enable_fargate_capacity_providers: Whether to enable Fargate Capacity Providers. Default: false
19204
19219
  :param execute_command_configuration: The execute command configuration for the cluster. Default: - no configuration will be provided.
19220
+ :param managed_storage_configuration: Encryption configuration for ECS Managed storage. Default: - no encryption will be applied.
19205
19221
  :param vpc: The VPC where your ECS instances will be running or your ENIs will be deployed. Default: - creates a new VPC with two AZs
19206
19222
 
19207
19223
  :exampleMetadata: infused
19208
19224
 
19209
19225
  Example::
19210
19226
 
19211
- # vpc: ec2.Vpc
19212
-
19213
-
19214
- cluster = ecs.Cluster(self, "Cluster",
19215
- vpc=vpc
19216
- )
19217
-
19218
- auto_scaling_group = autoscaling.AutoScalingGroup(self, "ASG",
19219
- vpc=vpc,
19220
- instance_type=ec2.InstanceType("t2.micro"),
19221
- machine_image=ecs.EcsOptimizedImage.amazon_linux2(),
19222
- min_capacity=0,
19223
- max_capacity=100
19227
+ vpc = ec2.Vpc.from_lookup(self, "Vpc",
19228
+ is_default=True
19224
19229
  )
19230
+ cluster = ecs.Cluster(self, "ECSCluster", vpc=vpc)
19225
19231
 
19226
- capacity_provider = ecs.AsgCapacityProvider(self, "AsgCapacityProvider",
19227
- auto_scaling_group=auto_scaling_group,
19228
- instance_warmup_period=300
19232
+ task_definition = ecs.TaskDefinition(self, "TD",
19233
+ compatibility=ecs.Compatibility.FARGATE,
19234
+ cpu="256",
19235
+ memory_mi_b="512"
19229
19236
  )
19230
- cluster.add_asg_capacity_provider(capacity_provider)
19231
-
19232
- task_definition = ecs.Ec2TaskDefinition(self, "TaskDef")
19233
19237
 
19234
- task_definition.add_container("web",
19235
- image=ecs.ContainerImage.from_registry("amazon/amazon-ecs-sample"),
19236
- memory_reservation_mi_b=256
19238
+ task_definition.add_container("TheContainer",
19239
+ image=ecs.ContainerImage.from_registry("foo/bar")
19237
19240
  )
19238
19241
 
19239
- ecs.Ec2Service(self, "EC2Service",
19242
+ run_task = tasks.EcsRunTask(self, "Run",
19243
+ integration_pattern=sfn.IntegrationPattern.RUN_JOB,
19240
19244
  cluster=cluster,
19241
19245
  task_definition=task_definition,
19242
- capacity_provider_strategies=[ecs.CapacityProviderStrategy(
19243
- capacity_provider=capacity_provider.capacity_provider_name,
19244
- weight=1
19245
- )
19246
- ]
19246
+ launch_target=tasks.EcsFargateLaunchTarget(),
19247
+ cpu="1024",
19248
+ memory_mi_b="1048"
19247
19249
  )
19248
19250
  '''
19249
19251
  if isinstance(capacity, dict):
@@ -19252,6 +19254,8 @@ class ClusterProps:
19252
19254
  default_cloud_map_namespace = CloudMapNamespaceOptions(**default_cloud_map_namespace)
19253
19255
  if isinstance(execute_command_configuration, dict):
19254
19256
  execute_command_configuration = ExecuteCommandConfiguration(**execute_command_configuration)
19257
+ if isinstance(managed_storage_configuration, dict):
19258
+ managed_storage_configuration = ManagedStorageConfiguration(**managed_storage_configuration)
19255
19259
  if __debug__:
19256
19260
  type_hints = typing.get_type_hints(_typecheckingstub__8819884fed76c2873e86d47e66faba011202f5d697aa512d17a66e5954cd0bf6)
19257
19261
  check_type(argname="argument capacity", value=capacity, expected_type=type_hints["capacity"])
@@ -19260,6 +19264,7 @@ class ClusterProps:
19260
19264
  check_type(argname="argument default_cloud_map_namespace", value=default_cloud_map_namespace, expected_type=type_hints["default_cloud_map_namespace"])
19261
19265
  check_type(argname="argument enable_fargate_capacity_providers", value=enable_fargate_capacity_providers, expected_type=type_hints["enable_fargate_capacity_providers"])
19262
19266
  check_type(argname="argument execute_command_configuration", value=execute_command_configuration, expected_type=type_hints["execute_command_configuration"])
19267
+ check_type(argname="argument managed_storage_configuration", value=managed_storage_configuration, expected_type=type_hints["managed_storage_configuration"])
19263
19268
  check_type(argname="argument vpc", value=vpc, expected_type=type_hints["vpc"])
19264
19269
  self._values: typing.Dict[builtins.str, typing.Any] = {}
19265
19270
  if capacity is not None:
@@ -19274,6 +19279,8 @@ class ClusterProps:
19274
19279
  self._values["enable_fargate_capacity_providers"] = enable_fargate_capacity_providers
19275
19280
  if execute_command_configuration is not None:
19276
19281
  self._values["execute_command_configuration"] = execute_command_configuration
19282
+ if managed_storage_configuration is not None:
19283
+ self._values["managed_storage_configuration"] = managed_storage_configuration
19277
19284
  if vpc is not None:
19278
19285
  self._values["vpc"] = vpc
19279
19286
 
@@ -19336,6 +19343,17 @@ class ClusterProps:
19336
19343
  result = self._values.get("execute_command_configuration")
19337
19344
  return typing.cast(typing.Optional["ExecuteCommandConfiguration"], result)
19338
19345
 
19346
+ @builtins.property
19347
+ def managed_storage_configuration(
19348
+ self,
19349
+ ) -> typing.Optional["ManagedStorageConfiguration"]:
19350
+ '''Encryption configuration for ECS Managed storage.
19351
+
19352
+ :default: - no encryption will be applied.
19353
+ '''
19354
+ result = self._values.get("managed_storage_configuration")
19355
+ return typing.cast(typing.Optional["ManagedStorageConfiguration"], result)
19356
+
19339
19357
  @builtins.property
19340
19358
  def vpc(self) -> typing.Optional[_IVpc_f30d5663]:
19341
19359
  '''The VPC where your ECS instances will be running or your ENIs will be deployed.
@@ -31804,6 +31822,68 @@ class MachineImageType(enum.Enum):
31804
31822
  '''Bottlerocket AMI.'''
31805
31823
 
31806
31824
 
31825
+ @jsii.data_type(
31826
+ jsii_type="aws-cdk-lib.aws_ecs.ManagedStorageConfiguration",
31827
+ jsii_struct_bases=[],
31828
+ name_mapping={
31829
+ "fargate_ephemeral_storage_kms_key": "fargateEphemeralStorageKmsKey",
31830
+ },
31831
+ )
31832
+ class ManagedStorageConfiguration:
31833
+ def __init__(
31834
+ self,
31835
+ *,
31836
+ fargate_ephemeral_storage_kms_key: typing.Optional[_IKey_5f11635f] = None,
31837
+ ) -> None:
31838
+ '''Kms Keys for encryption ECS managed storage.
31839
+
31840
+ :param fargate_ephemeral_storage_kms_key: KMS Key used to encrypt ECS Fargate ephemeral Storage. The configured KMS Key's policy will be modified to allow ECS to use the Key to encrypt the ephemeral Storage for this cluster. Default: No encryption will be applied
31841
+
31842
+ :exampleMetadata: infused
31843
+
31844
+ Example::
31845
+
31846
+ # key: kms.Key
31847
+
31848
+
31849
+ cluster = ecs.Cluster(self, "Cluster",
31850
+ managed_storage_configuration=ecs.ManagedStorageConfiguration(
31851
+ fargate_ephemeral_storage_kms_key=key
31852
+ )
31853
+ )
31854
+ '''
31855
+ if __debug__:
31856
+ type_hints = typing.get_type_hints(_typecheckingstub__2f9a1356d6603371cc25e0653216ab0167448ba43002bef5b32c489376e7fbb9)
31857
+ check_type(argname="argument fargate_ephemeral_storage_kms_key", value=fargate_ephemeral_storage_kms_key, expected_type=type_hints["fargate_ephemeral_storage_kms_key"])
31858
+ self._values: typing.Dict[builtins.str, typing.Any] = {}
31859
+ if fargate_ephemeral_storage_kms_key is not None:
31860
+ self._values["fargate_ephemeral_storage_kms_key"] = fargate_ephemeral_storage_kms_key
31861
+
31862
+ @builtins.property
31863
+ def fargate_ephemeral_storage_kms_key(self) -> typing.Optional[_IKey_5f11635f]:
31864
+ '''KMS Key used to encrypt ECS Fargate ephemeral Storage.
31865
+
31866
+ The configured KMS Key's policy will be modified to allow ECS to use the Key to encrypt the ephemeral Storage for this cluster.
31867
+
31868
+ :default: No encryption will be applied
31869
+
31870
+ :see: https://docs.aws.amazon.com/AmazonECS/latest/developerguide/fargate-storage-encryption.html
31871
+ '''
31872
+ result = self._values.get("fargate_ephemeral_storage_kms_key")
31873
+ return typing.cast(typing.Optional[_IKey_5f11635f], result)
31874
+
31875
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
31876
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
31877
+
31878
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
31879
+ return not (rhs == self)
31880
+
31881
+ def __repr__(self) -> str:
31882
+ return "ManagedStorageConfiguration(%s)" % ", ".join(
31883
+ k + "=" + repr(v) for k, v in self._values.items()
31884
+ )
31885
+
31886
+
31807
31887
  @jsii.data_type(
31808
31888
  jsii_type="aws-cdk-lib.aws_ecs.MemoryUtilizationScalingProps",
31809
31889
  jsii_struct_bases=[_BaseTargetTrackingProps_540ba713],
@@ -38287,6 +38367,7 @@ class Cluster(
38287
38367
  default_cloud_map_namespace: typing.Optional[typing.Union[CloudMapNamespaceOptions, typing.Dict[builtins.str, typing.Any]]] = None,
38288
38368
  enable_fargate_capacity_providers: typing.Optional[builtins.bool] = None,
38289
38369
  execute_command_configuration: typing.Optional[typing.Union[ExecuteCommandConfiguration, typing.Dict[builtins.str, typing.Any]]] = None,
38370
+ managed_storage_configuration: typing.Optional[typing.Union[ManagedStorageConfiguration, typing.Dict[builtins.str, typing.Any]]] = None,
38290
38371
  vpc: typing.Optional[_IVpc_f30d5663] = None,
38291
38372
  ) -> None:
38292
38373
  '''Constructs a new instance of the Cluster class.
@@ -38299,6 +38380,7 @@ class Cluster(
38299
38380
  :param default_cloud_map_namespace: The service discovery namespace created in this cluster. Default: - no service discovery namespace created, you can use ``addDefaultCloudMapNamespace`` to add a default service discovery namespace later.
38300
38381
  :param enable_fargate_capacity_providers: Whether to enable Fargate Capacity Providers. Default: false
38301
38382
  :param execute_command_configuration: The execute command configuration for the cluster. Default: - no configuration will be provided.
38383
+ :param managed_storage_configuration: Encryption configuration for ECS Managed storage. Default: - no encryption will be applied.
38302
38384
  :param vpc: The VPC where your ECS instances will be running or your ENIs will be deployed. Default: - creates a new VPC with two AZs
38303
38385
  '''
38304
38386
  if __debug__:
@@ -38312,6 +38394,7 @@ class Cluster(
38312
38394
  default_cloud_map_namespace=default_cloud_map_namespace,
38313
38395
  enable_fargate_capacity_providers=enable_fargate_capacity_providers,
38314
38396
  execute_command_configuration=execute_command_configuration,
38397
+ managed_storage_configuration=managed_storage_configuration,
38315
38398
  vpc=vpc,
38316
38399
  )
38317
38400
 
@@ -41573,6 +41656,7 @@ __all__ = [
41573
41656
  "LogDriverConfig",
41574
41657
  "LogDrivers",
41575
41658
  "MachineImageType",
41659
+ "ManagedStorageConfiguration",
41576
41660
  "MemoryUtilizationScalingProps",
41577
41661
  "MountPoint",
41578
41662
  "NetworkMode",
@@ -43332,6 +43416,7 @@ def _typecheckingstub__8819884fed76c2873e86d47e66faba011202f5d697aa512d17a66e595
43332
43416
  default_cloud_map_namespace: typing.Optional[typing.Union[CloudMapNamespaceOptions, typing.Dict[builtins.str, typing.Any]]] = None,
43333
43417
  enable_fargate_capacity_providers: typing.Optional[builtins.bool] = None,
43334
43418
  execute_command_configuration: typing.Optional[typing.Union[ExecuteCommandConfiguration, typing.Dict[builtins.str, typing.Any]]] = None,
43419
+ managed_storage_configuration: typing.Optional[typing.Union[ManagedStorageConfiguration, typing.Dict[builtins.str, typing.Any]]] = None,
43335
43420
  vpc: typing.Optional[_IVpc_f30d5663] = None,
43336
43421
  ) -> None:
43337
43422
  """Type checking stubs"""
@@ -44496,6 +44581,13 @@ def _typecheckingstub__4028d39adfbd4018be781b02eae5afae009ba3d6754c9cac3c26580b7
44496
44581
  """Type checking stubs"""
44497
44582
  pass
44498
44583
 
44584
+ def _typecheckingstub__2f9a1356d6603371cc25e0653216ab0167448ba43002bef5b32c489376e7fbb9(
44585
+ *,
44586
+ fargate_ephemeral_storage_kms_key: typing.Optional[_IKey_5f11635f] = None,
44587
+ ) -> None:
44588
+ """Type checking stubs"""
44589
+ pass
44590
+
44499
44591
  def _typecheckingstub__d32882694adadbb57f52a4cbf2992bb09590a6b59af9bbac933f44a4e322f934(
44500
44592
  *,
44501
44593
  disable_scale_in: typing.Optional[builtins.bool] = None,
@@ -45281,6 +45373,7 @@ def _typecheckingstub__3bfa430ae70aac83ab429fdb76501803ea8a276abbb829c3c149f8a8b
45281
45373
  default_cloud_map_namespace: typing.Optional[typing.Union[CloudMapNamespaceOptions, typing.Dict[builtins.str, typing.Any]]] = None,
45282
45374
  enable_fargate_capacity_providers: typing.Optional[builtins.bool] = None,
45283
45375
  execute_command_configuration: typing.Optional[typing.Union[ExecuteCommandConfiguration, typing.Dict[builtins.str, typing.Any]]] = None,
45376
+ managed_storage_configuration: typing.Optional[typing.Union[ManagedStorageConfiguration, typing.Dict[builtins.str, typing.Any]]] = None,
45284
45377
  vpc: typing.Optional[_IVpc_f30d5663] = None,
45285
45378
  ) -> None:
45286
45379
  """Type checking stubs"""