aws-cdk-lib 2.73.0__py3-none-any.whl → 2.76.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 (111) hide show
  1. aws_cdk/__init__.py +245 -259
  2. aws_cdk/_jsii/__init__.py +1 -1
  3. aws_cdk/_jsii/{aws-cdk-lib@2.73.0.jsii.tgz → aws-cdk-lib@2.76.0.jsii.tgz} +0 -0
  4. aws_cdk/aws_amplifyuibuilder/__init__.py +182 -214
  5. aws_cdk/aws_apigateway/__init__.py +95 -148
  6. aws_cdk/aws_appconfig/__init__.py +8 -4
  7. aws_cdk/aws_appflow/__init__.py +27 -52
  8. aws_cdk/aws_appmesh/__init__.py +91 -200
  9. aws_cdk/aws_apprunner/__init__.py +4 -16
  10. aws_cdk/aws_appstream/__init__.py +18 -82
  11. aws_cdk/aws_athena/__init__.py +18 -32
  12. aws_cdk/aws_backup/__init__.py +48 -86
  13. aws_cdk/aws_batch/__init__.py +9 -2
  14. aws_cdk/aws_billingconductor/__init__.py +12 -7
  15. aws_cdk/aws_budgets/__init__.py +8 -17
  16. aws_cdk/aws_certificatemanager/__init__.py +7 -4
  17. aws_cdk/aws_cloudfront/__init__.py +14 -11
  18. aws_cdk/aws_cloudfront_origins/__init__.py +18 -8
  19. aws_cdk/aws_cloudtrail/__init__.py +7 -14
  20. aws_cdk/aws_cloudwatch/__init__.py +63 -35
  21. aws_cdk/aws_codebuild/__init__.py +10 -13
  22. aws_cdk/aws_codecommit/__init__.py +0 -1
  23. aws_cdk/aws_codedeploy/__init__.py +165 -162
  24. aws_cdk/aws_codegurureviewer/__init__.py +4 -4
  25. aws_cdk/aws_codepipeline/__init__.py +0 -4
  26. aws_cdk/aws_codepipeline_actions/__init__.py +16 -164
  27. aws_cdk/aws_cognito/__init__.py +195 -100
  28. aws_cdk/aws_config/__init__.py +28 -51
  29. aws_cdk/aws_connectcampaigns/__init__.py +5 -6
  30. aws_cdk/aws_databrew/__init__.py +5 -6
  31. aws_cdk/aws_dlm/__init__.py +33 -71
  32. aws_cdk/aws_docdb/__init__.py +20 -76
  33. aws_cdk/aws_dynamodb/__init__.py +29 -22
  34. aws_cdk/aws_ec2/__init__.py +2414 -603
  35. aws_cdk/aws_ecr/__init__.py +1 -2
  36. aws_cdk/aws_ecr_assets/__init__.py +27 -14
  37. aws_cdk/aws_ecs/__init__.py +458 -163
  38. aws_cdk/aws_ecs_patterns/__init__.py +13 -11
  39. aws_cdk/aws_eks/__init__.py +13 -8
  40. aws_cdk/aws_elasticloadbalancing/__init__.py +16 -9
  41. aws_cdk/aws_elasticloadbalancingv2/__init__.py +142 -82
  42. aws_cdk/aws_elasticloadbalancingv2_actions/__init__.py +126 -61
  43. aws_cdk/aws_elasticsearch/__init__.py +0 -7
  44. aws_cdk/aws_emr/__init__.py +7 -16
  45. aws_cdk/aws_emrserverless/__init__.py +14 -18
  46. aws_cdk/aws_events/__init__.py +33 -29
  47. aws_cdk/aws_events_targets/__init__.py +248 -89
  48. aws_cdk/aws_frauddetector/__init__.py +3 -4
  49. aws_cdk/aws_fsx/__init__.py +13 -7
  50. aws_cdk/aws_gamelift/__init__.py +11 -20
  51. aws_cdk/aws_grafana/__init__.py +4 -4
  52. aws_cdk/aws_iam/__init__.py +21 -25
  53. aws_cdk/aws_imagebuilder/__init__.py +58 -80
  54. aws_cdk/aws_internetmonitor/__init__.py +18 -10
  55. aws_cdk/aws_iot/__init__.py +16 -10
  56. aws_cdk/aws_iotcoredeviceadvisor/__init__.py +16 -26
  57. aws_cdk/aws_iotevents/__init__.py +6 -4
  58. aws_cdk/aws_iotfleetwise/__init__.py +27 -40
  59. aws_cdk/aws_iotsitewise/__init__.py +8 -5
  60. aws_cdk/aws_iotwireless/__init__.py +14 -9
  61. aws_cdk/aws_kinesisfirehose/__init__.py +21 -38
  62. aws_cdk/aws_lambda/__init__.py +76 -53
  63. aws_cdk/aws_lambda_event_sources/__init__.py +6 -21
  64. aws_cdk/aws_logs/__init__.py +5 -7
  65. aws_cdk/aws_macie/__init__.py +28 -23
  66. aws_cdk/aws_mediaconnect/__init__.py +5 -8
  67. aws_cdk/aws_mediaconvert/__init__.py +2 -2
  68. aws_cdk/aws_medialive/__init__.py +2 -4
  69. aws_cdk/aws_mediapackage/__init__.py +9 -18
  70. aws_cdk/aws_memorydb/__init__.py +5 -10
  71. aws_cdk/aws_mwaa/__init__.py +8 -4
  72. aws_cdk/aws_neptune/__init__.py +4 -4
  73. aws_cdk/aws_networkfirewall/__init__.py +8 -4
  74. aws_cdk/aws_networkmanager/__init__.py +4 -4
  75. aws_cdk/aws_nimblestudio/__init__.py +25 -45
  76. aws_cdk/aws_opensearchservice/__init__.py +0 -1
  77. aws_cdk/aws_panorama/__init__.py +11 -12
  78. aws_cdk/aws_personalize/__init__.py +46 -72
  79. aws_cdk/aws_pinpoint/__init__.py +36 -65
  80. aws_cdk/aws_quicksight/__init__.py +9972 -13374
  81. aws_cdk/aws_rds/__init__.py +53 -22
  82. aws_cdk/aws_route53/__init__.py +8 -16
  83. aws_cdk/aws_route53_targets/__init__.py +2 -4
  84. aws_cdk/aws_s3/__init__.py +41 -90
  85. aws_cdk/aws_s3_notifications/__init__.py +0 -3
  86. aws_cdk/aws_sagemaker/__init__.py +16 -10
  87. aws_cdk/aws_secretsmanager/__init__.py +17 -14
  88. aws_cdk/aws_servicecatalog/__init__.py +60 -83
  89. aws_cdk/aws_servicediscovery/__init__.py +4 -6
  90. aws_cdk/aws_ses/__init__.py +734 -28
  91. aws_cdk/aws_sns/__init__.py +4 -8
  92. aws_cdk/aws_ssm/__init__.py +19 -23
  93. aws_cdk/aws_ssmcontacts/__init__.py +10 -6
  94. aws_cdk/aws_ssmincidents/__init__.py +2 -1
  95. aws_cdk/aws_sso/__init__.py +4 -4
  96. aws_cdk/aws_stepfunctions/__init__.py +6 -15
  97. aws_cdk/aws_stepfunctions_tasks/__init__.py +51 -24
  98. aws_cdk/aws_timestream/__init__.py +22 -28
  99. aws_cdk/aws_transfer/__init__.py +188 -86
  100. aws_cdk/aws_wafv2/__init__.py +54 -38
  101. aws_cdk/aws_xray/__init__.py +15 -22
  102. aws_cdk/cloud_assembly_schema/__init__.py +14 -6
  103. aws_cdk/custom_resources/__init__.py +2 -3
  104. aws_cdk/pipelines/__init__.py +104 -134
  105. aws_cdk/triggers/__init__.py +46 -61
  106. {aws_cdk_lib-2.73.0.dist-info → aws_cdk_lib-2.76.0.dist-info}/METADATA +47 -92
  107. {aws_cdk_lib-2.73.0.dist-info → aws_cdk_lib-2.76.0.dist-info}/RECORD +111 -111
  108. {aws_cdk_lib-2.73.0.dist-info → aws_cdk_lib-2.76.0.dist-info}/LICENSE +0 -0
  109. {aws_cdk_lib-2.73.0.dist-info → aws_cdk_lib-2.76.0.dist-info}/NOTICE +0 -0
  110. {aws_cdk_lib-2.73.0.dist-info → aws_cdk_lib-2.76.0.dist-info}/WHEEL +0 -0
  111. {aws_cdk_lib-2.73.0.dist-info → aws_cdk_lib-2.76.0.dist-info}/top_level.txt +0 -0
@@ -738,22 +738,22 @@ The feature flag changes behavior for the entire CDK project. Therefore it is no
738
738
  declare const cluster: ecs.Cluster;
739
739
 
740
740
  // Import service from EC2 service attributes
741
- const service = ecs.Ec2Service.fromEc2ServiceAttributes(stack, 'EcsService', {
741
+ const service = ecs.Ec2Service.fromEc2ServiceAttributes(this, 'EcsService', {
742
742
  serviceArn: 'arn:aws:ecs:us-west-2:123456789012:service/my-http-service',
743
743
  cluster,
744
744
  });
745
745
 
746
746
  // Import service from EC2 service ARN
747
- const service = ecs.Ec2Service.fromEc2ServiceArn(stack, 'EcsService', 'arn:aws:ecs:us-west-2:123456789012:service/my-http-service');
747
+ const service = ecs.Ec2Service.fromEc2ServiceArn(this, 'EcsService', 'arn:aws:ecs:us-west-2:123456789012:service/my-http-service');
748
748
 
749
749
  // Import service from Fargate service attributes
750
- const service = ecs.FargateService.fromFargateServiceAttributes(stack, 'EcsService', {
750
+ const service = ecs.FargateService.fromFargateServiceAttributes(this, 'EcsService', {
751
751
  serviceArn: 'arn:aws:ecs:us-west-2:123456789012:service/my-http-service',
752
752
  cluster,
753
753
  });
754
754
 
755
755
  // Import service from Fargate service ARN
756
- const service = ecs.FargateService.fromFargateServiceArn(stack, 'EcsService', 'arn:aws:ecs:us-west-2:123456789012:service/my-http-service');
756
+ const service = ecs.FargateService.fromFargateServiceArn(this, 'EcsService', 'arn:aws:ecs:us-west-2:123456789012:service/my-http-service');
757
757
  ```
758
758
 
759
759
  ## Task Auto-Scaling
@@ -1168,11 +1168,10 @@ For more information visit https://docs.aws.amazon.com/AmazonECS/latest/develope
1168
1168
  When the service does not have a capacity provider strategy, the cluster's default capacity provider strategy will be used. Default Capacity Provider Strategy can be added by using the method `addDefaultCapacityProviderStrategy`. A capacity provider strategy cannot contain a mix of EC2 Autoscaling Group capacity providers and Fargate providers.
1169
1169
 
1170
1170
  ```python
1171
- # Example automatically generated from non-compiling source. May contain errors.
1172
- # capacity_provider: ecs.CapacityProvider
1171
+ # capacity_provider: ecs.AsgCapacityProvider
1173
1172
 
1174
1173
 
1175
- cluster = ecs.Cluster(stack, "EcsCluster",
1174
+ cluster = ecs.Cluster(self, "EcsCluster",
1176
1175
  enable_fargate_capacity_providers=True
1177
1176
  )
1178
1177
  cluster.add_asg_capacity_provider(capacity_provider)
@@ -1182,11 +1181,10 @@ cluster.add_default_capacity_provider_strategy([capacity_provider="FARGATE", bas
1182
1181
  ```
1183
1182
 
1184
1183
  ```python
1185
- # Example automatically generated from non-compiling source. May contain errors.
1186
- # capacity_provider: ecs.CapacityProvider
1184
+ # capacity_provider: ecs.AsgCapacityProvider
1187
1185
 
1188
1186
 
1189
- cluster = ecs.Cluster(stack, "EcsCluster",
1187
+ cluster = ecs.Cluster(self, "EcsCluster",
1190
1188
  enable_fargate_capacity_providers=True
1191
1189
  )
1192
1190
  cluster.add_asg_capacity_provider(capacity_provider)
@@ -1303,19 +1301,18 @@ To enable Service Connect, you must have created a CloudMap namespace. The CDK c
1303
1301
  or you can specify a custom namespace. You must also have created a named port mapping on at least one container in your Task Definition.
1304
1302
 
1305
1303
  ```python
1306
- # Example automatically generated from non-compiling source. May contain errors.
1307
1304
  # cluster: ecs.Cluster
1308
1305
  # task_definition: ecs.TaskDefinition
1309
- # container: ecs.ContainerDefinition
1306
+ # container_options: ecs.ContainerDefinitionOptions
1307
+
1310
1308
 
1309
+ container = task_definition.add_container("MyContainer", container_options)
1311
1310
 
1312
1311
  container.add_port_mappings(
1313
1312
  name="api",
1314
1313
  container_port=8080
1315
1314
  )
1316
1315
 
1317
- task_definition.add_container(container)
1318
-
1319
1316
  cluster.add_default_cloud_map_namespace(
1320
1317
  name="local"
1321
1318
  )
@@ -1340,7 +1337,10 @@ be routed to the container's port 8080.
1340
1337
  To opt a service into using service connect without advertising a port, simply call the 'enableServiceConnect' method on an initialized service.
1341
1338
 
1342
1339
  ```python
1343
- # Example automatically generated from non-compiling source. May contain errors.
1340
+ # cluster: ecs.Cluster
1341
+ # task_definition: ecs.TaskDefinition
1342
+
1343
+
1344
1344
  service = ecs.FargateService(self, "Service",
1345
1345
  cluster=cluster,
1346
1346
  task_definition=task_definition
@@ -1351,12 +1351,15 @@ service.enable_service_connect()
1351
1351
  Service Connect also allows custom logging, Service Discovery name, and configuration of the port where service connect traffic is received.
1352
1352
 
1353
1353
  ```python
1354
- # Example automatically generated from non-compiling source. May contain errors.
1354
+ # cluster: ecs.Cluster
1355
+ # task_definition: ecs.TaskDefinition
1356
+
1357
+
1355
1358
  custom_service = ecs.FargateService(self, "CustomizedService",
1356
1359
  cluster=cluster,
1357
1360
  task_definition=task_definition,
1358
1361
  service_connect_configuration=ecs.ServiceConnectProps(
1359
- log_driver=ecs.LogDrivers.awslogs(
1362
+ log_driver=ecs.LogDrivers.aws_logs(
1360
1363
  stream_prefix="sc-traffic"
1361
1364
  ),
1362
1365
  services=[ecs.ServiceConnectService(
@@ -1385,6 +1388,23 @@ task_definition.add_container("TheContainer",
1385
1388
  pseudo_terminal=True
1386
1389
  )
1387
1390
  ```
1391
+
1392
+ ## Specify a container ulimit
1393
+
1394
+ You can specify a container `ulimits` by specifying them in the `ulimits` option while adding the container
1395
+ to the task definition.
1396
+
1397
+ ```python
1398
+ task_definition = ecs.Ec2TaskDefinition(self, "TaskDef")
1399
+ task_definition.add_container("TheContainer",
1400
+ image=ecs.ContainerImage.from_registry("example-image"),
1401
+ ulimits=[ecs.Ulimit(
1402
+ hard_limit=128,
1403
+ name=ecs.UlimitName.RSS,
1404
+ soft_limit=128
1405
+ )]
1406
+ )
1407
+ ```
1388
1408
  '''
1389
1409
  import abc
1390
1410
  import builtins
@@ -3234,8 +3254,12 @@ class AssetImageProps(_DockerImageAssetOptions_9580cd76):
3234
3254
 
3235
3255
  Example::
3236
3256
 
3237
- # Example automatically generated from non-compiling source. May contain errors.
3238
- "MY_SECRET"DockerBuildSecret.from_src("file.txt")
3257
+ from aws_cdk import DockerBuildSecret
3258
+
3259
+
3260
+ build_secrets = {
3261
+ "MY_SECRET": DockerBuildSecret.from_src("file.txt")
3262
+ }
3239
3263
  '''
3240
3264
  result = self._values.get("build_secrets")
3241
3265
  return typing.cast(typing.Optional[typing.Mapping[builtins.str, builtins.str]], result)
@@ -5078,7 +5102,7 @@ class CfnCapacityProvider(
5078
5102
 
5079
5103
  :param auto_scaling_group_arn: The Amazon Resource Name (ARN) that identifies the Auto Scaling group.
5080
5104
  :param managed_scaling: The managed scaling settings for the Auto Scaling group capacity provider.
5081
- :param managed_termination_protection: The managed termination protection setting to use for the Auto Scaling group capacity provider. This determines whether the Auto Scaling group has managed termination protection. The default is off. .. epigraph:: When using managed termination protection, managed scaling must also be used otherwise managed termination protection doesn't work. When managed termination protection is on, Amazon ECS prevents the Amazon EC2 instances in an Auto Scaling group that contain tasks from being terminated during a scale-in action. The Auto Scaling group and each instance in the Auto Scaling group must have instance protection from scale-in actions enabled as well. For more information, see `Instance Protection <https://docs.aws.amazon.com/autoscaling/ec2/userguide/as-instance-termination.html#instance-protection>`_ in the *AWS Auto Scaling User Guide* . When managed termination protection is off, your Amazon EC2 instances aren't protected from termination when the Auto Scaling group scales in.
5105
+ :param managed_termination_protection: The managed termination protection setting to use for the Auto Scaling group capacity provider. This determines whether the Auto Scaling group has managed termination protection. The default is off. .. epigraph:: When using managed termination protection, managed scaling must also be used otherwise managed termination protection doesn't work. When managed termination protection is on, Amazon ECS prevents the Amazon EC2 instances in an Auto Scaling group that contain tasks from being terminated during a scale-in action. The Auto Scaling group and each instance in the Auto Scaling group must have instance protection from scale-in actions on as well. For more information, see `Instance Protection <https://docs.aws.amazon.com/autoscaling/ec2/userguide/as-instance-termination.html#instance-protection>`_ in the *AWS Auto Scaling User Guide* . When managed termination protection is off, your Amazon EC2 instances aren't protected from termination when the Auto Scaling group scales in.
5082
5106
 
5083
5107
  :link: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-capacityprovider-autoscalinggroupprovider.html
5084
5108
  :exampleMetadata: fixture=_generated
@@ -5146,7 +5170,7 @@ class CfnCapacityProvider(
5146
5170
 
5147
5171
  When using managed termination protection, managed scaling must also be used otherwise managed termination protection doesn't work.
5148
5172
 
5149
- When managed termination protection is on, Amazon ECS prevents the Amazon EC2 instances in an Auto Scaling group that contain tasks from being terminated during a scale-in action. The Auto Scaling group and each instance in the Auto Scaling group must have instance protection from scale-in actions enabled as well. For more information, see `Instance Protection <https://docs.aws.amazon.com/autoscaling/ec2/userguide/as-instance-termination.html#instance-protection>`_ in the *AWS Auto Scaling User Guide* .
5173
+ When managed termination protection is on, Amazon ECS prevents the Amazon EC2 instances in an Auto Scaling group that contain tasks from being terminated during a scale-in action. The Auto Scaling group and each instance in the Auto Scaling group must have instance protection from scale-in actions on as well. For more information, see `Instance Protection <https://docs.aws.amazon.com/autoscaling/ec2/userguide/as-instance-termination.html#instance-protection>`_ in the *AWS Auto Scaling User Guide* .
5150
5174
 
5151
5175
  When managed termination protection is off, your Amazon EC2 instances aren't protected from termination when the Auto Scaling group scales in.
5152
5176
 
@@ -5189,7 +5213,7 @@ class CfnCapacityProvider(
5189
5213
  ) -> None:
5190
5214
  '''The managed scaling settings for the Auto Scaling group capacity provider.
5191
5215
 
5192
- When managed scaling is enabled, Amazon ECS manages the scale-in and scale-out actions of the Auto Scaling group. Amazon ECS manages a target tracking scaling policy using an Amazon ECS managed CloudWatch metric with the specified ``targetCapacity`` value as the target value for the metric. For more information, see `Using managed scaling <https://docs.aws.amazon.com/AmazonECS/latest/developerguide/asg-capacity-providers.html#asg-capacity-providers-managed-scaling>`_ in the *Amazon Elastic Container Service Developer Guide* .
5216
+ When managed scaling is turned on, Amazon ECS manages the scale-in and scale-out actions of the Auto Scaling group. Amazon ECS manages a target tracking scaling policy using an Amazon ECS managed CloudWatch metric with the specified ``targetCapacity`` value as the target value for the metric. For more information, see `Using managed scaling <https://docs.aws.amazon.com/AmazonECS/latest/developerguide/asg-capacity-providers.html#asg-capacity-providers-managed-scaling>`_ in the *Amazon Elastic Container Service Developer Guide* .
5193
5217
 
5194
5218
  If managed scaling is off, the user must manage the scaling of the Auto Scaling group.
5195
5219
 
@@ -5908,8 +5932,8 @@ class CfnCluster(
5908
5932
 
5909
5933
  This parameter is used to turn on CloudWatch Container Insights for a cluster.
5910
5934
 
5911
- :param name: The name of the cluster setting. The only supported value is ``containerInsights`` .
5912
- :param value: The value to set for the cluster setting. The supported values are ``enabled`` and ``disabled`` . If ``enabled`` is specified, CloudWatch Container Insights will be enabled for the cluster, otherwise it will be off unless the ``containerInsights`` account setting is turned on. If a cluster value is specified, it will override the ``containerInsights`` value set with `PutAccountSetting <https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_PutAccountSetting.html>`_ or `PutAccountSettingDefault <https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_PutAccountSettingDefault.html>`_ .
5935
+ :param name: The name of the cluster setting. The value is ``containerInsights`` .
5936
+ :param value: The value to set for the cluster setting. The supported values are ``enabled`` and ``disabled`` . If you set ``name`` to ``containerInsights`` and ``value`` to ``enabled`` , CloudWatch Container Insights will be on for the cluster, otherwise it will be off unless the ``containerInsights`` account setting is turned on. If a cluster value is specified, it will override the ``containerInsights`` value set with `PutAccountSetting <https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_PutAccountSetting.html>`_ or `PutAccountSettingDefault <https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_PutAccountSettingDefault.html>`_ .
5913
5937
 
5914
5938
  :link: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-cluster-clustersettings.html
5915
5939
  :exampleMetadata: fixture=_generated
@@ -5939,7 +5963,7 @@ class CfnCluster(
5939
5963
  def name(self) -> typing.Optional[builtins.str]:
5940
5964
  '''The name of the cluster setting.
5941
5965
 
5942
- The only supported value is ``containerInsights`` .
5966
+ The value is ``containerInsights`` .
5943
5967
 
5944
5968
  :link: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-cluster-clustersettings.html#cfn-ecs-cluster-clustersettings-name
5945
5969
  '''
@@ -5948,9 +5972,9 @@ class CfnCluster(
5948
5972
 
5949
5973
  @builtins.property
5950
5974
  def value(self) -> typing.Optional[builtins.str]:
5951
- '''The value to set for the cluster setting.
5975
+ '''The value to set for the cluster setting. The supported values are ``enabled`` and ``disabled`` .
5952
5976
 
5953
- The supported values are ``enabled`` and ``disabled`` . If ``enabled`` is specified, CloudWatch Container Insights will be enabled for the cluster, otherwise it will be off unless the ``containerInsights`` account setting is turned on. If a cluster value is specified, it will override the ``containerInsights`` value set with `PutAccountSetting <https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_PutAccountSetting.html>`_ or `PutAccountSettingDefault <https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_PutAccountSettingDefault.html>`_ .
5977
+ If you set ``name`` to ``containerInsights`` and ``value`` to ``enabled`` , CloudWatch Container Insights will be on for the cluster, otherwise it will be off unless the ``containerInsights`` account setting is turned on. If a cluster value is specified, it will override the ``containerInsights`` value set with `PutAccountSetting <https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_PutAccountSetting.html>`_ or `PutAccountSettingDefault <https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_PutAccountSettingDefault.html>`_ .
5954
5978
 
5955
5979
  :link: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-cluster-clustersettings.html#cfn-ecs-cluster-clustersettings-value
5956
5980
  '''
@@ -6223,7 +6247,7 @@ class CfnCluster(
6223
6247
 
6224
6248
  Tasks that run in a namespace can use short names to connect to services in the namespace. Tasks can connect to services across all of the clusters in the namespace. Tasks connect through a managed proxy container that collects logs and metrics for increased visibility. Only the tasks that Amazon ECS services create are supported with Service Connect. For more information, see `Service Connect <https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-connect.html>`_ in the *Amazon Elastic Container Service Developer Guide* .
6225
6249
 
6226
- :param namespace: The namespace name or full Amazon Resource Name (ARN) of the AWS Cloud Map namespace that's used when you create a service and don't specify a Service Connect configuration. The namespace name can include up to 1024 characters. The name is case-sensitive. The name can't include hyphens (-), tilde (~), greater than (>), less than (<), or slash (/). If you enter an existing namespace name or ARN, then that namespace will be used. Any namespace type is supported. The namespace must be in this account and this AWS Region. If you enter a new name, a AWS Cloud Map namespace will be created. Amazon ECS creates a AWS Cloud Map namespace with the "API calls" method of instance discovery only. This instance discovery method is the "HTTP" namespace type in the AWS Command Line Interface . Other types of instance discovery aren't used by Service Connect. If you update the service with an empty string ``""`` for the namespace name, the cluster configuration for Service Connect is removed. Note that the namespace will remain in AWS Cloud Map and must be deleted separately. For more information about AWS Cloud Map , see `Working with Services <https://docs.aws.amazon.com/>`_ in the *AWS Cloud Map Developer Guide* .
6250
+ :param namespace: The namespace name or full Amazon Resource Name (ARN) of the AWS Cloud Map namespace that's used when you create a service and don't specify a Service Connect configuration. The namespace name can include up to 1024 characters. The name is case-sensitive. The name can't include hyphens (-), tilde (~), greater than (>), less than (<), or slash (/). If you enter an existing namespace name or ARN, then that namespace will be used. Any namespace type is supported. The namespace must be in this account and this AWS Region. If you enter a new name, a AWS Cloud Map namespace will be created. Amazon ECS creates a AWS Cloud Map namespace with the "API calls" method of instance discovery only. This instance discovery method is the "HTTP" namespace type in the AWS Command Line Interface . Other types of instance discovery aren't used by Service Connect. If you update the service with an empty string ``""`` for the namespace name, the cluster configuration for Service Connect is removed. Note that the namespace will remain in AWS Cloud Map and must be deleted separately. For more information about AWS Cloud Map , see `Working with Services <https://docs.aws.amazon.com/cloud-map/latest/dg/working-with-services.html>`_ in the *AWS Cloud Map Developer Guide* .
6227
6251
 
6228
6252
  :link: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-cluster-serviceconnectdefaults.html
6229
6253
  :exampleMetadata: fixture=_generated
@@ -6257,7 +6281,7 @@ class CfnCluster(
6257
6281
 
6258
6282
  If you update the service with an empty string ``""`` for the namespace name, the cluster configuration for Service Connect is removed. Note that the namespace will remain in AWS Cloud Map and must be deleted separately.
6259
6283
 
6260
- For more information about AWS Cloud Map , see `Working with Services <https://docs.aws.amazon.com/>`_ in the *AWS Cloud Map Developer Guide* .
6284
+ For more information about AWS Cloud Map , see `Working with Services <https://docs.aws.amazon.com/cloud-map/latest/dg/working-with-services.html>`_ in the *AWS Cloud Map Developer Guide* .
6261
6285
 
6262
6286
  :link: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-cluster-serviceconnectdefaults.html#cfn-ecs-cluster-serviceconnectdefaults-namespace
6263
6287
  '''
@@ -7239,7 +7263,7 @@ class CfnService(
7239
7263
  :param deployment_controller: The deployment controller to use for the service. If no deployment controller is specified, the default value of ``ECS`` is used.
7240
7264
  :param desired_count: The number of instantiations of the specified task definition to place and keep running on your cluster. For new services, if a desired count is not specified, a default value of ``1`` is used. When using the ``DAEMON`` scheduling strategy, the desired count is not required. For existing services, if a desired count is not specified, it is omitted from the operation.
7241
7265
  :param enable_ecs_managed_tags: Specifies whether to turn on Amazon ECS managed tags for the tasks within the service. For more information, see `Tagging your Amazon ECS resources <https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-using-tags.html>`_ in the *Amazon Elastic Container Service Developer Guide* .
7242
- :param enable_execute_command: Determines whether the execute command functionality is enabled for the service. If ``true`` , the execute command functionality is enabled for all containers in tasks as part of the service.
7266
+ :param enable_execute_command: Determines whether the execute command functionality is turned on for the service. If ``true`` , the execute command functionality is turned on for all containers in tasks as part of the service.
7243
7267
  :param health_check_grace_period_seconds: The period of time, in seconds, that the Amazon ECS service scheduler ignores unhealthy Elastic Load Balancing target health checks after a task has first started. This is only used when your service is configured to use a load balancer. If your service has a load balancer defined and you don't specify a health check grace period value, the default value of ``0`` is used. If you do not use an Elastic Load Balancing, we recommend that you use the ``startPeriod`` in the task definition health check parameters. For more information, see `Health check <https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_HealthCheck.html>`_ . If your service's tasks take a while to start and respond to Elastic Load Balancing health checks, you can specify a health check grace period of up to 2,147,483,647 seconds (about 69 years). During that time, the Amazon ECS service scheduler ignores health check status. This grace period can prevent the service scheduler from marking tasks as unhealthy and stopping them before they have time to come up.
7244
7268
  :param launch_type: The launch type on which to run your service. For more information, see `Amazon ECS Launch Types <https://docs.aws.amazon.com/AmazonECS/latest/developerguide/launch_types.html>`_ in the *Amazon Elastic Container Service Developer Guide* .
7245
7269
  :param load_balancers: A list of load balancer objects to associate with the service. If you specify the ``Role`` property, ``LoadBalancers`` must be specified as well. For information about the number of load balancers that you can specify per service, see `Service Load Balancing <https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-load-balancing.html>`_ in the *Amazon Elastic Container Service Developer Guide* .
@@ -7254,7 +7278,7 @@ class CfnService(
7254
7278
  :param service_name: The name of your service. Up to 255 letters (uppercase and lowercase), numbers, underscores, and hyphens are allowed. Service names must be unique within a cluster, but you can have similarly named services in multiple clusters within a Region or across multiple Regions. .. epigraph:: The stack update fails if you change any properties that require replacement and the ``ServiceName`` is configured. This is because AWS CloudFormation creates the replacement service first, but each ``ServiceName`` must be unique in the cluster.
7255
7279
  :param service_registries: The details of the service discovery registry to associate with this service. For more information, see `Service discovery <https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-discovery.html>`_ . .. epigraph:: Each service may be associated with one service registry. Multiple service registries for each service isn't supported.
7256
7280
  :param tags: The metadata that you apply to the service to help you categorize and organize them. Each tag consists of a key and an optional value, both of which you define. When a service is deleted, the tags are deleted as well. The following basic restrictions apply to tags: - Maximum number of tags per resource - 50 - For each resource, each tag key must be unique, and each tag key can have only one value. - Maximum key length - 128 Unicode characters in UTF-8 - Maximum value length - 256 Unicode characters in UTF-8 - If your tagging schema is used across multiple services and resources, remember that other services may have restrictions on allowed characters. Generally allowed characters are: letters, numbers, and spaces representable in UTF-8, and the following characters: + - = . _ : / @. - Tag keys and values are case-sensitive. - Do not use ``aws:`` , ``AWS:`` , or any upper or lowercase combination of such as a prefix for either keys or values as it is reserved for AWS use. You cannot edit or delete tag keys or values with this prefix. Tags with this prefix do not count against your tags per resource limit.
7257
- :param task_definition: The ``family`` and ``revision`` ( ``family:revision`` ) or full ARN of the task definition to run in your service. If a ``revision`` isn't specified, the latest ``ACTIVE`` revision is used. A task definition must be specified if the service uses either the ``ECS`` or ``CODE_DEPLOY`` deployment controllers.
7281
+ :param task_definition: The ``family`` and ``revision`` ( ``family:revision`` ) or full ARN of the task definition to run in your service. If a ``revision`` isn't specified, the latest ``ACTIVE`` revision is used. A task definition must be specified if the service uses either the ``ECS`` or ``CODE_DEPLOY`` deployment controllers. For more information about deployment types, see `Amazon ECS deployment types <https://docs.aws.amazon.com/AmazonECS/latest/developerguide/deployment-types.html>`_ .
7258
7282
  '''
7259
7283
  if __debug__:
7260
7284
  type_hints = typing.get_type_hints(_typecheckingstub__ec1192a1d20e03deef75c7fa1457b92ecf9506c5c5df97b5a4473fc3a9a714ef)
@@ -7496,9 +7520,9 @@ class CfnService(
7496
7520
  def enable_execute_command(
7497
7521
  self,
7498
7522
  ) -> typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]]:
7499
- '''Determines whether the execute command functionality is enabled for the service.
7523
+ '''Determines whether the execute command functionality is turned on for the service.
7500
7524
 
7501
- If ``true`` , the execute command functionality is enabled for all containers in tasks as part of the service.
7525
+ If ``true`` , the execute command functionality is turned on for all containers in tasks as part of the service.
7502
7526
 
7503
7527
  :link: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecs-service.html#cfn-ecs-service-enableexecutecommand
7504
7528
  '''
@@ -7811,6 +7835,8 @@ class CfnService(
7811
7835
 
7812
7836
  A task definition must be specified if the service uses either the ``ECS`` or ``CODE_DEPLOY`` deployment controllers.
7813
7837
 
7838
+ For more information about deployment types, see `Amazon ECS deployment types <https://docs.aws.amazon.com/AmazonECS/latest/developerguide/deployment-types.html>`_ .
7839
+
7814
7840
  :link: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecs-service.html#cfn-ecs-service-taskdefinition
7815
7841
  '''
7816
7842
  return typing.cast(typing.Optional[builtins.str], jsii.get(self, "taskDefinition"))
@@ -8147,7 +8173,7 @@ class CfnService(
8147
8173
 
8148
8174
  The deployment circuit breaker can only be used for services using the rolling update ( ``ECS`` ) deployment type.
8149
8175
 
8150
- The *deployment circuit breaker* determines whether a service deployment will fail if the service can't reach a steady state. If enabled, a service deployment will transition to a failed state and stop launching new tasks. You can also configure Amazon ECS to roll back your service to the last completed deployment after a failure. For more information, see `Rolling update <https://docs.aws.amazon.com/AmazonECS/latest/developerguide/deployment-type-ecs.html>`_ in the *Amazon Elastic Container Service Developer Guide* .
8176
+ The *deployment circuit breaker* determines whether a service deployment will fail if the service can't reach a steady state. If it is turned on, a service deployment will transition to a failed state and stop launching new tasks. You can also configure Amazon ECS to roll back your service to the last completed deployment after a failure. For more information, see `Rolling update <https://docs.aws.amazon.com/AmazonECS/latest/developerguide/deployment-type-ecs.html>`_ in the *Amazon Elastic Container Service Developer Guide* .
8151
8177
 
8152
8178
  :param enable: Determines whether to use the deployment circuit breaker logic for the service.
8153
8179
  :param rollback: Determines whether to configure Amazon ECS to roll back the service if a service deployment fails. If rollback is on, when a service deployment fails, the service is rolled back to the last deployment that completed successfully.
@@ -9072,7 +9098,7 @@ class CfnService(
9072
9098
 
9073
9099
  :param enabled: Specifies whether to use Service Connect with this service.
9074
9100
  :param log_configuration: ``CfnService.ServiceConnectConfigurationProperty.LogConfiguration``.
9075
- :param namespace: The namespace name or full Amazon Resource Name (ARN) of the AWS Cloud Map namespace for use with Service Connect. The namespace must be in the same AWS Region as the Amazon ECS service and cluster. The type of namespace doesn't affect Service Connect. For more information about AWS Cloud Map , see `Working with Services <https://docs.aws.amazon.com/>`_ in the *AWS Cloud Map Developer Guide* .
9101
+ :param namespace: The namespace name or full Amazon Resource Name (ARN) of the AWS Cloud Map namespace for use with Service Connect. The namespace must be in the same AWS Region as the Amazon ECS service and cluster. The type of namespace doesn't affect Service Connect. For more information about AWS Cloud Map , see `Working with Services <https://docs.aws.amazon.com/cloud-map/latest/dg/working-with-services.html>`_ in the *AWS Cloud Map Developer Guide* .
9076
9102
  :param services: The list of Service Connect service objects. These are names and aliases (also known as endpoints) that are used by other Amazon ECS services to connect to this service. This field is not required for a "client" Amazon ECS service that's a member of a namespace only to connect to other services within the namespace. An example of this would be a frontend application that accepts incoming requests from either a load balancer that's attached to the service or by other means. An object selects a port from the task definition, assigns a name for the AWS Cloud Map service, and a list of aliases (endpoints) and ports for client applications to refer to this service.
9077
9103
 
9078
9104
  :link: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-service-serviceconnectconfiguration.html
@@ -9155,7 +9181,7 @@ class CfnService(
9155
9181
  def namespace(self) -> typing.Optional[builtins.str]:
9156
9182
  '''The namespace name or full Amazon Resource Name (ARN) of the AWS Cloud Map namespace for use with Service Connect.
9157
9183
 
9158
- The namespace must be in the same AWS Region as the Amazon ECS service and cluster. The type of namespace doesn't affect Service Connect. For more information about AWS Cloud Map , see `Working with Services <https://docs.aws.amazon.com/>`_ in the *AWS Cloud Map Developer Guide* .
9184
+ The namespace must be in the same AWS Region as the Amazon ECS service and cluster. The type of namespace doesn't affect Service Connect. For more information about AWS Cloud Map , see `Working with Services <https://docs.aws.amazon.com/cloud-map/latest/dg/working-with-services.html>`_ in the *AWS Cloud Map Developer Guide* .
9159
9185
 
9160
9186
  :link: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-service-serviceconnectconfiguration.html#cfn-ecs-service-serviceconnectconfiguration-namespace
9161
9187
  '''
@@ -9502,7 +9528,7 @@ class CfnServiceProps:
9502
9528
  :param deployment_controller: The deployment controller to use for the service. If no deployment controller is specified, the default value of ``ECS`` is used.
9503
9529
  :param desired_count: The number of instantiations of the specified task definition to place and keep running on your cluster. For new services, if a desired count is not specified, a default value of ``1`` is used. When using the ``DAEMON`` scheduling strategy, the desired count is not required. For existing services, if a desired count is not specified, it is omitted from the operation.
9504
9530
  :param enable_ecs_managed_tags: Specifies whether to turn on Amazon ECS managed tags for the tasks within the service. For more information, see `Tagging your Amazon ECS resources <https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-using-tags.html>`_ in the *Amazon Elastic Container Service Developer Guide* .
9505
- :param enable_execute_command: Determines whether the execute command functionality is enabled for the service. If ``true`` , the execute command functionality is enabled for all containers in tasks as part of the service.
9531
+ :param enable_execute_command: Determines whether the execute command functionality is turned on for the service. If ``true`` , the execute command functionality is turned on for all containers in tasks as part of the service.
9506
9532
  :param health_check_grace_period_seconds: The period of time, in seconds, that the Amazon ECS service scheduler ignores unhealthy Elastic Load Balancing target health checks after a task has first started. This is only used when your service is configured to use a load balancer. If your service has a load balancer defined and you don't specify a health check grace period value, the default value of ``0`` is used. If you do not use an Elastic Load Balancing, we recommend that you use the ``startPeriod`` in the task definition health check parameters. For more information, see `Health check <https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_HealthCheck.html>`_ . If your service's tasks take a while to start and respond to Elastic Load Balancing health checks, you can specify a health check grace period of up to 2,147,483,647 seconds (about 69 years). During that time, the Amazon ECS service scheduler ignores health check status. This grace period can prevent the service scheduler from marking tasks as unhealthy and stopping them before they have time to come up.
9507
9533
  :param launch_type: The launch type on which to run your service. For more information, see `Amazon ECS Launch Types <https://docs.aws.amazon.com/AmazonECS/latest/developerguide/launch_types.html>`_ in the *Amazon Elastic Container Service Developer Guide* .
9508
9534
  :param load_balancers: A list of load balancer objects to associate with the service. If you specify the ``Role`` property, ``LoadBalancers`` must be specified as well. For information about the number of load balancers that you can specify per service, see `Service Load Balancing <https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-load-balancing.html>`_ in the *Amazon Elastic Container Service Developer Guide* .
@@ -9517,7 +9543,7 @@ class CfnServiceProps:
9517
9543
  :param service_name: The name of your service. Up to 255 letters (uppercase and lowercase), numbers, underscores, and hyphens are allowed. Service names must be unique within a cluster, but you can have similarly named services in multiple clusters within a Region or across multiple Regions. .. epigraph:: The stack update fails if you change any properties that require replacement and the ``ServiceName`` is configured. This is because AWS CloudFormation creates the replacement service first, but each ``ServiceName`` must be unique in the cluster.
9518
9544
  :param service_registries: The details of the service discovery registry to associate with this service. For more information, see `Service discovery <https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-discovery.html>`_ . .. epigraph:: Each service may be associated with one service registry. Multiple service registries for each service isn't supported.
9519
9545
  :param tags: The metadata that you apply to the service to help you categorize and organize them. Each tag consists of a key and an optional value, both of which you define. When a service is deleted, the tags are deleted as well. The following basic restrictions apply to tags: - Maximum number of tags per resource - 50 - For each resource, each tag key must be unique, and each tag key can have only one value. - Maximum key length - 128 Unicode characters in UTF-8 - Maximum value length - 256 Unicode characters in UTF-8 - If your tagging schema is used across multiple services and resources, remember that other services may have restrictions on allowed characters. Generally allowed characters are: letters, numbers, and spaces representable in UTF-8, and the following characters: + - = . _ : / @. - Tag keys and values are case-sensitive. - Do not use ``aws:`` , ``AWS:`` , or any upper or lowercase combination of such as a prefix for either keys or values as it is reserved for AWS use. You cannot edit or delete tag keys or values with this prefix. Tags with this prefix do not count against your tags per resource limit.
9520
- :param task_definition: The ``family`` and ``revision`` ( ``family:revision`` ) or full ARN of the task definition to run in your service. If a ``revision`` isn't specified, the latest ``ACTIVE`` revision is used. A task definition must be specified if the service uses either the ``ECS`` or ``CODE_DEPLOY`` deployment controllers.
9546
+ :param task_definition: The ``family`` and ``revision`` ( ``family:revision`` ) or full ARN of the task definition to run in your service. If a ``revision`` isn't specified, the latest ``ACTIVE`` revision is used. A task definition must be specified if the service uses either the ``ECS`` or ``CODE_DEPLOY`` deployment controllers. For more information about deployment types, see `Amazon ECS deployment types <https://docs.aws.amazon.com/AmazonECS/latest/developerguide/deployment-types.html>`_ .
9521
9547
 
9522
9548
  :link: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecs-service.html
9523
9549
  :exampleMetadata: fixture=_generated
@@ -9782,9 +9808,9 @@ class CfnServiceProps:
9782
9808
  def enable_execute_command(
9783
9809
  self,
9784
9810
  ) -> typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]]:
9785
- '''Determines whether the execute command functionality is enabled for the service.
9811
+ '''Determines whether the execute command functionality is turned on for the service.
9786
9812
 
9787
- If ``true`` , the execute command functionality is enabled for all containers in tasks as part of the service.
9813
+ If ``true`` , the execute command functionality is turned on for all containers in tasks as part of the service.
9788
9814
 
9789
9815
  :link: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecs-service.html#cfn-ecs-service-enableexecutecommand
9790
9816
  '''
@@ -9996,6 +10022,8 @@ class CfnServiceProps:
9996
10022
 
9997
10023
  A task definition must be specified if the service uses either the ``ECS`` or ``CODE_DEPLOY`` deployment controllers.
9998
10024
 
10025
+ For more information about deployment types, see `Amazon ECS deployment types <https://docs.aws.amazon.com/AmazonECS/latest/developerguide/deployment-types.html>`_ .
10026
+
9999
10027
  :link: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecs-service.html#cfn-ecs-service-taskdefinition
10000
10028
  '''
10001
10029
  result = self._values.get("task_definition")
@@ -10779,8 +10807,8 @@ class CfnTaskDefinition(
10779
10807
  ) -> None:
10780
10808
  '''The authorization configuration details for the Amazon EFS file system.
10781
10809
 
10782
- :param access_point_id: The Amazon EFS access point ID to use. If an access point is specified, the root directory value specified in the ``EFSVolumeConfiguration`` must either be omitted or set to ``/`` which will enforce the path set on the EFS access point. If an access point is used, transit encryption must be enabled in the ``EFSVolumeConfiguration`` . For more information, see `Working with Amazon EFS access points <https://docs.aws.amazon.com/efs/latest/ug/efs-access-points.html>`_ in the *Amazon Elastic File System User Guide* .
10783
- :param iam: Determines whether to use the Amazon ECS task role defined in a task definition when mounting the Amazon EFS file system. If enabled, transit encryption must be enabled in the ``EFSVolumeConfiguration`` . If this parameter is omitted, the default value of ``DISABLED`` is used. For more information, see `Using Amazon EFS access points <https://docs.aws.amazon.com/AmazonECS/latest/developerguide/efs-volumes.html#efs-volume-accesspoints>`_ in the *Amazon Elastic Container Service Developer Guide* .
10810
+ :param access_point_id: The Amazon EFS access point ID to use. If an access point is specified, the root directory value specified in the ``EFSVolumeConfiguration`` must either be omitted or set to ``/`` which will enforce the path set on the EFS access point. If an access point is used, transit encryption must be on in the ``EFSVolumeConfiguration`` . For more information, see `Working with Amazon EFS access points <https://docs.aws.amazon.com/efs/latest/ug/efs-access-points.html>`_ in the *Amazon Elastic File System User Guide* .
10811
+ :param iam: Determines whether to use the Amazon ECS task role defined in a task definition when mounting the Amazon EFS file system. If it is turned on, transit encryption must be turned on in the ``EFSVolumeConfiguration`` . If this parameter is omitted, the default value of ``DISABLED`` is used. For more information, see `Using Amazon EFS access points <https://docs.aws.amazon.com/AmazonECS/latest/developerguide/efs-volumes.html#efs-volume-accesspoints>`_ in the *Amazon Elastic Container Service Developer Guide* .
10784
10812
 
10785
10813
  :link: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-authorizationconfig.html
10786
10814
  :exampleMetadata: fixture=_generated
@@ -10810,7 +10838,7 @@ class CfnTaskDefinition(
10810
10838
  def access_point_id(self) -> typing.Optional[builtins.str]:
10811
10839
  '''The Amazon EFS access point ID to use.
10812
10840
 
10813
- If an access point is specified, the root directory value specified in the ``EFSVolumeConfiguration`` must either be omitted or set to ``/`` which will enforce the path set on the EFS access point. If an access point is used, transit encryption must be enabled in the ``EFSVolumeConfiguration`` . For more information, see `Working with Amazon EFS access points <https://docs.aws.amazon.com/efs/latest/ug/efs-access-points.html>`_ in the *Amazon Elastic File System User Guide* .
10841
+ If an access point is specified, the root directory value specified in the ``EFSVolumeConfiguration`` must either be omitted or set to ``/`` which will enforce the path set on the EFS access point. If an access point is used, transit encryption must be on in the ``EFSVolumeConfiguration`` . For more information, see `Working with Amazon EFS access points <https://docs.aws.amazon.com/efs/latest/ug/efs-access-points.html>`_ in the *Amazon Elastic File System User Guide* .
10814
10842
 
10815
10843
  :link: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-authorizationconfig.html#cfn-ecs-taskdefinition-authorizationconfig-accesspointid
10816
10844
  '''
@@ -10821,7 +10849,7 @@ class CfnTaskDefinition(
10821
10849
  def iam(self) -> typing.Optional[builtins.str]:
10822
10850
  '''Determines whether to use the Amazon ECS task role defined in a task definition when mounting the Amazon EFS file system.
10823
10851
 
10824
- If enabled, transit encryption must be enabled in the ``EFSVolumeConfiguration`` . If this parameter is omitted, the default value of ``DISABLED`` is used. For more information, see `Using Amazon EFS access points <https://docs.aws.amazon.com/AmazonECS/latest/developerguide/efs-volumes.html#efs-volume-accesspoints>`_ in the *Amazon Elastic Container Service Developer Guide* .
10852
+ If it is turned on, transit encryption must be turned on in the ``EFSVolumeConfiguration`` . If this parameter is omitted, the default value of ``DISABLED`` is used. For more information, see `Using Amazon EFS access points <https://docs.aws.amazon.com/AmazonECS/latest/developerguide/efs-volumes.html#efs-volume-accesspoints>`_ in the *Amazon Elastic Container Service Developer Guide* .
10825
10853
 
10826
10854
  :link: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-authorizationconfig.html#cfn-ecs-taskdefinition-authorizationconfig-iam
10827
10855
  '''
@@ -10941,7 +10969,7 @@ class CfnTaskDefinition(
10941
10969
  :param dns_search_domains: A list of DNS search domains that are presented to the container. This parameter maps to ``DnsSearch`` in the `Create a container <https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate>`_ section of the `Docker Remote API <https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/>`_ and the ``--dns-search`` option to `docker run <https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration>`_ . .. epigraph:: This parameter is not supported for Windows containers.
10942
10970
  :param dns_servers: A list of DNS servers that are presented to the container. This parameter maps to ``Dns`` in the `Create a container <https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate>`_ section of the `Docker Remote API <https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/>`_ and the ``--dns`` option to `docker run <https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration>`_ . .. epigraph:: This parameter is not supported for Windows containers.
10943
10971
  :param docker_labels: A key/value map of labels to add to the container. This parameter maps to ``Labels`` in the `Create a container <https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate>`_ section of the `Docker Remote API <https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/>`_ and the ``--label`` option to `docker run <https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration>`_ . This parameter requires version 1.18 of the Docker Remote API or greater on your container instance. To check the Docker Remote API version on your container instance, log in to your container instance and run the following command: ``sudo docker version --format '{{.Server.APIVersion}}'``
10944
- :param docker_security_options: A list of strings to provide custom labels for SELinux and AppArmor multi-level security systems. This field isn't valid for containers in tasks using the Fargate launch type. With Windows containers, this parameter can be used to reference a credential spec file when configuring a container for Active Directory authentication. For more information, see `Using gMSAs for Windows Containers <https://docs.aws.amazon.com/AmazonECS/latest/developerguide/windows-gmsa.html>`_ in the *Amazon Elastic Container Service Developer Guide* . This parameter maps to ``SecurityOpt`` in the `Create a container <https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate>`_ section of the `Docker Remote API <https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/>`_ and the ``--security-opt`` option to `docker run <https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration>`_ . .. epigraph:: The Amazon ECS container agent running on a container instance must register with the ``ECS_SELINUX_CAPABLE=true`` or ``ECS_APPARMOR_CAPABLE=true`` environment variables before containers placed on that instance can use these security options. For more information, see `Amazon ECS Container Agent Configuration <https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-config.html>`_ in the *Amazon Elastic Container Service Developer Guide* . For more information about valid values, see `Docker Run Security Configuration <https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration>`_ . Valid values: "no-new-privileges" | "apparmor:PROFILE" | "label:value" | "credentialspec:CredentialSpecFilePath"
10972
+ :param docker_security_options: A list of strings to provide custom configuration for multiple security systems. For more information about valid values, see `Docker Run Security Configuration <https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration>`_ . This field isn't valid for containers in tasks using the Fargate launch type. For Linux tasks on EC2, this parameter can be used to reference custom labels for SELinux and AppArmor multi-level security systems. For any tasks on EC2, this parameter can be used to reference a credential spec file that configures a container for Active Directory authentication. For more information, see `Using gMSAs for Windows Containers <https://docs.aws.amazon.com/AmazonECS/latest/developerguide/windows-gmsa.html>`_ and `Using gMSAs for Linux Containers <https://docs.aws.amazon.com/AmazonECS/latest/developerguide/linux-gmsa.html>`_ in the *Amazon Elastic Container Service Developer Guide* . This parameter maps to ``SecurityOpt`` in the `Create a container <https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate>`_ section of the `Docker Remote API <https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/>`_ and the ``--security-opt`` option to `docker run <https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration>`_ . .. epigraph:: The Amazon ECS container agent running on a container instance must register with the ``ECS_SELINUX_CAPABLE=true`` or ``ECS_APPARMOR_CAPABLE=true`` environment variables before containers placed on that instance can use these security options. For more information, see `Amazon ECS Container Agent Configuration <https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-config.html>`_ in the *Amazon Elastic Container Service Developer Guide* . For more information about valid values, see `Docker Run Security Configuration <https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration>`_ . Valid values: "no-new-privileges" | "apparmor:PROFILE" | "label:value" | "credentialspec:CredentialSpecFilePath"
10945
10973
  :param entry_point: .. epigraph:: Early versions of the Amazon ECS container agent don't properly handle ``entryPoint`` parameters. If you have problems using ``entryPoint`` , update your container agent or enter your commands and arguments as ``command`` array items instead. The entry point that's passed to the container. This parameter maps to ``Entrypoint`` in the `Create a container <https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate>`_ section of the `Docker Remote API <https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/>`_ and the ``--entrypoint`` option to `docker run <https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration>`_ . For more information, see `https://docs.docker.com/engine/reference/builder/#entrypoint <https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/builder/#entrypoint>`_ .
10946
10974
  :param environment: The environment variables to pass to a container. This parameter maps to ``Env`` in the `Create a container <https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate>`_ section of the `Docker Remote API <https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/>`_ and the ``--env`` option to `docker run <https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration>`_ . .. epigraph:: We don't recommend that you use plaintext environment variables for sensitive information, such as credential data.
10947
10975
  :param environment_files: A list of files containing the environment variables to pass to a container. This parameter maps to the ``--env-file`` option to `docker run <https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration>`_ . You can specify up to ten environment files. The file must have a ``.env`` file extension. Each line in an environment file contains an environment variable in ``VARIABLE=VALUE`` format. Lines beginning with ``#`` are treated as comments and are ignored. For more information about the environment variable file syntax, see `Declare default environment variables in file <https://docs.aws.amazon.com/https://docs.docker.com/compose/env-file/>`_ . If there are environment variables specified using the ``environment`` parameter in a container definition, they take precedence over the variables contained within an environment file. If multiple environment files are specified that contain the same variable, they're processed from the top down. We recommend that you use unique variable names. For more information, see `Specifying Environment Variables <https://docs.aws.amazon.com/AmazonECS/latest/developerguide/taskdef-envfiles.html>`_ in the *Amazon Elastic Container Service Developer Guide* .
@@ -11378,11 +11406,13 @@ class CfnTaskDefinition(
11378
11406
 
11379
11407
  @builtins.property
11380
11408
  def docker_security_options(self) -> typing.Optional[typing.List[builtins.str]]:
11381
- '''A list of strings to provide custom labels for SELinux and AppArmor multi-level security systems.
11409
+ '''A list of strings to provide custom configuration for multiple security systems.
11410
+
11411
+ For more information about valid values, see `Docker Run Security Configuration <https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration>`_ . This field isn't valid for containers in tasks using the Fargate launch type.
11382
11412
 
11383
- This field isn't valid for containers in tasks using the Fargate launch type.
11413
+ For Linux tasks on EC2, this parameter can be used to reference custom labels for SELinux and AppArmor multi-level security systems.
11384
11414
 
11385
- With Windows containers, this parameter can be used to reference a credential spec file when configuring a container for Active Directory authentication. For more information, see `Using gMSAs for Windows Containers <https://docs.aws.amazon.com/AmazonECS/latest/developerguide/windows-gmsa.html>`_ in the *Amazon Elastic Container Service Developer Guide* .
11415
+ For any tasks on EC2, this parameter can be used to reference a credential spec file that configures a container for Active Directory authentication. For more information, see `Using gMSAs for Windows Containers <https://docs.aws.amazon.com/AmazonECS/latest/developerguide/windows-gmsa.html>`_ and `Using gMSAs for Linux Containers <https://docs.aws.amazon.com/AmazonECS/latest/developerguide/linux-gmsa.html>`_ in the *Amazon Elastic Container Service Developer Guide* .
11386
11416
 
11387
11417
  This parameter maps to ``SecurityOpt`` in the `Create a container <https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate>`_ section of the `Docker Remote API <https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/>`_ and the ``--security-opt`` option to `docker run <https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration>`_ .
11388
11418
  .. epigraph::
@@ -12216,7 +12246,7 @@ class CfnTaskDefinition(
12216
12246
  :param filesystem_id: The Amazon EFS file system ID to use.
12217
12247
  :param authorization_config: The authorization configuration details for the Amazon EFS file system.
12218
12248
  :param root_directory: The directory within the Amazon EFS file system to mount as the root directory inside the host. If this parameter is omitted, the root of the Amazon EFS volume will be used. Specifying ``/`` will have the same effect as omitting this parameter. .. epigraph:: If an EFS access point is specified in the ``authorizationConfig`` , the root directory parameter must either be omitted or set to ``/`` which will enforce the path set on the EFS access point.
12219
- :param transit_encryption: Determines whether to use encryption for Amazon EFS data in transit between the Amazon ECS host and the Amazon EFS server. Transit encryption must be enabled if Amazon EFS IAM authorization is used. If this parameter is omitted, the default value of ``DISABLED`` is used. For more information, see `Encrypting data in transit <https://docs.aws.amazon.com/efs/latest/ug/encryption-in-transit.html>`_ in the *Amazon Elastic File System User Guide* .
12249
+ :param transit_encryption: Determines whether to use encryption for Amazon EFS data in transit between the Amazon ECS host and the Amazon EFS server. Transit encryption must be turned on if Amazon EFS IAM authorization is used. If this parameter is omitted, the default value of ``DISABLED`` is used. For more information, see `Encrypting data in transit <https://docs.aws.amazon.com/efs/latest/ug/encryption-in-transit.html>`_ in the *Amazon Elastic File System User Guide* .
12220
12250
  :param transit_encryption_port: The port to use when sending encrypted data between the Amazon ECS host and the Amazon EFS server. If you do not specify a transit encryption port, it will use the port selection strategy that the Amazon EFS mount helper uses. For more information, see `EFS mount helper <https://docs.aws.amazon.com/efs/latest/ug/efs-mount-helper.html>`_ in the *Amazon Elastic File System User Guide* .
12221
12251
 
12222
12252
  :link: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-efsvolumeconfiguration.html
@@ -12299,7 +12329,7 @@ class CfnTaskDefinition(
12299
12329
  def transit_encryption(self) -> typing.Optional[builtins.str]:
12300
12330
  '''Determines whether to use encryption for Amazon EFS data in transit between the Amazon ECS host and the Amazon EFS server.
12301
12331
 
12302
- Transit encryption must be enabled if Amazon EFS IAM authorization is used. If this parameter is omitted, the default value of ``DISABLED`` is used. For more information, see `Encrypting data in transit <https://docs.aws.amazon.com/efs/latest/ug/encryption-in-transit.html>`_ in the *Amazon Elastic File System User Guide* .
12332
+ Transit encryption must be turned on if Amazon EFS IAM authorization is used. If this parameter is omitted, the default value of ``DISABLED`` is used. For more information, see `Encrypting data in transit <https://docs.aws.amazon.com/efs/latest/ug/encryption-in-transit.html>`_ in the *Amazon Elastic File System User Guide* .
12303
12333
 
12304
12334
  :link: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-efsvolumeconfiguration.html#cfn-ecs-taskdefinition-efsvolumeconfiguration-transitencryption
12305
12335
  '''
@@ -12421,7 +12451,9 @@ class CfnTaskDefinition(
12421
12451
  This parameter is used to expand the total amount of ephemeral storage available, beyond the default amount, for tasks hosted on AWS Fargate . For more information, see `Fargate task storage <https://docs.aws.amazon.com/AmazonECS/latest/userguide/using_data_volumes.html>`_ in the *Amazon ECS User Guide for AWS Fargate* .
12422
12452
  .. epigraph::
12423
12453
 
12424
- This parameter is only supported for tasks hosted on Fargate using Linux platform version ``1.4.0`` or later. This parameter is not supported for Windows containers on Fargate.
12454
+ For tasks using the Fargate launch type, the task requires the following platforms:
12455
+
12456
+ - Linux platform version ``1.4.0`` or later.
12425
12457
 
12426
12458
  :param size_in_gib: The total amount, in GiB, of ephemeral storage to set for the task. The minimum supported value is ``21`` GiB and the maximum supported value is ``200`` GiB.
12427
12459
 
@@ -13522,7 +13554,7 @@ class CfnTaskDefinition(
13522
13554
  :param app_protocol: The application protocol that's used for the port mapping. This parameter only applies to Service Connect. We recommend that you set this parameter to be consistent with the protocol that your application uses. If you set this parameter, Amazon ECS adds protocol-specific connection handling to the Service Connect proxy. If you set this parameter, Amazon ECS adds protocol-specific telemetry in the Amazon ECS console and CloudWatch. If you don't set a value for this parameter, then TCP is used. However, Amazon ECS doesn't add protocol-specific telemetry for TCP. Tasks that run in a namespace can use short names to connect to services in the namespace. Tasks can connect to services across all of the clusters in the namespace. Tasks connect through a managed proxy container that collects logs and metrics for increased visibility. Only the tasks that Amazon ECS services create are supported with Service Connect. For more information, see `Service Connect <https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-connect.html>`_ in the *Amazon Elastic Container Service Developer Guide* .
13523
13555
  :param container_port: The port number on the container that's bound to the user-specified or automatically assigned host port. If you use containers in a task with the ``awsvpc`` or ``host`` network mode, specify the exposed ports using ``containerPort`` . If you use containers in a task with the ``bridge`` network mode and you specify a container port and not a host port, your container automatically receives a host port in the ephemeral port range. For more information, see ``hostPort`` . Port mappings that are automatically assigned in this way do not count toward the 100 reserved ports limit of a container instance.
13524
13556
  :param container_port_range: The port number range on the container that's bound to the dynamically mapped host port range. The following rules apply when you specify a ``containerPortRange`` : - You must use either the ``bridge`` network mode or the ``awsvpc`` network mode. - This parameter is available for both the EC2 and AWS Fargate launch types. - This parameter is available for both the Linux and Windows operating systems. - The container instance must have at least version 1.67.0 of the container agent and at least version 1.67.0-1 of the ``ecs-init`` package - You can specify a maximum of 100 port ranges per container. - You do not specify a ``hostPortRange`` . The value of the ``hostPortRange`` is set as follows: - For containers in a task with the ``awsvpc`` network mode, the ``hostPort`` is set to the same value as the ``containerPort`` . This is a static mapping strategy. - For containers in a task with the ``bridge`` network mode, the Amazon ECS agent finds open host ports from the default ephemeral range and passes it to docker to bind them to the container ports. - The ``containerPortRange`` valid values are between 1 and 65535. - A port can only be included in one port mapping per container. - You cannot specify overlapping port ranges. - The first port in the range must be less than last port in the range. - Docker recommends that you turn off the docker-proxy in the Docker daemon config file when you have a large number of ports. For more information, see `Issue #11185 <https://docs.aws.amazon.com/https://github.com/moby/moby/issues/11185>`_ on the Github website. For information about how to turn off the docker-proxy in the Docker daemon config file, see `Docker daemon <https://docs.aws.amazon.com/AmazonECS/latest/developerguide/bootstrap_container_instance.html#bootstrap_docker_daemon>`_ in the *Amazon ECS Developer Guide* . You can call ```DescribeTasks`` <https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_DescribeTasks.html>`_ to view the ``hostPortRange`` which are the host ports that are bound to the container ports.
13525
- :param host_port: The port number on the container instance to reserve for your container. If you specify a ``containerPortRange`` , leave this field empty and the value of the ``hostPort`` is set as follows: - For containers in a task with the ``awsvpc`` network mode, the ``hostPort`` is set to the same value as the ``containerPort`` . This is a static mapping strategy. - For containers in a task with the ``bridge`` network mode, the Amazon ECS agent finds open ports on the host and automaticaly binds them to the container ports. This is a dynamic mapping strategy. If you use containers in a task with the ``awsvpc`` or ``host`` network mode, the ``hostPort`` can either be left blank or set to the same value as the ``containerPort`` . If you use containers in a task with the ``bridge`` network mode, you can specify a non-reserved host port for your container port mapping, or you can omit the ``hostPort`` (or set it to ``0`` ) while specifying a ``containerPort`` and your container automatically receives a port in the ephemeral port range for your container instance operating system and Docker version. The default ephemeral port range for Docker version 1.6.0 and later is listed on the instance under ``/proc/sys/net/ipv4/ip_local_port_range`` . If this kernel parameter is unavailable, the default ephemeral port range from 49153 through 65535 is used. Do not attempt to specify a host port in the ephemeral port range as these are reserved for automatic assignment. In general, ports below 32768 are outside of the ephemeral port range. The default reserved ports are 22 for SSH, the Docker ports 2375 and 2376, and the Amazon ECS container agent ports 51678-51680. Any host port that was previously specified in a running task is also reserved while the task is running. That is, after a task stops, the host port is released. The current reserved ports are displayed in the ``remainingResources`` of `DescribeContainerInstances <https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_DescribeContainerInstances.html>`_ output. A container instance can have up to 100 reserved ports at a time. This number includes the default reserved ports. Automatically assigned ports aren't included in the 100 reserved ports quota.
13557
+ :param host_port: The port number on the container instance to reserve for your container. If you specify a ``containerPortRange`` , leave this field empty and the value of the ``hostPort`` is set as follows: - For containers in a task with the ``awsvpc`` network mode, the ``hostPort`` is set to the same value as the ``containerPort`` . This is a static mapping strategy. - For containers in a task with the ``bridge`` network mode, the Amazon ECS agent finds open ports on the host and automatically binds them to the container ports. This is a dynamic mapping strategy. If you use containers in a task with the ``awsvpc`` or ``host`` network mode, the ``hostPort`` can either be left blank or set to the same value as the ``containerPort`` . If you use containers in a task with the ``bridge`` network mode, you can specify a non-reserved host port for your container port mapping, or you can omit the ``hostPort`` (or set it to ``0`` ) while specifying a ``containerPort`` and your container automatically receives a port in the ephemeral port range for your container instance operating system and Docker version. The default ephemeral port range for Docker version 1.6.0 and later is listed on the instance under ``/proc/sys/net/ipv4/ip_local_port_range`` . If this kernel parameter is unavailable, the default ephemeral port range from 49153 through 65535 is used. Do not attempt to specify a host port in the ephemeral port range as these are reserved for automatic assignment. In general, ports below 32768 are outside of the ephemeral port range. The default reserved ports are 22 for SSH, the Docker ports 2375 and 2376, and the Amazon ECS container agent ports 51678-51680. Any host port that was previously specified in a running task is also reserved while the task is running. That is, after a task stops, the host port is released. The current reserved ports are displayed in the ``remainingResources`` of `DescribeContainerInstances <https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_DescribeContainerInstances.html>`_ output. A container instance can have up to 100 reserved ports at a time. This number includes the default reserved ports. Automatically assigned ports aren't included in the 100 reserved ports quota.
13526
13558
  :param name: The name that's used for the port mapping. This parameter only applies to Service Connect. This parameter is the name that you use in the ``serviceConnectConfiguration`` of a service. The name can include up to 64 characters. The characters can include lowercase letters, numbers, underscores (_), and hyphens (-). The name can't start with a hyphen. For more information, see `Service Connect <https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-connect.html>`_ in the *Amazon Elastic Container Service Developer Guide* .
13527
13559
  :param protocol: The protocol used for the port mapping. Valid values are ``tcp`` and ``udp`` . The default is ``tcp`` .
13528
13560
 
@@ -13632,7 +13664,7 @@ class CfnTaskDefinition(
13632
13664
  If you specify a ``containerPortRange`` , leave this field empty and the value of the ``hostPort`` is set as follows:
13633
13665
 
13634
13666
  - For containers in a task with the ``awsvpc`` network mode, the ``hostPort`` is set to the same value as the ``containerPort`` . This is a static mapping strategy.
13635
- - For containers in a task with the ``bridge`` network mode, the Amazon ECS agent finds open ports on the host and automaticaly binds them to the container ports. This is a dynamic mapping strategy.
13667
+ - For containers in a task with the ``bridge`` network mode, the Amazon ECS agent finds open ports on the host and automatically binds them to the container ports. This is a dynamic mapping strategy.
13636
13668
 
13637
13669
  If you use containers in a task with the ``awsvpc`` or ``host`` network mode, the ``hostPort`` can either be left blank or set to the same value as the ``containerPort`` .
13638
13670
 
@@ -13859,7 +13891,7 @@ class CfnTaskDefinition(
13859
13891
  def __init__(self, *, type: builtins.str, value: builtins.str) -> None:
13860
13892
  '''The type and amount of a resource to assign to a container.
13861
13893
 
13862
- The supported resource types are GPUs and Elastic Inference accelerators. For more information, see `Working with GPUs on Amazon ECS <https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-gpu.html>`_ or `Working with Amazon Elastic Inference on Amazon ECS <https://docs.aws.amazon.com/AmazonECS/latest/developerguide/url-ecs-dev;ecs-inference.html>`_ in the *Amazon Elastic Container Service Developer Guide*
13894
+ The supported resource types are GPUs and Elastic Inference accelerators. For more information, see `Working with GPUs on Amazon ECS <https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-gpu.html>`_ or `Working with Amazon Elastic Inference on Amazon ECS <https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-inference.html>`_ in the *Amazon Elastic Container Service Developer Guide*
13863
13895
 
13864
13896
  :param type: The type of resource to assign to a container. The supported values are ``GPU`` or ``InferenceAccelerator`` .
13865
13897
  :param value: The value for the specified resource type. If the ``GPU`` type is used, the value is the number of physical ``GPUs`` the Amazon ECS container agent reserves for the container. The number of GPUs that's reserved for all containers in a task can't exceed the number of available GPUs on the container instance that the task is launched on. If the ``InferenceAccelerator`` type is used, the ``value`` matches the ``deviceName`` for an `InferenceAccelerator <https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_InferenceAccelerator.html>`_ specified in a task definition.
@@ -14170,7 +14202,7 @@ class CfnTaskDefinition(
14170
14202
  type: builtins.str,
14171
14203
  expression: typing.Optional[builtins.str] = None,
14172
14204
  ) -> None:
14173
- '''An object representing a constraint on task placement in the task definition.
14205
+ '''The constraint on task placement in the task definition.
14174
14206
 
14175
14207
  For more information, see `Task placement constraints <https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-placement-constraints.html>`_ in the *Amazon Elastic Container Service Developer Guide* .
14176
14208
  .. epigraph::
@@ -16376,19 +16408,18 @@ class CloudMapNamespaceOptions:
16376
16408
 
16377
16409
  Example::
16378
16410
 
16379
- # Example automatically generated from non-compiling source. May contain errors.
16380
16411
  # cluster: ecs.Cluster
16381
16412
  # task_definition: ecs.TaskDefinition
16382
- # container: ecs.ContainerDefinition
16413
+ # container_options: ecs.ContainerDefinitionOptions
16414
+
16383
16415
 
16416
+ container = task_definition.add_container("MyContainer", container_options)
16384
16417
 
16385
16418
  container.add_port_mappings(
16386
16419
  name="api",
16387
16420
  container_port=8080
16388
16421
  )
16389
16422
 
16390
- task_definition.add_container(container)
16391
-
16392
16423
  cluster.add_default_cloud_map_namespace(
16393
16424
  name="local"
16394
16425
  )
@@ -16880,7 +16911,8 @@ class ClusterProps:
16880
16911
  container_definition=container_definition,
16881
16912
  environment=[tasks.TaskEnvironmentVariable(name="SOME_KEY", value=sfn.JsonPath.string_at("$.SomeKey"))]
16882
16913
  )],
16883
- launch_target=tasks.EcsFargateLaunchTarget()
16914
+ launch_target=tasks.EcsFargateLaunchTarget(),
16915
+ propagated_tag_source=ecs.PropagatedTagSource.TASK_DEFINITION
16884
16916
  )
16885
16917
  '''
16886
16918
  if isinstance(capacity, dict):
@@ -16999,6 +17031,7 @@ class ClusterProps:
16999
17031
  jsii_struct_bases=[],
17000
17032
  name_mapping={
17001
17033
  "task_definition_arn": "taskDefinitionArn",
17034
+ "execution_role": "executionRole",
17002
17035
  "network_mode": "networkMode",
17003
17036
  "task_role": "taskRole",
17004
17037
  },
@@ -17008,12 +17041,14 @@ class CommonTaskDefinitionAttributes:
17008
17041
  self,
17009
17042
  *,
17010
17043
  task_definition_arn: builtins.str,
17044
+ execution_role: typing.Optional[_IRole_235f5d8e] = None,
17011
17045
  network_mode: typing.Optional["NetworkMode"] = None,
17012
17046
  task_role: typing.Optional[_IRole_235f5d8e] = None,
17013
17047
  ) -> None:
17014
17048
  '''The common task definition attributes used across all types of task definitions.
17015
17049
 
17016
17050
  :param task_definition_arn: The arn of the task definition.
17051
+ :param execution_role: The IAM role that grants containers and Fargate agents permission to make AWS API calls on your behalf. Some tasks do not have an execution role. Default: - undefined
17017
17052
  :param network_mode: The networking mode to use for the containers in the task. Default: Network mode cannot be provided to the imported task.
17018
17053
  :param task_role: The name of the IAM role that grants containers in the task permission to call AWS APIs on your behalf. Default: Permissions cannot be granted to the imported task.
17019
17054
 
@@ -17032,6 +17067,7 @@ class CommonTaskDefinitionAttributes:
17032
17067
  task_definition_arn="taskDefinitionArn",
17033
17068
 
17034
17069
  # the properties below are optional
17070
+ execution_role=role,
17035
17071
  network_mode=ecs.NetworkMode.NONE,
17036
17072
  task_role=role
17037
17073
  )
@@ -17039,11 +17075,14 @@ class CommonTaskDefinitionAttributes:
17039
17075
  if __debug__:
17040
17076
  type_hints = typing.get_type_hints(_typecheckingstub__1a458c1ea772685ddb7eb49b075e7de9bed322fac4bbee8aeab1cf6b576bc995)
17041
17077
  check_type(argname="argument task_definition_arn", value=task_definition_arn, expected_type=type_hints["task_definition_arn"])
17078
+ check_type(argname="argument execution_role", value=execution_role, expected_type=type_hints["execution_role"])
17042
17079
  check_type(argname="argument network_mode", value=network_mode, expected_type=type_hints["network_mode"])
17043
17080
  check_type(argname="argument task_role", value=task_role, expected_type=type_hints["task_role"])
17044
17081
  self._values: typing.Dict[builtins.str, typing.Any] = {
17045
17082
  "task_definition_arn": task_definition_arn,
17046
17083
  }
17084
+ if execution_role is not None:
17085
+ self._values["execution_role"] = execution_role
17047
17086
  if network_mode is not None:
17048
17087
  self._values["network_mode"] = network_mode
17049
17088
  if task_role is not None:
@@ -17056,6 +17095,17 @@ class CommonTaskDefinitionAttributes:
17056
17095
  assert result is not None, "Required property 'task_definition_arn' is missing"
17057
17096
  return typing.cast(builtins.str, result)
17058
17097
 
17098
+ @builtins.property
17099
+ def execution_role(self) -> typing.Optional[_IRole_235f5d8e]:
17100
+ '''The IAM role that grants containers and Fargate agents permission to make AWS API calls on your behalf.
17101
+
17102
+ Some tasks do not have an execution role.
17103
+
17104
+ :default: - undefined
17105
+ '''
17106
+ result = self._values.get("execution_role")
17107
+ return typing.cast(typing.Optional[_IRole_235f5d8e], result)
17108
+
17059
17109
  @builtins.property
17060
17110
  def network_mode(self) -> typing.Optional["NetworkMode"]:
17061
17111
  '''The networking mode to use for the containers in the task.
@@ -17293,7 +17343,8 @@ class Compatibility(enum.Enum):
17293
17343
  placement_constraints=[
17294
17344
  ecs.PlacementConstraint.member_of("blieptuut")
17295
17345
  ]
17296
- )
17346
+ ),
17347
+ propagated_tag_source=ecs.PropagatedTagSource.TASK_DEFINITION
17297
17348
  )
17298
17349
  '''
17299
17350
 
@@ -17383,6 +17434,7 @@ class ContainerDefinition(
17383
17434
  start_timeout: typing.Optional[_Duration_4839e8c3] = None,
17384
17435
  stop_timeout: typing.Optional[_Duration_4839e8c3] = None,
17385
17436
  system_controls: typing.Optional[typing.Sequence[typing.Union["SystemControl", typing.Dict[builtins.str, typing.Any]]]] = None,
17437
+ ulimits: typing.Optional[typing.Sequence[typing.Union["Ulimit", typing.Dict[builtins.str, typing.Any]]]] = None,
17386
17438
  user: typing.Optional[builtins.str] = None,
17387
17439
  working_directory: typing.Optional[builtins.str] = None,
17388
17440
  ) -> None:
@@ -17421,6 +17473,7 @@ class ContainerDefinition(
17421
17473
  :param start_timeout: Time duration (in seconds) to wait before giving up on resolving dependencies for a container. Default: - none
17422
17474
  :param stop_timeout: Time duration (in seconds) to wait before the container is forcefully killed if it doesn't exit normally on its own. Default: - none
17423
17475
  :param system_controls: A list of namespaced kernel parameters to set in the container. Default: - No system controls are set.
17476
+ :param ulimits: An array of ulimits to set in the container.
17424
17477
  :param user: The user name to use inside the container. Default: root
17425
17478
  :param working_directory: The working directory in which to run commands inside the container. Default: /
17426
17479
  '''
@@ -17460,6 +17513,7 @@ class ContainerDefinition(
17460
17513
  start_timeout=start_timeout,
17461
17514
  stop_timeout=stop_timeout,
17462
17515
  system_controls=system_controls,
17516
+ ulimits=ulimits,
17463
17517
  user=user,
17464
17518
  working_directory=working_directory,
17465
17519
  )
@@ -17827,6 +17881,7 @@ class ContainerDefinition(
17827
17881
  "start_timeout": "startTimeout",
17828
17882
  "stop_timeout": "stopTimeout",
17829
17883
  "system_controls": "systemControls",
17884
+ "ulimits": "ulimits",
17830
17885
  "user": "user",
17831
17886
  "working_directory": "workingDirectory",
17832
17887
  },
@@ -17865,6 +17920,7 @@ class ContainerDefinitionOptions:
17865
17920
  start_timeout: typing.Optional[_Duration_4839e8c3] = None,
17866
17921
  stop_timeout: typing.Optional[_Duration_4839e8c3] = None,
17867
17922
  system_controls: typing.Optional[typing.Sequence[typing.Union["SystemControl", typing.Dict[builtins.str, typing.Any]]]] = None,
17923
+ ulimits: typing.Optional[typing.Sequence[typing.Union["Ulimit", typing.Dict[builtins.str, typing.Any]]]] = None,
17868
17924
  user: typing.Optional[builtins.str] = None,
17869
17925
  working_directory: typing.Optional[builtins.str] = None,
17870
17926
  ) -> None:
@@ -17899,6 +17955,7 @@ class ContainerDefinitionOptions:
17899
17955
  :param start_timeout: Time duration (in seconds) to wait before giving up on resolving dependencies for a container. Default: - none
17900
17956
  :param stop_timeout: Time duration (in seconds) to wait before the container is forcefully killed if it doesn't exit normally on its own. Default: - none
17901
17957
  :param system_controls: A list of namespaced kernel parameters to set in the container. Default: - No system controls are set.
17958
+ :param ulimits: An array of ulimits to set in the container.
17902
17959
  :param user: The user name to use inside the container. Default: root
17903
17960
  :param working_directory: The working directory in which to run commands inside the container. Default: /
17904
17961
 
@@ -17968,6 +18025,7 @@ class ContainerDefinitionOptions:
17968
18025
  check_type(argname="argument start_timeout", value=start_timeout, expected_type=type_hints["start_timeout"])
17969
18026
  check_type(argname="argument stop_timeout", value=stop_timeout, expected_type=type_hints["stop_timeout"])
17970
18027
  check_type(argname="argument system_controls", value=system_controls, expected_type=type_hints["system_controls"])
18028
+ check_type(argname="argument ulimits", value=ulimits, expected_type=type_hints["ulimits"])
17971
18029
  check_type(argname="argument user", value=user, expected_type=type_hints["user"])
17972
18030
  check_type(argname="argument working_directory", value=working_directory, expected_type=type_hints["working_directory"])
17973
18031
  self._values: typing.Dict[builtins.str, typing.Any] = {
@@ -18031,6 +18089,8 @@ class ContainerDefinitionOptions:
18031
18089
  self._values["stop_timeout"] = stop_timeout
18032
18090
  if system_controls is not None:
18033
18091
  self._values["system_controls"] = system_controls
18092
+ if ulimits is not None:
18093
+ self._values["ulimits"] = ulimits
18034
18094
  if user is not None:
18035
18095
  self._values["user"] = user
18036
18096
  if working_directory is not None:
@@ -18357,6 +18417,12 @@ class ContainerDefinitionOptions:
18357
18417
  result = self._values.get("system_controls")
18358
18418
  return typing.cast(typing.Optional[typing.List["SystemControl"]], result)
18359
18419
 
18420
+ @builtins.property
18421
+ def ulimits(self) -> typing.Optional[typing.List["Ulimit"]]:
18422
+ '''An array of ulimits to set in the container.'''
18423
+ result = self._values.get("ulimits")
18424
+ return typing.cast(typing.Optional[typing.List["Ulimit"]], result)
18425
+
18360
18426
  @builtins.property
18361
18427
  def user(self) -> typing.Optional[builtins.str]:
18362
18428
  '''The user name to use inside the container.
@@ -18421,6 +18487,7 @@ class ContainerDefinitionOptions:
18421
18487
  "start_timeout": "startTimeout",
18422
18488
  "stop_timeout": "stopTimeout",
18423
18489
  "system_controls": "systemControls",
18490
+ "ulimits": "ulimits",
18424
18491
  "user": "user",
18425
18492
  "working_directory": "workingDirectory",
18426
18493
  "task_definition": "taskDefinition",
@@ -18460,6 +18527,7 @@ class ContainerDefinitionProps(ContainerDefinitionOptions):
18460
18527
  start_timeout: typing.Optional[_Duration_4839e8c3] = None,
18461
18528
  stop_timeout: typing.Optional[_Duration_4839e8c3] = None,
18462
18529
  system_controls: typing.Optional[typing.Sequence[typing.Union["SystemControl", typing.Dict[builtins.str, typing.Any]]]] = None,
18530
+ ulimits: typing.Optional[typing.Sequence[typing.Union["Ulimit", typing.Dict[builtins.str, typing.Any]]]] = None,
18463
18531
  user: typing.Optional[builtins.str] = None,
18464
18532
  working_directory: typing.Optional[builtins.str] = None,
18465
18533
  task_definition: "TaskDefinition",
@@ -18496,6 +18564,7 @@ class ContainerDefinitionProps(ContainerDefinitionOptions):
18496
18564
  :param start_timeout: Time duration (in seconds) to wait before giving up on resolving dependencies for a container. Default: - none
18497
18565
  :param stop_timeout: Time duration (in seconds) to wait before the container is forcefully killed if it doesn't exit normally on its own. Default: - none
18498
18566
  :param system_controls: A list of namespaced kernel parameters to set in the container. Default: - No system controls are set.
18567
+ :param ulimits: An array of ulimits to set in the container.
18499
18568
  :param user: The user name to use inside the container. Default: root
18500
18569
  :param working_directory: The working directory in which to run commands inside the container. Default: /
18501
18570
  :param task_definition: The name of the task definition that includes this container definition. [disable-awslint:ref-via-interface]
@@ -18578,6 +18647,11 @@ class ContainerDefinitionProps(ContainerDefinitionOptions):
18578
18647
  namespace="namespace",
18579
18648
  value="value"
18580
18649
  )],
18650
+ ulimits=[ecs.Ulimit(
18651
+ hard_limit=123,
18652
+ name=ecs.UlimitName.CORE,
18653
+ soft_limit=123
18654
+ )],
18581
18655
  user="user",
18582
18656
  working_directory="workingDirectory"
18583
18657
  )
@@ -18616,6 +18690,7 @@ class ContainerDefinitionProps(ContainerDefinitionOptions):
18616
18690
  check_type(argname="argument start_timeout", value=start_timeout, expected_type=type_hints["start_timeout"])
18617
18691
  check_type(argname="argument stop_timeout", value=stop_timeout, expected_type=type_hints["stop_timeout"])
18618
18692
  check_type(argname="argument system_controls", value=system_controls, expected_type=type_hints["system_controls"])
18693
+ check_type(argname="argument ulimits", value=ulimits, expected_type=type_hints["ulimits"])
18619
18694
  check_type(argname="argument user", value=user, expected_type=type_hints["user"])
18620
18695
  check_type(argname="argument working_directory", value=working_directory, expected_type=type_hints["working_directory"])
18621
18696
  check_type(argname="argument task_definition", value=task_definition, expected_type=type_hints["task_definition"])
@@ -18681,6 +18756,8 @@ class ContainerDefinitionProps(ContainerDefinitionOptions):
18681
18756
  self._values["stop_timeout"] = stop_timeout
18682
18757
  if system_controls is not None:
18683
18758
  self._values["system_controls"] = system_controls
18759
+ if ulimits is not None:
18760
+ self._values["ulimits"] = ulimits
18684
18761
  if user is not None:
18685
18762
  self._values["user"] = user
18686
18763
  if working_directory is not None:
@@ -19007,6 +19084,12 @@ class ContainerDefinitionProps(ContainerDefinitionOptions):
19007
19084
  result = self._values.get("system_controls")
19008
19085
  return typing.cast(typing.Optional[typing.List["SystemControl"]], result)
19009
19086
 
19087
+ @builtins.property
19088
+ def ulimits(self) -> typing.Optional[typing.List["Ulimit"]]:
19089
+ '''An array of ulimits to set in the container.'''
19090
+ result = self._values.get("ulimits")
19091
+ return typing.cast(typing.Optional[typing.List["Ulimit"]], result)
19092
+
19010
19093
  @builtins.property
19011
19094
  def user(self) -> typing.Optional[builtins.str]:
19012
19095
  '''The user name to use inside the container.
@@ -19154,29 +19237,23 @@ class ContainerImage(
19154
19237
 
19155
19238
  Example::
19156
19239
 
19157
- # cluster: ecs.Cluster
19158
-
19159
- load_balanced_fargate_service = ecs_patterns.ApplicationLoadBalancedFargateService(self, "Service",
19160
- cluster=cluster,
19161
- memory_limit_mi_b=1024,
19162
- desired_count=1,
19163
- cpu=512,
19164
- task_image_options=ecsPatterns.ApplicationLoadBalancedTaskImageOptions(
19165
- image=ecs.ContainerImage.from_registry("amazon/amazon-ecs-sample")
19166
- )
19167
- )
19240
+ import aws_cdk as cdk
19241
+ import aws_cdk.aws_efs as efs
19168
19242
 
19169
- scalable_target = load_balanced_fargate_service.service.auto_scale_task_count(
19170
- min_capacity=1,
19171
- max_capacity=20
19172
- )
19243
+ # my_file_system: efs.IFileSystem
19173
19244
 
19174
- scalable_target.scale_on_cpu_utilization("CpuScaling",
19175
- target_utilization_percent=50
19176
- )
19177
19245
 
19178
- scalable_target.scale_on_memory_utilization("MemoryScaling",
19179
- target_utilization_percent=50
19246
+ job_defn = batch.EcsJobDefinition(self, "JobDefn",
19247
+ container=batch.EcsEc2ContainerDefinition(self, "containerDefn",
19248
+ image=ecs.ContainerImage.from_registry("public.ecr.aws/amazonlinux/amazonlinux:latest"),
19249
+ memory=cdk.Size.mebibytes(2048),
19250
+ cpu=256,
19251
+ volumes=[batch.EcsVolume.efs(
19252
+ name="myVolume",
19253
+ file_system=my_file_system,
19254
+ container_path="/Volumes/myVolume"
19255
+ )]
19256
+ )
19180
19257
  )
19181
19258
  '''
19182
19259
 
@@ -19692,20 +19769,31 @@ class DeploymentController:
19692
19769
 
19693
19770
  Example::
19694
19771
 
19772
+ # my_application: codedeploy.EcsApplication
19695
19773
  # cluster: ecs.Cluster
19774
+ # task_definition: ecs.FargateTaskDefinition
19775
+ # blue_target_group: elbv2.ITargetGroup
19776
+ # green_target_group: elbv2.ITargetGroup
19777
+ # listener: elbv2.IApplicationListener
19696
19778
 
19697
- load_balanced_fargate_service = ecs_patterns.ApplicationLoadBalancedFargateService(self, "Service",
19779
+
19780
+ service = ecs.FargateService(self, "Service",
19698
19781
  cluster=cluster,
19699
- memory_limit_mi_b=1024,
19700
- desired_count=1,
19701
- cpu=512,
19702
- task_image_options=ecsPatterns.ApplicationLoadBalancedTaskImageOptions(
19703
- image=ecs.ContainerImage.from_registry("amazon/amazon-ecs-sample")
19704
- ),
19782
+ task_definition=task_definition,
19705
19783
  deployment_controller=ecs.DeploymentController(
19706
19784
  type=ecs.DeploymentControllerType.CODE_DEPLOY
19707
19785
  )
19708
19786
  )
19787
+
19788
+ codedeploy.EcsDeploymentGroup(self, "BlueGreenDG",
19789
+ service=service,
19790
+ blue_green_deployment_config=codedeploy.EcsBlueGreenDeploymentConfig(
19791
+ blue_target_group=blue_target_group,
19792
+ green_target_group=green_target_group,
19793
+ listener=listener
19794
+ ),
19795
+ deployment_config=codedeploy.EcsDeploymentConfig.CANARY_10PERCENT_5MINUTES
19796
+ )
19709
19797
  '''
19710
19798
  if __debug__:
19711
19799
  type_hints = typing.get_type_hints(_typecheckingstub__919598d1dc3ec32befe4a81bbf3a26a387685443884de6cb5971808667ffb28b)
@@ -19743,20 +19831,31 @@ class DeploymentControllerType(enum.Enum):
19743
19831
 
19744
19832
  Example::
19745
19833
 
19834
+ # my_application: codedeploy.EcsApplication
19746
19835
  # cluster: ecs.Cluster
19836
+ # task_definition: ecs.FargateTaskDefinition
19837
+ # blue_target_group: elbv2.ITargetGroup
19838
+ # green_target_group: elbv2.ITargetGroup
19839
+ # listener: elbv2.IApplicationListener
19747
19840
 
19748
- load_balanced_fargate_service = ecs_patterns.ApplicationLoadBalancedFargateService(self, "Service",
19841
+
19842
+ service = ecs.FargateService(self, "Service",
19749
19843
  cluster=cluster,
19750
- memory_limit_mi_b=1024,
19751
- desired_count=1,
19752
- cpu=512,
19753
- task_image_options=ecsPatterns.ApplicationLoadBalancedTaskImageOptions(
19754
- image=ecs.ContainerImage.from_registry("amazon/amazon-ecs-sample")
19755
- ),
19844
+ task_definition=task_definition,
19756
19845
  deployment_controller=ecs.DeploymentController(
19757
19846
  type=ecs.DeploymentControllerType.CODE_DEPLOY
19758
19847
  )
19759
19848
  )
19849
+
19850
+ codedeploy.EcsDeploymentGroup(self, "BlueGreenDG",
19851
+ service=service,
19852
+ blue_green_deployment_config=codedeploy.EcsBlueGreenDeploymentConfig(
19853
+ blue_target_group=blue_target_group,
19854
+ green_target_group=green_target_group,
19855
+ listener=listener
19856
+ ),
19857
+ deployment_config=codedeploy.EcsDeploymentConfig.CANARY_10PERCENT_5MINUTES
19858
+ )
19760
19859
  '''
19761
19860
 
19762
19861
  ECS = "ECS"
@@ -20505,6 +20604,7 @@ class Ec2ServiceProps(BaseServiceOptions):
20505
20604
  jsii_struct_bases=[CommonTaskDefinitionAttributes],
20506
20605
  name_mapping={
20507
20606
  "task_definition_arn": "taskDefinitionArn",
20607
+ "execution_role": "executionRole",
20508
20608
  "network_mode": "networkMode",
20509
20609
  "task_role": "taskRole",
20510
20610
  },
@@ -20514,12 +20614,14 @@ class Ec2TaskDefinitionAttributes(CommonTaskDefinitionAttributes):
20514
20614
  self,
20515
20615
  *,
20516
20616
  task_definition_arn: builtins.str,
20617
+ execution_role: typing.Optional[_IRole_235f5d8e] = None,
20517
20618
  network_mode: typing.Optional["NetworkMode"] = None,
20518
20619
  task_role: typing.Optional[_IRole_235f5d8e] = None,
20519
20620
  ) -> None:
20520
20621
  '''Attributes used to import an existing EC2 task definition.
20521
20622
 
20522
20623
  :param task_definition_arn: The arn of the task definition.
20624
+ :param execution_role: The IAM role that grants containers and Fargate agents permission to make AWS API calls on your behalf. Some tasks do not have an execution role. Default: - undefined
20523
20625
  :param network_mode: The networking mode to use for the containers in the task. Default: Network mode cannot be provided to the imported task.
20524
20626
  :param task_role: The name of the IAM role that grants containers in the task permission to call AWS APIs on your behalf. Default: Permissions cannot be granted to the imported task.
20525
20627
 
@@ -20538,6 +20640,7 @@ class Ec2TaskDefinitionAttributes(CommonTaskDefinitionAttributes):
20538
20640
  task_definition_arn="taskDefinitionArn",
20539
20641
 
20540
20642
  # the properties below are optional
20643
+ execution_role=role,
20541
20644
  network_mode=ecs.NetworkMode.NONE,
20542
20645
  task_role=role
20543
20646
  )
@@ -20545,11 +20648,14 @@ class Ec2TaskDefinitionAttributes(CommonTaskDefinitionAttributes):
20545
20648
  if __debug__:
20546
20649
  type_hints = typing.get_type_hints(_typecheckingstub__e90e61a002f578b0dbe160c067f2d3de15287892110df7eedcbbfa7f0c7d391d)
20547
20650
  check_type(argname="argument task_definition_arn", value=task_definition_arn, expected_type=type_hints["task_definition_arn"])
20651
+ check_type(argname="argument execution_role", value=execution_role, expected_type=type_hints["execution_role"])
20548
20652
  check_type(argname="argument network_mode", value=network_mode, expected_type=type_hints["network_mode"])
20549
20653
  check_type(argname="argument task_role", value=task_role, expected_type=type_hints["task_role"])
20550
20654
  self._values: typing.Dict[builtins.str, typing.Any] = {
20551
20655
  "task_definition_arn": task_definition_arn,
20552
20656
  }
20657
+ if execution_role is not None:
20658
+ self._values["execution_role"] = execution_role
20553
20659
  if network_mode is not None:
20554
20660
  self._values["network_mode"] = network_mode
20555
20661
  if task_role is not None:
@@ -20562,6 +20668,17 @@ class Ec2TaskDefinitionAttributes(CommonTaskDefinitionAttributes):
20562
20668
  assert result is not None, "Required property 'task_definition_arn' is missing"
20563
20669
  return typing.cast(builtins.str, result)
20564
20670
 
20671
+ @builtins.property
20672
+ def execution_role(self) -> typing.Optional[_IRole_235f5d8e]:
20673
+ '''The IAM role that grants containers and Fargate agents permission to make AWS API calls on your behalf.
20674
+
20675
+ Some tasks do not have an execution role.
20676
+
20677
+ :default: - undefined
20678
+ '''
20679
+ result = self._values.get("execution_role")
20680
+ return typing.cast(typing.Optional[_IRole_235f5d8e], result)
20681
+
20565
20682
  @builtins.property
20566
20683
  def network_mode(self) -> typing.Optional["NetworkMode"]:
20567
20684
  '''The networking mode to use for the containers in the task.
@@ -20816,20 +20933,18 @@ class EcrImage(
20816
20933
  ):
20817
20934
  '''An image from an Amazon ECR repository.
20818
20935
 
20819
- :exampleMetadata: infused
20936
+ :exampleMetadata: fixture=_generated
20820
20937
 
20821
20938
  Example::
20822
20939
 
20823
- db_secret = secretsmanager.Secret(self, "secret")
20940
+ # The code below shows an example of how to instantiate this type.
20941
+ # The values are placeholders you should change.
20942
+ from aws_cdk import aws_ecr_assets as ecr_assets
20943
+ from aws_cdk import aws_ecs as ecs
20824
20944
 
20825
- batch.JobDefinition(self, "batch-job-def-secrets",
20826
- container=batch.JobDefinitionContainer(
20827
- image=ecs.EcrImage.from_registry("docker/whalesay"),
20828
- secrets={
20829
- "PASSWORD": ecs.Secret.from_secrets_manager(db_secret, "password")
20830
- }
20831
- )
20832
- )
20945
+ # docker_image_asset: ecr_assets.DockerImageAsset
20946
+
20947
+ ecr_image = ecs.EcrImage.from_docker_image_asset(docker_image_asset)
20833
20948
  '''
20834
20949
 
20835
20950
  def __init__(
@@ -22238,6 +22353,7 @@ class ExternalServiceProps(BaseServiceOptions):
22238
22353
  jsii_struct_bases=[CommonTaskDefinitionAttributes],
22239
22354
  name_mapping={
22240
22355
  "task_definition_arn": "taskDefinitionArn",
22356
+ "execution_role": "executionRole",
22241
22357
  "network_mode": "networkMode",
22242
22358
  "task_role": "taskRole",
22243
22359
  },
@@ -22247,12 +22363,14 @@ class ExternalTaskDefinitionAttributes(CommonTaskDefinitionAttributes):
22247
22363
  self,
22248
22364
  *,
22249
22365
  task_definition_arn: builtins.str,
22366
+ execution_role: typing.Optional[_IRole_235f5d8e] = None,
22250
22367
  network_mode: typing.Optional["NetworkMode"] = None,
22251
22368
  task_role: typing.Optional[_IRole_235f5d8e] = None,
22252
22369
  ) -> None:
22253
22370
  '''Attributes used to import an existing External task definition.
22254
22371
 
22255
22372
  :param task_definition_arn: The arn of the task definition.
22373
+ :param execution_role: The IAM role that grants containers and Fargate agents permission to make AWS API calls on your behalf. Some tasks do not have an execution role. Default: - undefined
22256
22374
  :param network_mode: The networking mode to use for the containers in the task. Default: Network mode cannot be provided to the imported task.
22257
22375
  :param task_role: The name of the IAM role that grants containers in the task permission to call AWS APIs on your behalf. Default: Permissions cannot be granted to the imported task.
22258
22376
 
@@ -22271,6 +22389,7 @@ class ExternalTaskDefinitionAttributes(CommonTaskDefinitionAttributes):
22271
22389
  task_definition_arn="taskDefinitionArn",
22272
22390
 
22273
22391
  # the properties below are optional
22392
+ execution_role=role,
22274
22393
  network_mode=ecs.NetworkMode.NONE,
22275
22394
  task_role=role
22276
22395
  )
@@ -22278,11 +22397,14 @@ class ExternalTaskDefinitionAttributes(CommonTaskDefinitionAttributes):
22278
22397
  if __debug__:
22279
22398
  type_hints = typing.get_type_hints(_typecheckingstub__2d58078e68b889d5f10f95714f42385491c26bf6ec084584b1a1487cc3acf7a2)
22280
22399
  check_type(argname="argument task_definition_arn", value=task_definition_arn, expected_type=type_hints["task_definition_arn"])
22400
+ check_type(argname="argument execution_role", value=execution_role, expected_type=type_hints["execution_role"])
22281
22401
  check_type(argname="argument network_mode", value=network_mode, expected_type=type_hints["network_mode"])
22282
22402
  check_type(argname="argument task_role", value=task_role, expected_type=type_hints["task_role"])
22283
22403
  self._values: typing.Dict[builtins.str, typing.Any] = {
22284
22404
  "task_definition_arn": task_definition_arn,
22285
22405
  }
22406
+ if execution_role is not None:
22407
+ self._values["execution_role"] = execution_role
22286
22408
  if network_mode is not None:
22287
22409
  self._values["network_mode"] = network_mode
22288
22410
  if task_role is not None:
@@ -22295,6 +22417,17 @@ class ExternalTaskDefinitionAttributes(CommonTaskDefinitionAttributes):
22295
22417
  assert result is not None, "Required property 'task_definition_arn' is missing"
22296
22418
  return typing.cast(builtins.str, result)
22297
22419
 
22420
+ @builtins.property
22421
+ def execution_role(self) -> typing.Optional[_IRole_235f5d8e]:
22422
+ '''The IAM role that grants containers and Fargate agents permission to make AWS API calls on your behalf.
22423
+
22424
+ Some tasks do not have an execution role.
22425
+
22426
+ :default: - undefined
22427
+ '''
22428
+ result = self._values.get("execution_role")
22429
+ return typing.cast(typing.Optional[_IRole_235f5d8e], result)
22430
+
22298
22431
  @builtins.property
22299
22432
  def network_mode(self) -> typing.Optional["NetworkMode"]:
22300
22433
  '''The networking mode to use for the containers in the task.
@@ -23027,6 +23160,7 @@ class FargateServiceProps(BaseServiceOptions):
23027
23160
  jsii_struct_bases=[CommonTaskDefinitionAttributes],
23028
23161
  name_mapping={
23029
23162
  "task_definition_arn": "taskDefinitionArn",
23163
+ "execution_role": "executionRole",
23030
23164
  "network_mode": "networkMode",
23031
23165
  "task_role": "taskRole",
23032
23166
  },
@@ -23036,12 +23170,14 @@ class FargateTaskDefinitionAttributes(CommonTaskDefinitionAttributes):
23036
23170
  self,
23037
23171
  *,
23038
23172
  task_definition_arn: builtins.str,
23173
+ execution_role: typing.Optional[_IRole_235f5d8e] = None,
23039
23174
  network_mode: typing.Optional["NetworkMode"] = None,
23040
23175
  task_role: typing.Optional[_IRole_235f5d8e] = None,
23041
23176
  ) -> None:
23042
23177
  '''Attributes used to import an existing Fargate task definition.
23043
23178
 
23044
23179
  :param task_definition_arn: The arn of the task definition.
23180
+ :param execution_role: The IAM role that grants containers and Fargate agents permission to make AWS API calls on your behalf. Some tasks do not have an execution role. Default: - undefined
23045
23181
  :param network_mode: The networking mode to use for the containers in the task. Default: Network mode cannot be provided to the imported task.
23046
23182
  :param task_role: The name of the IAM role that grants containers in the task permission to call AWS APIs on your behalf. Default: Permissions cannot be granted to the imported task.
23047
23183
 
@@ -23060,6 +23196,7 @@ class FargateTaskDefinitionAttributes(CommonTaskDefinitionAttributes):
23060
23196
  task_definition_arn="taskDefinitionArn",
23061
23197
 
23062
23198
  # the properties below are optional
23199
+ execution_role=role,
23063
23200
  network_mode=ecs.NetworkMode.NONE,
23064
23201
  task_role=role
23065
23202
  )
@@ -23067,11 +23204,14 @@ class FargateTaskDefinitionAttributes(CommonTaskDefinitionAttributes):
23067
23204
  if __debug__:
23068
23205
  type_hints = typing.get_type_hints(_typecheckingstub__5dd329152ba42239c8e48630ce2d0477a28dd88014af62f4536ef752f002010e)
23069
23206
  check_type(argname="argument task_definition_arn", value=task_definition_arn, expected_type=type_hints["task_definition_arn"])
23207
+ check_type(argname="argument execution_role", value=execution_role, expected_type=type_hints["execution_role"])
23070
23208
  check_type(argname="argument network_mode", value=network_mode, expected_type=type_hints["network_mode"])
23071
23209
  check_type(argname="argument task_role", value=task_role, expected_type=type_hints["task_role"])
23072
23210
  self._values: typing.Dict[builtins.str, typing.Any] = {
23073
23211
  "task_definition_arn": task_definition_arn,
23074
23212
  }
23213
+ if execution_role is not None:
23214
+ self._values["execution_role"] = execution_role
23075
23215
  if network_mode is not None:
23076
23216
  self._values["network_mode"] = network_mode
23077
23217
  if task_role is not None:
@@ -23084,6 +23224,17 @@ class FargateTaskDefinitionAttributes(CommonTaskDefinitionAttributes):
23084
23224
  assert result is not None, "Required property 'task_definition_arn' is missing"
23085
23225
  return typing.cast(builtins.str, result)
23086
23226
 
23227
+ @builtins.property
23228
+ def execution_role(self) -> typing.Optional[_IRole_235f5d8e]:
23229
+ '''The IAM role that grants containers and Fargate agents permission to make AWS API calls on your behalf.
23230
+
23231
+ Some tasks do not have an execution role.
23232
+
23233
+ :default: - undefined
23234
+ '''
23235
+ result = self._values.get("execution_role")
23236
+ return typing.cast(typing.Optional[_IRole_235f5d8e], result)
23237
+
23087
23238
  @builtins.property
23088
23239
  def network_mode(self) -> typing.Optional["NetworkMode"]:
23089
23240
  '''The networking mode to use for the containers in the task.
@@ -23682,6 +23833,11 @@ class FirelensLogRouter(
23682
23833
  namespace="namespace",
23683
23834
  value="value"
23684
23835
  )],
23836
+ ulimits=[ecs.Ulimit(
23837
+ hard_limit=123,
23838
+ name=ecs.UlimitName.CORE,
23839
+ soft_limit=123
23840
+ )],
23685
23841
  user="user",
23686
23842
  working_directory="workingDirectory"
23687
23843
  )
@@ -23724,6 +23880,7 @@ class FirelensLogRouter(
23724
23880
  start_timeout: typing.Optional[_Duration_4839e8c3] = None,
23725
23881
  stop_timeout: typing.Optional[_Duration_4839e8c3] = None,
23726
23882
  system_controls: typing.Optional[typing.Sequence[typing.Union["SystemControl", typing.Dict[builtins.str, typing.Any]]]] = None,
23883
+ ulimits: typing.Optional[typing.Sequence[typing.Union["Ulimit", typing.Dict[builtins.str, typing.Any]]]] = None,
23727
23884
  user: typing.Optional[builtins.str] = None,
23728
23885
  working_directory: typing.Optional[builtins.str] = None,
23729
23886
  ) -> None:
@@ -23763,6 +23920,7 @@ class FirelensLogRouter(
23763
23920
  :param start_timeout: Time duration (in seconds) to wait before giving up on resolving dependencies for a container. Default: - none
23764
23921
  :param stop_timeout: Time duration (in seconds) to wait before the container is forcefully killed if it doesn't exit normally on its own. Default: - none
23765
23922
  :param system_controls: A list of namespaced kernel parameters to set in the container. Default: - No system controls are set.
23923
+ :param ulimits: An array of ulimits to set in the container.
23766
23924
  :param user: The user name to use inside the container. Default: root
23767
23925
  :param working_directory: The working directory in which to run commands inside the container. Default: /
23768
23926
  '''
@@ -23803,6 +23961,7 @@ class FirelensLogRouter(
23803
23961
  start_timeout=start_timeout,
23804
23962
  stop_timeout=stop_timeout,
23805
23963
  system_controls=system_controls,
23964
+ ulimits=ulimits,
23806
23965
  user=user,
23807
23966
  working_directory=working_directory,
23808
23967
  )
@@ -23864,6 +24023,7 @@ class FirelensLogRouter(
23864
24023
  "start_timeout": "startTimeout",
23865
24024
  "stop_timeout": "stopTimeout",
23866
24025
  "system_controls": "systemControls",
24026
+ "ulimits": "ulimits",
23867
24027
  "user": "user",
23868
24028
  "working_directory": "workingDirectory",
23869
24029
  "firelens_config": "firelensConfig",
@@ -23903,6 +24063,7 @@ class FirelensLogRouterDefinitionOptions(ContainerDefinitionOptions):
23903
24063
  start_timeout: typing.Optional[_Duration_4839e8c3] = None,
23904
24064
  stop_timeout: typing.Optional[_Duration_4839e8c3] = None,
23905
24065
  system_controls: typing.Optional[typing.Sequence[typing.Union["SystemControl", typing.Dict[builtins.str, typing.Any]]]] = None,
24066
+ ulimits: typing.Optional[typing.Sequence[typing.Union["Ulimit", typing.Dict[builtins.str, typing.Any]]]] = None,
23906
24067
  user: typing.Optional[builtins.str] = None,
23907
24068
  working_directory: typing.Optional[builtins.str] = None,
23908
24069
  firelens_config: typing.Union[FirelensConfig, typing.Dict[builtins.str, typing.Any]],
@@ -23939,6 +24100,7 @@ class FirelensLogRouterDefinitionOptions(ContainerDefinitionOptions):
23939
24100
  :param start_timeout: Time duration (in seconds) to wait before giving up on resolving dependencies for a container. Default: - none
23940
24101
  :param stop_timeout: Time duration (in seconds) to wait before the container is forcefully killed if it doesn't exit normally on its own. Default: - none
23941
24102
  :param system_controls: A list of namespaced kernel parameters to set in the container. Default: - No system controls are set.
24103
+ :param ulimits: An array of ulimits to set in the container.
23942
24104
  :param user: The user name to use inside the container. Default: root
23943
24105
  :param working_directory: The working directory in which to run commands inside the container. Default: /
23944
24106
  :param firelens_config: Firelens configuration.
@@ -24029,6 +24191,11 @@ class FirelensLogRouterDefinitionOptions(ContainerDefinitionOptions):
24029
24191
  namespace="namespace",
24030
24192
  value="value"
24031
24193
  )],
24194
+ ulimits=[ecs.Ulimit(
24195
+ hard_limit=123,
24196
+ name=ecs.UlimitName.CORE,
24197
+ soft_limit=123
24198
+ )],
24032
24199
  user="user",
24033
24200
  working_directory="workingDirectory"
24034
24201
  )
@@ -24069,6 +24236,7 @@ class FirelensLogRouterDefinitionOptions(ContainerDefinitionOptions):
24069
24236
  check_type(argname="argument start_timeout", value=start_timeout, expected_type=type_hints["start_timeout"])
24070
24237
  check_type(argname="argument stop_timeout", value=stop_timeout, expected_type=type_hints["stop_timeout"])
24071
24238
  check_type(argname="argument system_controls", value=system_controls, expected_type=type_hints["system_controls"])
24239
+ check_type(argname="argument ulimits", value=ulimits, expected_type=type_hints["ulimits"])
24072
24240
  check_type(argname="argument user", value=user, expected_type=type_hints["user"])
24073
24241
  check_type(argname="argument working_directory", value=working_directory, expected_type=type_hints["working_directory"])
24074
24242
  check_type(argname="argument firelens_config", value=firelens_config, expected_type=type_hints["firelens_config"])
@@ -24134,6 +24302,8 @@ class FirelensLogRouterDefinitionOptions(ContainerDefinitionOptions):
24134
24302
  self._values["stop_timeout"] = stop_timeout
24135
24303
  if system_controls is not None:
24136
24304
  self._values["system_controls"] = system_controls
24305
+ if ulimits is not None:
24306
+ self._values["ulimits"] = ulimits
24137
24307
  if user is not None:
24138
24308
  self._values["user"] = user
24139
24309
  if working_directory is not None:
@@ -24460,6 +24630,12 @@ class FirelensLogRouterDefinitionOptions(ContainerDefinitionOptions):
24460
24630
  result = self._values.get("system_controls")
24461
24631
  return typing.cast(typing.Optional[typing.List["SystemControl"]], result)
24462
24632
 
24633
+ @builtins.property
24634
+ def ulimits(self) -> typing.Optional[typing.List["Ulimit"]]:
24635
+ '''An array of ulimits to set in the container.'''
24636
+ result = self._values.get("ulimits")
24637
+ return typing.cast(typing.Optional[typing.List["Ulimit"]], result)
24638
+
24463
24639
  @builtins.property
24464
24640
  def user(self) -> typing.Optional[builtins.str]:
24465
24641
  '''The user name to use inside the container.
@@ -24531,6 +24707,7 @@ class FirelensLogRouterDefinitionOptions(ContainerDefinitionOptions):
24531
24707
  "start_timeout": "startTimeout",
24532
24708
  "stop_timeout": "stopTimeout",
24533
24709
  "system_controls": "systemControls",
24710
+ "ulimits": "ulimits",
24534
24711
  "user": "user",
24535
24712
  "working_directory": "workingDirectory",
24536
24713
  "task_definition": "taskDefinition",
@@ -24571,6 +24748,7 @@ class FirelensLogRouterProps(ContainerDefinitionProps):
24571
24748
  start_timeout: typing.Optional[_Duration_4839e8c3] = None,
24572
24749
  stop_timeout: typing.Optional[_Duration_4839e8c3] = None,
24573
24750
  system_controls: typing.Optional[typing.Sequence[typing.Union["SystemControl", typing.Dict[builtins.str, typing.Any]]]] = None,
24751
+ ulimits: typing.Optional[typing.Sequence[typing.Union["Ulimit", typing.Dict[builtins.str, typing.Any]]]] = None,
24574
24752
  user: typing.Optional[builtins.str] = None,
24575
24753
  working_directory: typing.Optional[builtins.str] = None,
24576
24754
  task_definition: "TaskDefinition",
@@ -24608,6 +24786,7 @@ class FirelensLogRouterProps(ContainerDefinitionProps):
24608
24786
  :param start_timeout: Time duration (in seconds) to wait before giving up on resolving dependencies for a container. Default: - none
24609
24787
  :param stop_timeout: Time duration (in seconds) to wait before the container is forcefully killed if it doesn't exit normally on its own. Default: - none
24610
24788
  :param system_controls: A list of namespaced kernel parameters to set in the container. Default: - No system controls are set.
24789
+ :param ulimits: An array of ulimits to set in the container.
24611
24790
  :param user: The user name to use inside the container. Default: root
24612
24791
  :param working_directory: The working directory in which to run commands inside the container. Default: /
24613
24792
  :param task_definition: The name of the task definition that includes this container definition. [disable-awslint:ref-via-interface]
@@ -24701,6 +24880,11 @@ class FirelensLogRouterProps(ContainerDefinitionProps):
24701
24880
  namespace="namespace",
24702
24881
  value="value"
24703
24882
  )],
24883
+ ulimits=[ecs.Ulimit(
24884
+ hard_limit=123,
24885
+ name=ecs.UlimitName.CORE,
24886
+ soft_limit=123
24887
+ )],
24704
24888
  user="user",
24705
24889
  working_directory="workingDirectory"
24706
24890
  )
@@ -24741,6 +24925,7 @@ class FirelensLogRouterProps(ContainerDefinitionProps):
24741
24925
  check_type(argname="argument start_timeout", value=start_timeout, expected_type=type_hints["start_timeout"])
24742
24926
  check_type(argname="argument stop_timeout", value=stop_timeout, expected_type=type_hints["stop_timeout"])
24743
24927
  check_type(argname="argument system_controls", value=system_controls, expected_type=type_hints["system_controls"])
24928
+ check_type(argname="argument ulimits", value=ulimits, expected_type=type_hints["ulimits"])
24744
24929
  check_type(argname="argument user", value=user, expected_type=type_hints["user"])
24745
24930
  check_type(argname="argument working_directory", value=working_directory, expected_type=type_hints["working_directory"])
24746
24931
  check_type(argname="argument task_definition", value=task_definition, expected_type=type_hints["task_definition"])
@@ -24808,6 +24993,8 @@ class FirelensLogRouterProps(ContainerDefinitionProps):
24808
24993
  self._values["stop_timeout"] = stop_timeout
24809
24994
  if system_controls is not None:
24810
24995
  self._values["system_controls"] = system_controls
24996
+ if ulimits is not None:
24997
+ self._values["ulimits"] = ulimits
24811
24998
  if user is not None:
24812
24999
  self._values["user"] = user
24813
25000
  if working_directory is not None:
@@ -25134,6 +25321,12 @@ class FirelensLogRouterProps(ContainerDefinitionProps):
25134
25321
  result = self._values.get("system_controls")
25135
25322
  return typing.cast(typing.Optional[typing.List["SystemControl"]], result)
25136
25323
 
25324
+ @builtins.property
25325
+ def ulimits(self) -> typing.Optional[typing.List["Ulimit"]]:
25326
+ '''An array of ulimits to set in the container.'''
25327
+ result = self._values.get("ulimits")
25328
+ return typing.cast(typing.Optional[typing.List["Ulimit"]], result)
25329
+
25137
25330
  @builtins.property
25138
25331
  def user(self) -> typing.Optional[builtins.str]:
25139
25332
  '''The user name to use inside the container.
@@ -27305,17 +27498,17 @@ class LogDriver(
27305
27498
 
27306
27499
  Example::
27307
27500
 
27501
+ # secret: ecs.Secret
27502
+
27503
+
27308
27504
  # Create a Task Definition for the container to start
27309
27505
  task_definition = ecs.Ec2TaskDefinition(self, "TaskDef")
27310
27506
  task_definition.add_container("TheContainer",
27311
27507
  image=ecs.ContainerImage.from_registry("example-image"),
27312
27508
  memory_limit_mi_b=256,
27313
- logging=ecs.LogDrivers.firelens(
27314
- options={
27315
- "Name": "firehose",
27316
- "region": "us-west-2",
27317
- "delivery_stream": "my-stream"
27318
- }
27509
+ logging=ecs.LogDrivers.splunk(
27510
+ secret_token=secret,
27511
+ url="my-splunk-url"
27319
27512
  )
27320
27513
  )
27321
27514
  '''
@@ -27508,12 +27701,18 @@ class LogDrivers(metaclass=jsii.JSIIMeta, jsii_type="aws-cdk-lib.aws_ecs.LogDriv
27508
27701
 
27509
27702
  Example::
27510
27703
 
27704
+ # secret: ecs.Secret
27705
+
27706
+
27511
27707
  # Create a Task Definition for the container to start
27512
27708
  task_definition = ecs.Ec2TaskDefinition(self, "TaskDef")
27513
27709
  task_definition.add_container("TheContainer",
27514
27710
  image=ecs.ContainerImage.from_registry("example-image"),
27515
27711
  memory_limit_mi_b=256,
27516
- logging=ecs.LogDrivers.aws_logs(stream_prefix="EventDemo")
27712
+ logging=ecs.LogDrivers.splunk(
27713
+ secret_token=secret,
27714
+ url="my-splunk-url"
27715
+ )
27517
27716
  )
27518
27717
  '''
27519
27718
 
@@ -28304,7 +28503,8 @@ class PlacementConstraint(
28304
28503
  placement_constraints=[
28305
28504
  ecs.PlacementConstraint.member_of("blieptuut")
28306
28505
  ]
28307
- )
28506
+ ),
28507
+ propagated_tag_source=ecs.PropagatedTagSource.TASK_DEFINITION
28308
28508
  )
28309
28509
  '''
28310
28510
 
@@ -28383,7 +28583,8 @@ class PlacementStrategy(
28383
28583
  placement_constraints=[
28384
28584
  ecs.PlacementConstraint.member_of("blieptuut")
28385
28585
  ]
28386
- )
28586
+ ),
28587
+ propagated_tag_source=ecs.PropagatedTagSource.TASK_DEFINITION
28387
28588
  )
28388
28589
  '''
28389
28590
 
@@ -28692,7 +28893,42 @@ class PortMapping:
28692
28893
 
28693
28894
  @jsii.enum(jsii_type="aws-cdk-lib.aws_ecs.PropagatedTagSource")
28694
28895
  class PropagatedTagSource(enum.Enum):
28695
- '''Propagate tags from either service or task definition.'''
28896
+ '''Propagate tags from either service or task definition.
28897
+
28898
+ :exampleMetadata: infused
28899
+
28900
+ Example::
28901
+
28902
+ vpc = ec2.Vpc.from_lookup(self, "Vpc",
28903
+ is_default=True
28904
+ )
28905
+
28906
+ cluster = ecs.Cluster(self, "FargateCluster", vpc=vpc)
28907
+
28908
+ task_definition = ecs.TaskDefinition(self, "TD",
28909
+ memory_mi_b="512",
28910
+ cpu="256",
28911
+ compatibility=ecs.Compatibility.FARGATE
28912
+ )
28913
+
28914
+ container_definition = task_definition.add_container("TheContainer",
28915
+ image=ecs.ContainerImage.from_registry("foo/bar"),
28916
+ memory_limit_mi_b=256
28917
+ )
28918
+
28919
+ run_task = tasks.EcsRunTask(self, "RunFargate",
28920
+ integration_pattern=sfn.IntegrationPattern.RUN_JOB,
28921
+ cluster=cluster,
28922
+ task_definition=task_definition,
28923
+ assign_public_ip=True,
28924
+ container_overrides=[tasks.ContainerOverride(
28925
+ container_definition=container_definition,
28926
+ environment=[tasks.TaskEnvironmentVariable(name="SOME_KEY", value=sfn.JsonPath.string_at("$.SomeKey"))]
28927
+ )],
28928
+ launch_target=tasks.EcsFargateLaunchTarget(),
28929
+ propagated_tag_source=ecs.PropagatedTagSource.TASK_DEFINITION
28930
+ )
28931
+ '''
28696
28932
 
28697
28933
  SERVICE = "SERVICE"
28698
28934
  '''Propagate tags from service.'''
@@ -28846,17 +29082,17 @@ class RepositoryImage(
28846
29082
  Example::
28847
29083
 
28848
29084
  # Example automatically generated from non-compiling source. May contain errors.
28849
- import aws_cdk.aws_batch as batch
29085
+ import aws_cdk.aws_batch_alpha as batch
28850
29086
  from aws_cdk.aws_ecs import ContainerImage
28851
29087
 
28852
29088
 
28853
29089
  job_queue = batch.JobQueue(self, "MyQueue",
28854
- compute_environments=[{
28855
- "compute_environment": batch.ComputeEnvironment(self, "ComputeEnvironment",
29090
+ compute_environments=[batch.OrderedComputeEnvironment(
29091
+ compute_environment=batch.ComputeEnvironment(self, "ComputeEnvironment",
28856
29092
  managed=False
28857
29093
  ),
28858
- "order": 1
28859
- }
29094
+ order=1
29095
+ )
28860
29096
  ]
28861
29097
  )
28862
29098
 
@@ -28869,14 +29105,14 @@ class RepositoryImage(
28869
29105
  queue = sqs.Queue(self, "Queue")
28870
29106
 
28871
29107
  rule = events.Rule(self, "Rule",
28872
- schedule=events.Schedule.rate(cdk.Duration.hours(1))
29108
+ schedule=events.Schedule.rate(Duration.hours(1))
28873
29109
  )
28874
29110
 
28875
29111
  rule.add_target(targets.BatchJob(job_queue.job_queue_arn, job_queue, job_definition.job_definition_arn, job_definition,
28876
29112
  dead_letter_queue=queue,
28877
29113
  event=events.RuleTargetInput.from_object({"SomeParam": "SomeValue"}),
28878
29114
  retry_attempts=2,
28879
- max_event_age=cdk.Duration.hours(2)
29115
+ max_event_age=Duration.hours(2)
28880
29116
  ))
28881
29117
  '''
28882
29118
 
@@ -30118,19 +30354,18 @@ class ServiceConnectProps:
30118
30354
 
30119
30355
  Example::
30120
30356
 
30121
- # Example automatically generated from non-compiling source. May contain errors.
30122
30357
  # cluster: ecs.Cluster
30123
30358
  # task_definition: ecs.TaskDefinition
30124
- # container: ecs.ContainerDefinition
30359
+ # container_options: ecs.ContainerDefinitionOptions
30360
+
30125
30361
 
30362
+ container = task_definition.add_container("MyContainer", container_options)
30126
30363
 
30127
30364
  container.add_port_mappings(
30128
30365
  name="api",
30129
30366
  container_port=8080
30130
30367
  )
30131
30368
 
30132
- task_definition.add_container(container)
30133
-
30134
30369
  cluster.add_default_cloud_map_namespace(
30135
30370
  name="local"
30136
30371
  )
@@ -31405,31 +31640,20 @@ class TaskDefinition(
31405
31640
 
31406
31641
  Example::
31407
31642
 
31408
- # task_definition: ecs.TaskDefinition
31409
31643
  # cluster: ecs.Cluster
31644
+ # task_definition: ecs.TaskDefinition
31645
+ # vpc: ec2.Vpc
31410
31646
 
31647
+ service = ecs.FargateService(self, "Service", cluster=cluster, task_definition=task_definition)
31411
31648
 
31412
- # Add a container to the task definition
31413
- specific_container = task_definition.add_container("Container",
31414
- image=ecs.ContainerImage.from_registry("/aws/aws-example-app"),
31415
- memory_limit_mi_b=2048
31416
- )
31417
-
31418
- # Add a port mapping
31419
- specific_container.add_port_mappings(
31420
- container_port=7600,
31421
- protocol=ecs.Protocol.TCP
31422
- )
31423
-
31424
- ecs.Ec2Service(self, "Service",
31425
- cluster=cluster,
31426
- task_definition=task_definition,
31427
- cloud_map_options=ecs.CloudMapOptions(
31428
- # Create SRV records - useful for bridge networking
31429
- dns_record_type=cloudmap.DnsRecordType.SRV,
31430
- # Targets port TCP port 7600 `specificContainer`
31431
- container=specific_container,
31432
- container_port=7600
31649
+ lb = elbv2.ApplicationLoadBalancer(self, "LB", vpc=vpc, internet_facing=True)
31650
+ listener = lb.add_listener("Listener", port=80)
31651
+ service.register_load_balancer_targets(
31652
+ container_name="web",
31653
+ container_port=80,
31654
+ new_target_group_id="ECS",
31655
+ listener=ecs.ListenerConfig.application_listener(listener,
31656
+ protocol=elbv2.ApplicationProtocol.HTTPS
31433
31657
  )
31434
31658
  )
31435
31659
  '''
@@ -31531,6 +31755,7 @@ class TaskDefinition(
31531
31755
  *,
31532
31756
  compatibility: typing.Optional[Compatibility] = None,
31533
31757
  task_definition_arn: builtins.str,
31758
+ execution_role: typing.Optional[_IRole_235f5d8e] = None,
31534
31759
  network_mode: typing.Optional[NetworkMode] = None,
31535
31760
  task_role: typing.Optional[_IRole_235f5d8e] = None,
31536
31761
  ) -> ITaskDefinition:
@@ -31540,6 +31765,7 @@ class TaskDefinition(
31540
31765
  :param id: -
31541
31766
  :param compatibility: What launch types this task definition should be compatible with. Default: Compatibility.EC2_AND_FARGATE
31542
31767
  :param task_definition_arn: The arn of the task definition.
31768
+ :param execution_role: The IAM role that grants containers and Fargate agents permission to make AWS API calls on your behalf. Some tasks do not have an execution role. Default: - undefined
31543
31769
  :param network_mode: The networking mode to use for the containers in the task. Default: Network mode cannot be provided to the imported task.
31544
31770
  :param task_role: The name of the IAM role that grants containers in the task permission to call AWS APIs on your behalf. Default: Permissions cannot be granted to the imported task.
31545
31771
  '''
@@ -31550,6 +31776,7 @@ class TaskDefinition(
31550
31776
  attrs = TaskDefinitionAttributes(
31551
31777
  compatibility=compatibility,
31552
31778
  task_definition_arn=task_definition_arn,
31779
+ execution_role=execution_role,
31553
31780
  network_mode=network_mode,
31554
31781
  task_role=task_role,
31555
31782
  )
@@ -31591,6 +31818,7 @@ class TaskDefinition(
31591
31818
  start_timeout: typing.Optional[_Duration_4839e8c3] = None,
31592
31819
  stop_timeout: typing.Optional[_Duration_4839e8c3] = None,
31593
31820
  system_controls: typing.Optional[typing.Sequence[typing.Union[SystemControl, typing.Dict[builtins.str, typing.Any]]]] = None,
31821
+ ulimits: typing.Optional[typing.Sequence[typing.Union["Ulimit", typing.Dict[builtins.str, typing.Any]]]] = None,
31594
31822
  user: typing.Optional[builtins.str] = None,
31595
31823
  working_directory: typing.Optional[builtins.str] = None,
31596
31824
  ) -> ContainerDefinition:
@@ -31627,6 +31855,7 @@ class TaskDefinition(
31627
31855
  :param start_timeout: Time duration (in seconds) to wait before giving up on resolving dependencies for a container. Default: - none
31628
31856
  :param stop_timeout: Time duration (in seconds) to wait before the container is forcefully killed if it doesn't exit normally on its own. Default: - none
31629
31857
  :param system_controls: A list of namespaced kernel parameters to set in the container. Default: - No system controls are set.
31858
+ :param ulimits: An array of ulimits to set in the container.
31630
31859
  :param user: The user name to use inside the container. Default: root
31631
31860
  :param working_directory: The working directory in which to run commands inside the container. Default: /
31632
31861
  '''
@@ -31664,6 +31893,7 @@ class TaskDefinition(
31664
31893
  start_timeout=start_timeout,
31665
31894
  stop_timeout=stop_timeout,
31666
31895
  system_controls=system_controls,
31896
+ ulimits=ulimits,
31667
31897
  user=user,
31668
31898
  working_directory=working_directory,
31669
31899
  )
@@ -31720,6 +31950,7 @@ class TaskDefinition(
31720
31950
  start_timeout: typing.Optional[_Duration_4839e8c3] = None,
31721
31951
  stop_timeout: typing.Optional[_Duration_4839e8c3] = None,
31722
31952
  system_controls: typing.Optional[typing.Sequence[typing.Union[SystemControl, typing.Dict[builtins.str, typing.Any]]]] = None,
31953
+ ulimits: typing.Optional[typing.Sequence[typing.Union["Ulimit", typing.Dict[builtins.str, typing.Any]]]] = None,
31723
31954
  user: typing.Optional[builtins.str] = None,
31724
31955
  working_directory: typing.Optional[builtins.str] = None,
31725
31956
  ) -> FirelensLogRouter:
@@ -31757,6 +31988,7 @@ class TaskDefinition(
31757
31988
  :param start_timeout: Time duration (in seconds) to wait before giving up on resolving dependencies for a container. Default: - none
31758
31989
  :param stop_timeout: Time duration (in seconds) to wait before the container is forcefully killed if it doesn't exit normally on its own. Default: - none
31759
31990
  :param system_controls: A list of namespaced kernel parameters to set in the container. Default: - No system controls are set.
31991
+ :param ulimits: An array of ulimits to set in the container.
31760
31992
  :param user: The user name to use inside the container. Default: root
31761
31993
  :param working_directory: The working directory in which to run commands inside the container. Default: /
31762
31994
  '''
@@ -31795,6 +32027,7 @@ class TaskDefinition(
31795
32027
  start_timeout=start_timeout,
31796
32028
  stop_timeout=stop_timeout,
31797
32029
  system_controls=system_controls,
32030
+ ulimits=ulimits,
31798
32031
  user=user,
31799
32032
  working_directory=working_directory,
31800
32033
  )
@@ -32042,6 +32275,7 @@ class TaskDefinition(
32042
32275
  jsii_struct_bases=[CommonTaskDefinitionAttributes],
32043
32276
  name_mapping={
32044
32277
  "task_definition_arn": "taskDefinitionArn",
32278
+ "execution_role": "executionRole",
32045
32279
  "network_mode": "networkMode",
32046
32280
  "task_role": "taskRole",
32047
32281
  "compatibility": "compatibility",
@@ -32052,6 +32286,7 @@ class TaskDefinitionAttributes(CommonTaskDefinitionAttributes):
32052
32286
  self,
32053
32287
  *,
32054
32288
  task_definition_arn: builtins.str,
32289
+ execution_role: typing.Optional[_IRole_235f5d8e] = None,
32055
32290
  network_mode: typing.Optional[NetworkMode] = None,
32056
32291
  task_role: typing.Optional[_IRole_235f5d8e] = None,
32057
32292
  compatibility: typing.Optional[Compatibility] = None,
@@ -32059,6 +32294,7 @@ class TaskDefinitionAttributes(CommonTaskDefinitionAttributes):
32059
32294
  '''A reference to an existing task definition.
32060
32295
 
32061
32296
  :param task_definition_arn: The arn of the task definition.
32297
+ :param execution_role: The IAM role that grants containers and Fargate agents permission to make AWS API calls on your behalf. Some tasks do not have an execution role. Default: - undefined
32062
32298
  :param network_mode: The networking mode to use for the containers in the task. Default: Network mode cannot be provided to the imported task.
32063
32299
  :param task_role: The name of the IAM role that grants containers in the task permission to call AWS APIs on your behalf. Default: Permissions cannot be granted to the imported task.
32064
32300
  :param compatibility: What launch types this task definition should be compatible with. Default: Compatibility.EC2_AND_FARGATE
@@ -32079,6 +32315,7 @@ class TaskDefinitionAttributes(CommonTaskDefinitionAttributes):
32079
32315
 
32080
32316
  # the properties below are optional
32081
32317
  compatibility=ecs.Compatibility.EC2,
32318
+ execution_role=role,
32082
32319
  network_mode=ecs.NetworkMode.NONE,
32083
32320
  task_role=role
32084
32321
  )
@@ -32086,12 +32323,15 @@ class TaskDefinitionAttributes(CommonTaskDefinitionAttributes):
32086
32323
  if __debug__:
32087
32324
  type_hints = typing.get_type_hints(_typecheckingstub__723c7f01009409e12e945705433183d486be735607b50d3b8dd0ec765a5e03e3)
32088
32325
  check_type(argname="argument task_definition_arn", value=task_definition_arn, expected_type=type_hints["task_definition_arn"])
32326
+ check_type(argname="argument execution_role", value=execution_role, expected_type=type_hints["execution_role"])
32089
32327
  check_type(argname="argument network_mode", value=network_mode, expected_type=type_hints["network_mode"])
32090
32328
  check_type(argname="argument task_role", value=task_role, expected_type=type_hints["task_role"])
32091
32329
  check_type(argname="argument compatibility", value=compatibility, expected_type=type_hints["compatibility"])
32092
32330
  self._values: typing.Dict[builtins.str, typing.Any] = {
32093
32331
  "task_definition_arn": task_definition_arn,
32094
32332
  }
32333
+ if execution_role is not None:
32334
+ self._values["execution_role"] = execution_role
32095
32335
  if network_mode is not None:
32096
32336
  self._values["network_mode"] = network_mode
32097
32337
  if task_role is not None:
@@ -32106,6 +32346,17 @@ class TaskDefinitionAttributes(CommonTaskDefinitionAttributes):
32106
32346
  assert result is not None, "Required property 'task_definition_arn' is missing"
32107
32347
  return typing.cast(builtins.str, result)
32108
32348
 
32349
+ @builtins.property
32350
+ def execution_role(self) -> typing.Optional[_IRole_235f5d8e]:
32351
+ '''The IAM role that grants containers and Fargate agents permission to make AWS API calls on your behalf.
32352
+
32353
+ Some tasks do not have an execution role.
32354
+
32355
+ :default: - undefined
32356
+ '''
32357
+ result = self._values.get("execution_role")
32358
+ return typing.cast(typing.Optional[_IRole_235f5d8e], result)
32359
+
32109
32360
  @builtins.property
32110
32361
  def network_mode(self) -> typing.Optional[NetworkMode]:
32111
32362
  '''The networking mode to use for the containers in the task.
@@ -32240,7 +32491,8 @@ class TaskDefinitionProps(CommonTaskDefinitionProps):
32240
32491
  placement_constraints=[
32241
32492
  ecs.PlacementConstraint.member_of("blieptuut")
32242
32493
  ]
32243
- )
32494
+ ),
32495
+ propagated_tag_source=ecs.PropagatedTagSource.TASK_DEFINITION
32244
32496
  )
32245
32497
  '''
32246
32498
  if isinstance(runtime_platform, dict):
@@ -32886,7 +33138,22 @@ class Ulimit:
32886
33138
 
32887
33139
  @jsii.enum(jsii_type="aws-cdk-lib.aws_ecs.UlimitName")
32888
33140
  class UlimitName(enum.Enum):
32889
- '''Type of resource to set a limit on.'''
33141
+ '''Type of resource to set a limit on.
33142
+
33143
+ :exampleMetadata: infused
33144
+
33145
+ Example::
33146
+
33147
+ task_definition = ecs.Ec2TaskDefinition(self, "TaskDef")
33148
+ task_definition.add_container("TheContainer",
33149
+ image=ecs.ContainerImage.from_registry("example-image"),
33150
+ ulimits=[ecs.Ulimit(
33151
+ hard_limit=128,
33152
+ name=ecs.UlimitName.RSS,
33153
+ soft_limit=128
33154
+ )]
33155
+ )
33156
+ '''
32890
33157
 
32891
33158
  CORE = "CORE"
32892
33159
  CPU = "CPU"
@@ -33310,6 +33577,7 @@ class AssetImage(
33310
33577
 
33311
33578
  Example::
33312
33579
 
33580
+ from constructs import Construct
33313
33581
  from aws_cdk import App, Stack
33314
33582
  import aws_cdk.aws_ec2 as ec2
33315
33583
  import aws_cdk.aws_ecs as ecs
@@ -33317,20 +33585,21 @@ class AssetImage(
33317
33585
  import aws_cdk.cx_api as cxapi
33318
33586
  import path as path
33319
33587
 
33320
- app = App()
33588
+ class MyStack(Stack):
33589
+ def __init__(self, scope, id):
33590
+ super().__init__(scope, id)
33321
33591
 
33322
- stack = Stack(app, "aws-ecs-patterns-queue")
33323
- stack.node.set_context(cxapi.ECS_REMOVE_DEFAULT_DESIRED_COUNT, True)
33592
+ self.node.set_context(cxapi.ECS_REMOVE_DEFAULT_DESIRED_COUNT, True)
33324
33593
 
33325
- vpc = ec2.Vpc(stack, "VPC",
33326
- max_azs=2
33327
- )
33594
+ vpc = ec2.Vpc(self, "VPC",
33595
+ max_azs=2
33596
+ )
33328
33597
 
33329
- ecs_patterns.QueueProcessingFargateService(stack, "QueueProcessingService",
33330
- vpc=vpc,
33331
- memory_limit_mi_b=512,
33332
- image=ecs.AssetImage(path.join(__dirname, "..", "sqs-reader"))
33333
- )
33598
+ ecs_patterns.QueueProcessingFargateService(self, "QueueProcessingService",
33599
+ vpc=vpc,
33600
+ memory_limit_mi_b=512,
33601
+ image=ecs.AssetImage(path.join(__dirname, "..", "sqs-reader"))
33602
+ )
33334
33603
  '''
33335
33604
 
33336
33605
  def __init__(
@@ -33553,7 +33822,8 @@ class Cluster(
33553
33822
  container_definition=container_definition,
33554
33823
  environment=[tasks.TaskEnvironmentVariable(name="SOME_KEY", value=sfn.JsonPath.string_at("$.SomeKey"))]
33555
33824
  )],
33556
- launch_target=tasks.EcsFargateLaunchTarget()
33825
+ launch_target=tasks.EcsFargateLaunchTarget(),
33826
+ propagated_tag_source=ecs.PropagatedTagSource.TASK_DEFINITION
33557
33827
  )
33558
33828
  '''
33559
33829
 
@@ -34747,7 +35017,6 @@ class BaseService(
34747
35017
 
34748
35018
  Example::
34749
35019
 
34750
- # Example automatically generated from non-compiling source. May contain errors.
34751
35020
  import aws_cdk.aws_ecs as ecs
34752
35021
 
34753
35022
 
@@ -35582,6 +35851,7 @@ class Ec2TaskDefinition(
35582
35851
  id: builtins.str,
35583
35852
  *,
35584
35853
  task_definition_arn: builtins.str,
35854
+ execution_role: typing.Optional[_IRole_235f5d8e] = None,
35585
35855
  network_mode: typing.Optional[NetworkMode] = None,
35586
35856
  task_role: typing.Optional[_IRole_235f5d8e] = None,
35587
35857
  ) -> IEc2TaskDefinition:
@@ -35590,6 +35860,7 @@ class Ec2TaskDefinition(
35590
35860
  :param scope: -
35591
35861
  :param id: -
35592
35862
  :param task_definition_arn: The arn of the task definition.
35863
+ :param execution_role: The IAM role that grants containers and Fargate agents permission to make AWS API calls on your behalf. Some tasks do not have an execution role. Default: - undefined
35593
35864
  :param network_mode: The networking mode to use for the containers in the task. Default: Network mode cannot be provided to the imported task.
35594
35865
  :param task_role: The name of the IAM role that grants containers in the task permission to call AWS APIs on your behalf. Default: Permissions cannot be granted to the imported task.
35595
35866
  '''
@@ -35599,6 +35870,7 @@ class Ec2TaskDefinition(
35599
35870
  check_type(argname="argument id", value=id, expected_type=type_hints["id"])
35600
35871
  attrs = Ec2TaskDefinitionAttributes(
35601
35872
  task_definition_arn=task_definition_arn,
35873
+ execution_role=execution_role,
35602
35874
  network_mode=network_mode,
35603
35875
  task_role=task_role,
35604
35876
  )
@@ -35980,6 +36252,7 @@ class ExternalTaskDefinition(
35980
36252
  id: builtins.str,
35981
36253
  *,
35982
36254
  task_definition_arn: builtins.str,
36255
+ execution_role: typing.Optional[_IRole_235f5d8e] = None,
35983
36256
  network_mode: typing.Optional[NetworkMode] = None,
35984
36257
  task_role: typing.Optional[_IRole_235f5d8e] = None,
35985
36258
  ) -> IExternalTaskDefinition:
@@ -35988,6 +36261,7 @@ class ExternalTaskDefinition(
35988
36261
  :param scope: -
35989
36262
  :param id: -
35990
36263
  :param task_definition_arn: The arn of the task definition.
36264
+ :param execution_role: The IAM role that grants containers and Fargate agents permission to make AWS API calls on your behalf. Some tasks do not have an execution role. Default: - undefined
35991
36265
  :param network_mode: The networking mode to use for the containers in the task. Default: Network mode cannot be provided to the imported task.
35992
36266
  :param task_role: The name of the IAM role that grants containers in the task permission to call AWS APIs on your behalf. Default: Permissions cannot be granted to the imported task.
35993
36267
  '''
@@ -35997,6 +36271,7 @@ class ExternalTaskDefinition(
35997
36271
  check_type(argname="argument id", value=id, expected_type=type_hints["id"])
35998
36272
  attrs = ExternalTaskDefinitionAttributes(
35999
36273
  task_definition_arn=task_definition_arn,
36274
+ execution_role=execution_role,
36000
36275
  network_mode=network_mode,
36001
36276
  task_role=task_role,
36002
36277
  )
@@ -36280,6 +36555,7 @@ class FargateTaskDefinition(
36280
36555
  id: builtins.str,
36281
36556
  *,
36282
36557
  task_definition_arn: builtins.str,
36558
+ execution_role: typing.Optional[_IRole_235f5d8e] = None,
36283
36559
  network_mode: typing.Optional[NetworkMode] = None,
36284
36560
  task_role: typing.Optional[_IRole_235f5d8e] = None,
36285
36561
  ) -> IFargateTaskDefinition:
@@ -36288,6 +36564,7 @@ class FargateTaskDefinition(
36288
36564
  :param scope: -
36289
36565
  :param id: -
36290
36566
  :param task_definition_arn: The arn of the task definition.
36567
+ :param execution_role: The IAM role that grants containers and Fargate agents permission to make AWS API calls on your behalf. Some tasks do not have an execution role. Default: - undefined
36291
36568
  :param network_mode: The networking mode to use for the containers in the task. Default: Network mode cannot be provided to the imported task.
36292
36569
  :param task_role: The name of the IAM role that grants containers in the task permission to call AWS APIs on your behalf. Default: Permissions cannot be granted to the imported task.
36293
36570
  '''
@@ -36297,6 +36574,7 @@ class FargateTaskDefinition(
36297
36574
  check_type(argname="argument id", value=id, expected_type=type_hints["id"])
36298
36575
  attrs = FargateTaskDefinitionAttributes(
36299
36576
  task_definition_arn=task_definition_arn,
36577
+ execution_role=execution_role,
36300
36578
  network_mode=network_mode,
36301
36579
  task_role=task_role,
36302
36580
  )
@@ -38061,6 +38339,7 @@ def _typecheckingstub__8819884fed76c2873e86d47e66faba011202f5d697aa512d17a66e595
38061
38339
  def _typecheckingstub__1a458c1ea772685ddb7eb49b075e7de9bed322fac4bbee8aeab1cf6b576bc995(
38062
38340
  *,
38063
38341
  task_definition_arn: builtins.str,
38342
+ execution_role: typing.Optional[_IRole_235f5d8e] = None,
38064
38343
  network_mode: typing.Optional[NetworkMode] = None,
38065
38344
  task_role: typing.Optional[_IRole_235f5d8e] = None,
38066
38345
  ) -> None:
@@ -38113,6 +38392,7 @@ def _typecheckingstub__d8756b492e023ad8d33a399196b15b610f709400ce213e179f17dd1f6
38113
38392
  start_timeout: typing.Optional[_Duration_4839e8c3] = None,
38114
38393
  stop_timeout: typing.Optional[_Duration_4839e8c3] = None,
38115
38394
  system_controls: typing.Optional[typing.Sequence[typing.Union[SystemControl, typing.Dict[builtins.str, typing.Any]]]] = None,
38395
+ ulimits: typing.Optional[typing.Sequence[typing.Union[Ulimit, typing.Dict[builtins.str, typing.Any]]]] = None,
38116
38396
  user: typing.Optional[builtins.str] = None,
38117
38397
  working_directory: typing.Optional[builtins.str] = None,
38118
38398
  ) -> None:
@@ -38233,6 +38513,7 @@ def _typecheckingstub__f2e5f24c1574825a81dd77783d48886a430a675a0e04f03559eca98b5
38233
38513
  start_timeout: typing.Optional[_Duration_4839e8c3] = None,
38234
38514
  stop_timeout: typing.Optional[_Duration_4839e8c3] = None,
38235
38515
  system_controls: typing.Optional[typing.Sequence[typing.Union[SystemControl, typing.Dict[builtins.str, typing.Any]]]] = None,
38516
+ ulimits: typing.Optional[typing.Sequence[typing.Union[Ulimit, typing.Dict[builtins.str, typing.Any]]]] = None,
38236
38517
  user: typing.Optional[builtins.str] = None,
38237
38518
  working_directory: typing.Optional[builtins.str] = None,
38238
38519
  ) -> None:
@@ -38271,6 +38552,7 @@ def _typecheckingstub__20c974a49c79829fac0811dffaf78c449f92ae136414b96232160d37c
38271
38552
  start_timeout: typing.Optional[_Duration_4839e8c3] = None,
38272
38553
  stop_timeout: typing.Optional[_Duration_4839e8c3] = None,
38273
38554
  system_controls: typing.Optional[typing.Sequence[typing.Union[SystemControl, typing.Dict[builtins.str, typing.Any]]]] = None,
38555
+ ulimits: typing.Optional[typing.Sequence[typing.Union[Ulimit, typing.Dict[builtins.str, typing.Any]]]] = None,
38274
38556
  user: typing.Optional[builtins.str] = None,
38275
38557
  working_directory: typing.Optional[builtins.str] = None,
38276
38558
  task_definition: TaskDefinition,
@@ -38439,6 +38721,7 @@ def _typecheckingstub__95634258086aa3448fbdfd9896017a2cbeb858f382deb61186bb9e22b
38439
38721
  def _typecheckingstub__e90e61a002f578b0dbe160c067f2d3de15287892110df7eedcbbfa7f0c7d391d(
38440
38722
  *,
38441
38723
  task_definition_arn: builtins.str,
38724
+ execution_role: typing.Optional[_IRole_235f5d8e] = None,
38442
38725
  network_mode: typing.Optional[NetworkMode] = None,
38443
38726
  task_role: typing.Optional[_IRole_235f5d8e] = None,
38444
38727
  ) -> None:
@@ -38616,6 +38899,7 @@ def _typecheckingstub__3cc413964caae89bfcfbcabff8356ffe5c054f46824be99731a77b64e
38616
38899
  def _typecheckingstub__2d58078e68b889d5f10f95714f42385491c26bf6ec084584b1a1487cc3acf7a2(
38617
38900
  *,
38618
38901
  task_definition_arn: builtins.str,
38902
+ execution_role: typing.Optional[_IRole_235f5d8e] = None,
38619
38903
  network_mode: typing.Optional[NetworkMode] = None,
38620
38904
  task_role: typing.Optional[_IRole_235f5d8e] = None,
38621
38905
  ) -> None:
@@ -38671,6 +38955,7 @@ def _typecheckingstub__8290283f61f3e2d289b7e7f81cad1a5d1e9ed9dbc07ccce2b57604682
38671
38955
  def _typecheckingstub__5dd329152ba42239c8e48630ce2d0477a28dd88014af62f4536ef752f002010e(
38672
38956
  *,
38673
38957
  task_definition_arn: builtins.str,
38958
+ execution_role: typing.Optional[_IRole_235f5d8e] = None,
38674
38959
  network_mode: typing.Optional[NetworkMode] = None,
38675
38960
  task_role: typing.Optional[_IRole_235f5d8e] = None,
38676
38961
  ) -> None:
@@ -38748,6 +39033,7 @@ def _typecheckingstub__aa1e4969dd0e00a5737510c273aa9546ad4ce7bc5a8a146f2a37666b0
38748
39033
  start_timeout: typing.Optional[_Duration_4839e8c3] = None,
38749
39034
  stop_timeout: typing.Optional[_Duration_4839e8c3] = None,
38750
39035
  system_controls: typing.Optional[typing.Sequence[typing.Union[SystemControl, typing.Dict[builtins.str, typing.Any]]]] = None,
39036
+ ulimits: typing.Optional[typing.Sequence[typing.Union[Ulimit, typing.Dict[builtins.str, typing.Any]]]] = None,
38751
39037
  user: typing.Optional[builtins.str] = None,
38752
39038
  working_directory: typing.Optional[builtins.str] = None,
38753
39039
  ) -> None:
@@ -38792,6 +39078,7 @@ def _typecheckingstub__2bb9382e9a7b1b34a020902905c4bf83e2d4970135e7592e5b5a1da62
38792
39078
  start_timeout: typing.Optional[_Duration_4839e8c3] = None,
38793
39079
  stop_timeout: typing.Optional[_Duration_4839e8c3] = None,
38794
39080
  system_controls: typing.Optional[typing.Sequence[typing.Union[SystemControl, typing.Dict[builtins.str, typing.Any]]]] = None,
39081
+ ulimits: typing.Optional[typing.Sequence[typing.Union[Ulimit, typing.Dict[builtins.str, typing.Any]]]] = None,
38795
39082
  user: typing.Optional[builtins.str] = None,
38796
39083
  working_directory: typing.Optional[builtins.str] = None,
38797
39084
  firelens_config: typing.Union[FirelensConfig, typing.Dict[builtins.str, typing.Any]],
@@ -38831,6 +39118,7 @@ def _typecheckingstub__498b2375cb2035a958edbdd10ad5f4352caa5773be14b63a07c337871
38831
39118
  start_timeout: typing.Optional[_Duration_4839e8c3] = None,
38832
39119
  stop_timeout: typing.Optional[_Duration_4839e8c3] = None,
38833
39120
  system_controls: typing.Optional[typing.Sequence[typing.Union[SystemControl, typing.Dict[builtins.str, typing.Any]]]] = None,
39121
+ ulimits: typing.Optional[typing.Sequence[typing.Union[Ulimit, typing.Dict[builtins.str, typing.Any]]]] = None,
38834
39122
  user: typing.Optional[builtins.str] = None,
38835
39123
  working_directory: typing.Optional[builtins.str] = None,
38836
39124
  task_definition: TaskDefinition,
@@ -39478,6 +39766,7 @@ def _typecheckingstub__33efccb48f741fbca68f3379a33fab8d93a2872fc8c2a118c9704894b
39478
39766
  *,
39479
39767
  compatibility: typing.Optional[Compatibility] = None,
39480
39768
  task_definition_arn: builtins.str,
39769
+ execution_role: typing.Optional[_IRole_235f5d8e] = None,
39481
39770
  network_mode: typing.Optional[NetworkMode] = None,
39482
39771
  task_role: typing.Optional[_IRole_235f5d8e] = None,
39483
39772
  ) -> None:
@@ -39517,6 +39806,7 @@ def _typecheckingstub__8fe416001b357a118b80b0f9e3432c5bffbeffe29c2f7e67a02e5589c
39517
39806
  start_timeout: typing.Optional[_Duration_4839e8c3] = None,
39518
39807
  stop_timeout: typing.Optional[_Duration_4839e8c3] = None,
39519
39808
  system_controls: typing.Optional[typing.Sequence[typing.Union[SystemControl, typing.Dict[builtins.str, typing.Any]]]] = None,
39809
+ ulimits: typing.Optional[typing.Sequence[typing.Union[Ulimit, typing.Dict[builtins.str, typing.Any]]]] = None,
39520
39810
  user: typing.Optional[builtins.str] = None,
39521
39811
  working_directory: typing.Optional[builtins.str] = None,
39522
39812
  ) -> None:
@@ -39563,6 +39853,7 @@ def _typecheckingstub__a448c235107c9543bb055362134e3500d0a20b6f51e433675f952a773
39563
39853
  start_timeout: typing.Optional[_Duration_4839e8c3] = None,
39564
39854
  stop_timeout: typing.Optional[_Duration_4839e8c3] = None,
39565
39855
  system_controls: typing.Optional[typing.Sequence[typing.Union[SystemControl, typing.Dict[builtins.str, typing.Any]]]] = None,
39856
+ ulimits: typing.Optional[typing.Sequence[typing.Union[Ulimit, typing.Dict[builtins.str, typing.Any]]]] = None,
39566
39857
  user: typing.Optional[builtins.str] = None,
39567
39858
  working_directory: typing.Optional[builtins.str] = None,
39568
39859
  ) -> None:
@@ -39614,6 +39905,7 @@ def _typecheckingstub__9a9f5e275c7ec18083bd47fd70c94d0dee80deddee22c30c6ef86cb08
39614
39905
  def _typecheckingstub__723c7f01009409e12e945705433183d486be735607b50d3b8dd0ec765a5e03e3(
39615
39906
  *,
39616
39907
  task_definition_arn: builtins.str,
39908
+ execution_role: typing.Optional[_IRole_235f5d8e] = None,
39617
39909
  network_mode: typing.Optional[NetworkMode] = None,
39618
39910
  task_role: typing.Optional[_IRole_235f5d8e] = None,
39619
39911
  compatibility: typing.Optional[Compatibility] = None,
@@ -40095,6 +40387,7 @@ def _typecheckingstub__d794d0fc9ba23db2d5f4c804346c25e9732a8bd6c40b66b459e4b0596
40095
40387
  id: builtins.str,
40096
40388
  *,
40097
40389
  task_definition_arn: builtins.str,
40390
+ execution_role: typing.Optional[_IRole_235f5d8e] = None,
40098
40391
  network_mode: typing.Optional[NetworkMode] = None,
40099
40392
  task_role: typing.Optional[_IRole_235f5d8e] = None,
40100
40393
  ) -> None:
@@ -40192,6 +40485,7 @@ def _typecheckingstub__ccd4d51c36358a0ea1efb52a38fa0bccb9e2db43ee7dc217a32ca2bf2
40192
40485
  id: builtins.str,
40193
40486
  *,
40194
40487
  task_definition_arn: builtins.str,
40488
+ execution_role: typing.Optional[_IRole_235f5d8e] = None,
40195
40489
  network_mode: typing.Optional[NetworkMode] = None,
40196
40490
  task_role: typing.Optional[_IRole_235f5d8e] = None,
40197
40491
  ) -> None:
@@ -40274,6 +40568,7 @@ def _typecheckingstub__59be62eab8487bb224b6839e6560b22ec29653bf5f8e319f85996fa99
40274
40568
  id: builtins.str,
40275
40569
  *,
40276
40570
  task_definition_arn: builtins.str,
40571
+ execution_role: typing.Optional[_IRole_235f5d8e] = None,
40277
40572
  network_mode: typing.Optional[NetworkMode] = None,
40278
40573
  task_role: typing.Optional[_IRole_235f5d8e] = None,
40279
40574
  ) -> None: