aws-cdk-lib 2.115.0__py3-none-any.whl → 2.116.1__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 (66) hide show
  1. aws_cdk/__init__.py +801 -356
  2. aws_cdk/_jsii/__init__.py +1 -1
  3. aws_cdk/_jsii/{aws-cdk-lib@2.115.0.jsii.tgz → aws-cdk-lib@2.116.1.jsii.tgz} +0 -0
  4. aws_cdk/aws_apigateway/__init__.py +3 -1
  5. aws_cdk/aws_apigatewayv2/__init__.py +595 -222
  6. aws_cdk/aws_apigatewayv2_integrations/__init__.py +4 -5
  7. aws_cdk/aws_applicationautoscaling/__init__.py +51 -15
  8. aws_cdk/aws_appsync/__init__.py +14 -3
  9. aws_cdk/aws_autoscaling/__init__.py +6 -0
  10. aws_cdk/aws_b2bi/__init__.py +2445 -0
  11. aws_cdk/aws_cloud9/__init__.py +63 -63
  12. aws_cdk/aws_cloudfront/__init__.py +394 -0
  13. aws_cdk/aws_cloudfront/experimental/__init__.py +5 -2
  14. aws_cdk/aws_cloudtrail/__init__.py +90 -11
  15. aws_cdk/aws_cloudwatch/__init__.py +6 -6
  16. aws_cdk/aws_codedeploy/__init__.py +88 -15
  17. aws_cdk/aws_codepipeline/__init__.py +645 -0
  18. aws_cdk/aws_cognito/__init__.py +13 -26
  19. aws_cdk/aws_config/__init__.py +315 -1
  20. aws_cdk/aws_connect/__init__.py +532 -37
  21. aws_cdk/aws_controltower/__init__.py +4 -4
  22. aws_cdk/aws_datasync/__init__.py +6 -4
  23. aws_cdk/aws_dms/__init__.py +241 -131
  24. aws_cdk/aws_dynamodb/__init__.py +8 -0
  25. aws_cdk/aws_ec2/__init__.py +1030 -45
  26. aws_cdk/aws_ecr/__init__.py +78 -10
  27. aws_cdk/aws_ecs/__init__.py +210 -2
  28. aws_cdk/aws_ecs_patterns/__init__.py +77 -62
  29. aws_cdk/aws_eks/__init__.py +8 -1
  30. aws_cdk/aws_elasticache/__init__.py +136 -10
  31. aws_cdk/aws_elasticloadbalancingv2/__init__.py +10 -13
  32. aws_cdk/aws_emr/__init__.py +234 -17
  33. aws_cdk/aws_eventschemas/__init__.py +15 -13
  34. aws_cdk/aws_fis/__init__.py +33 -13
  35. aws_cdk/aws_gamelift/__init__.py +47 -0
  36. aws_cdk/aws_imagebuilder/__init__.py +922 -84
  37. aws_cdk/aws_internetmonitor/__init__.py +12 -10
  38. aws_cdk/aws_iot/__init__.py +26 -46
  39. aws_cdk/aws_iottwinmaker/__init__.py +36 -34
  40. aws_cdk/aws_lambda/__init__.py +19 -15
  41. aws_cdk/aws_lambda_nodejs/__init__.py +5 -2
  42. aws_cdk/aws_logs/__init__.py +6 -6
  43. aws_cdk/aws_opensearchservice/__init__.py +5 -3
  44. aws_cdk/aws_organizations/__init__.py +3 -3
  45. aws_cdk/aws_osis/__init__.py +17 -13
  46. aws_cdk/aws_rds/__init__.py +6 -0
  47. aws_cdk/aws_s3/__init__.py +4 -2
  48. aws_cdk/aws_s3outposts/__init__.py +8 -8
  49. aws_cdk/aws_sagemaker/__init__.py +17 -94
  50. aws_cdk/aws_secretsmanager/__init__.py +9 -7
  51. aws_cdk/aws_securityhub/__init__.py +18 -0
  52. aws_cdk/aws_servicecatalogappregistry/__init__.py +31 -0
  53. aws_cdk/aws_ses/__init__.py +58 -11
  54. aws_cdk/aws_sns/__init__.py +309 -10
  55. aws_cdk/aws_ssm/__init__.py +3 -5
  56. aws_cdk/aws_stepfunctions/__init__.py +335 -19
  57. aws_cdk/aws_stepfunctions_tasks/__init__.py +388 -38
  58. aws_cdk/aws_transfer/__init__.py +37 -10
  59. aws_cdk/custom_resources/__init__.py +443 -1
  60. aws_cdk/triggers/__init__.py +5 -2
  61. {aws_cdk_lib-2.115.0.dist-info → aws_cdk_lib-2.116.1.dist-info}/METADATA +1 -1
  62. {aws_cdk_lib-2.115.0.dist-info → aws_cdk_lib-2.116.1.dist-info}/RECORD +66 -65
  63. {aws_cdk_lib-2.115.0.dist-info → aws_cdk_lib-2.116.1.dist-info}/LICENSE +0 -0
  64. {aws_cdk_lib-2.115.0.dist-info → aws_cdk_lib-2.116.1.dist-info}/NOTICE +0 -0
  65. {aws_cdk_lib-2.115.0.dist-info → aws_cdk_lib-2.116.1.dist-info}/WHEEL +0 -0
  66. {aws_cdk_lib-2.115.0.dist-info → aws_cdk_lib-2.116.1.dist-info}/top_level.txt +0 -0
@@ -618,6 +618,32 @@ service = ecs.ExternalService(self, "Service",
618
618
  `Services` by default will create a security group if not provided.
619
619
  If you'd like to specify which security groups to use you can override the `securityGroups` property.
620
620
 
621
+ By default, the service will use the revision of the passed task definition generated when the `TaskDefinition`
622
+ is deployed by CloudFormation. However, this may not be desired if the revision is externally managed,
623
+ for example through CodeDeploy.
624
+
625
+ To set a specific revision number or the special `latest` revision, use the `taskDefinitionRevision` parameter:
626
+
627
+ ```python
628
+ # cluster: ecs.Cluster
629
+ # task_definition: ecs.TaskDefinition
630
+
631
+
632
+ ecs.ExternalService(self, "Service",
633
+ cluster=cluster,
634
+ task_definition=task_definition,
635
+ desired_count=5,
636
+ task_definition_revision=ecs.TaskDefinitionRevision.of(1)
637
+ )
638
+
639
+ ecs.ExternalService(self, "Service",
640
+ cluster=cluster,
641
+ task_definition=task_definition,
642
+ desired_count=5,
643
+ task_definition_revision=ecs.TaskDefinitionRevision.LATEST
644
+ )
645
+ ```
646
+
621
647
  ### Deployment circuit breaker and rollback
622
648
 
623
649
  Amazon ECS [deployment circuit breaker](https://aws.amazon.com/tw/blogs/containers/announcing-amazon-ecs-deployment-circuit-breaker/)
@@ -1124,6 +1150,31 @@ task_definition.add_container("TheContainer",
1124
1150
  )
1125
1151
  ```
1126
1152
 
1153
+ When forwarding logs to CloudWatch Logs using Fluent Bit, you can set the retention period for the newly created Log Group by specifying the `log_retention_days` parameter.
1154
+ If a Fluent Bit container has not been added, CDK will automatically add it to the task definition, and the necessary IAM permissions will be added to the task role.
1155
+ If you are adding the Fluent Bit container manually, ensure to add the `logs:PutRetentionPolicy` policy to the task role.
1156
+
1157
+ ```python
1158
+ task_definition = ecs.Ec2TaskDefinition(self, "TaskDef")
1159
+ task_definition.add_container("TheContainer",
1160
+ image=ecs.ContainerImage.from_registry("example-image"),
1161
+ memory_limit_mi_b=256,
1162
+ logging=ecs.LogDrivers.firelens(
1163
+ options={
1164
+ "Name": "cloudwatch",
1165
+ "region": "us-west-2",
1166
+ "log_group_name": "firelens-fluent-bit",
1167
+ "log_stream_prefix": "from-fluent-bit",
1168
+ "auto_create_group": "true",
1169
+ "log_retention_days": "1"
1170
+ }
1171
+ )
1172
+ )
1173
+ ```
1174
+
1175
+ > Visit [Fluent Bit CloudWatch Configuration Parameters](https://docs.fluentbit.io/manual/pipeline/outputs/cloudwatch#configuration-parameters)
1176
+ > for more details.
1177
+
1127
1178
  ### Generic Log Driver
1128
1179
 
1129
1180
  A generic log driver object exists to provide a lower level abstraction of the log driver configuration.
@@ -4158,6 +4209,7 @@ class BaseLogDriverProps:
4158
4209
  "propagate_tags": "propagateTags",
4159
4210
  "service_connect_configuration": "serviceConnectConfiguration",
4160
4211
  "service_name": "serviceName",
4212
+ "task_definition_revision": "taskDefinitionRevision",
4161
4213
  },
4162
4214
  )
4163
4215
  class BaseServiceOptions:
@@ -4179,6 +4231,7 @@ class BaseServiceOptions:
4179
4231
  propagate_tags: typing.Optional["PropagatedTagSource"] = None,
4180
4232
  service_connect_configuration: typing.Optional[typing.Union["ServiceConnectProps", typing.Dict[builtins.str, typing.Any]]] = None,
4181
4233
  service_name: typing.Optional[builtins.str] = None,
4234
+ task_definition_revision: typing.Optional["TaskDefinitionRevision"] = None,
4182
4235
  ) -> None:
4183
4236
  '''The properties for the base Ec2Service or FargateService service.
4184
4237
 
@@ -4197,6 +4250,7 @@ class BaseServiceOptions:
4197
4250
  :param propagate_tags: Specifies whether to propagate the tags from the task definition or the service to the tasks in the service. Valid values are: PropagatedTagSource.SERVICE, PropagatedTagSource.TASK_DEFINITION or PropagatedTagSource.NONE Default: PropagatedTagSource.NONE
4198
4251
  :param service_connect_configuration: Configuration for Service Connect. Default: No ports are advertised via Service Connect on this service, and the service cannot make requests to other services via Service Connect.
4199
4252
  :param service_name: The name of the service. Default: - CloudFormation-generated name.
4253
+ :param task_definition_revision: Revision number for the task definition or ``latest`` to use the latest active task revision. Default: - Uses the revision of the passed task definition deployed by CloudFormation
4200
4254
 
4201
4255
  :exampleMetadata: fixture=_generated
4202
4256
 
@@ -4212,6 +4266,7 @@ class BaseServiceOptions:
4212
4266
  # container_definition: ecs.ContainerDefinition
4213
4267
  # log_driver: ecs.LogDriver
4214
4268
  # namespace: servicediscovery.INamespace
4269
+ # task_definition_revision: ecs.TaskDefinitionRevision
4215
4270
 
4216
4271
  base_service_options = ecs.BaseServiceOptions(
4217
4272
  cluster=cluster,
@@ -4265,7 +4320,8 @@ class BaseServiceOptions:
4265
4320
  port=123
4266
4321
  )]
4267
4322
  ),
4268
- service_name="serviceName"
4323
+ service_name="serviceName",
4324
+ task_definition_revision=task_definition_revision
4269
4325
  )
4270
4326
  '''
4271
4327
  if isinstance(circuit_breaker, dict):
@@ -4295,6 +4351,7 @@ class BaseServiceOptions:
4295
4351
  check_type(argname="argument propagate_tags", value=propagate_tags, expected_type=type_hints["propagate_tags"])
4296
4352
  check_type(argname="argument service_connect_configuration", value=service_connect_configuration, expected_type=type_hints["service_connect_configuration"])
4297
4353
  check_type(argname="argument service_name", value=service_name, expected_type=type_hints["service_name"])
4354
+ check_type(argname="argument task_definition_revision", value=task_definition_revision, expected_type=type_hints["task_definition_revision"])
4298
4355
  self._values: typing.Dict[builtins.str, typing.Any] = {
4299
4356
  "cluster": cluster,
4300
4357
  }
@@ -4326,6 +4383,8 @@ class BaseServiceOptions:
4326
4383
  self._values["service_connect_configuration"] = service_connect_configuration
4327
4384
  if service_name is not None:
4328
4385
  self._values["service_name"] = service_name
4386
+ if task_definition_revision is not None:
4387
+ self._values["task_definition_revision"] = task_definition_revision
4329
4388
 
4330
4389
  @builtins.property
4331
4390
  def cluster(self) -> "ICluster":
@@ -4479,6 +4538,15 @@ class BaseServiceOptions:
4479
4538
  result = self._values.get("service_name")
4480
4539
  return typing.cast(typing.Optional[builtins.str], result)
4481
4540
 
4541
+ @builtins.property
4542
+ def task_definition_revision(self) -> typing.Optional["TaskDefinitionRevision"]:
4543
+ '''Revision number for the task definition or ``latest`` to use the latest active task revision.
4544
+
4545
+ :default: - Uses the revision of the passed task definition deployed by CloudFormation
4546
+ '''
4547
+ result = self._values.get("task_definition_revision")
4548
+ return typing.cast(typing.Optional["TaskDefinitionRevision"], result)
4549
+
4482
4550
  def __eq__(self, rhs: typing.Any) -> builtins.bool:
4483
4551
  return isinstance(rhs, self.__class__) and rhs._values == self._values
4484
4552
 
@@ -4510,6 +4578,7 @@ class BaseServiceOptions:
4510
4578
  "propagate_tags": "propagateTags",
4511
4579
  "service_connect_configuration": "serviceConnectConfiguration",
4512
4580
  "service_name": "serviceName",
4581
+ "task_definition_revision": "taskDefinitionRevision",
4513
4582
  "launch_type": "launchType",
4514
4583
  },
4515
4584
  )
@@ -4532,6 +4601,7 @@ class BaseServiceProps(BaseServiceOptions):
4532
4601
  propagate_tags: typing.Optional["PropagatedTagSource"] = None,
4533
4602
  service_connect_configuration: typing.Optional[typing.Union["ServiceConnectProps", typing.Dict[builtins.str, typing.Any]]] = None,
4534
4603
  service_name: typing.Optional[builtins.str] = None,
4604
+ task_definition_revision: typing.Optional["TaskDefinitionRevision"] = None,
4535
4605
  launch_type: "LaunchType",
4536
4606
  ) -> None:
4537
4607
  '''Complete base service properties that are required to be supplied by the implementation of the BaseService class.
@@ -4551,6 +4621,7 @@ class BaseServiceProps(BaseServiceOptions):
4551
4621
  :param propagate_tags: Specifies whether to propagate the tags from the task definition or the service to the tasks in the service. Valid values are: PropagatedTagSource.SERVICE, PropagatedTagSource.TASK_DEFINITION or PropagatedTagSource.NONE Default: PropagatedTagSource.NONE
4552
4622
  :param service_connect_configuration: Configuration for Service Connect. Default: No ports are advertised via Service Connect on this service, and the service cannot make requests to other services via Service Connect.
4553
4623
  :param service_name: The name of the service. Default: - CloudFormation-generated name.
4624
+ :param task_definition_revision: Revision number for the task definition or ``latest`` to use the latest active task revision. Default: - Uses the revision of the passed task definition deployed by CloudFormation
4554
4625
  :param launch_type: The launch type on which to run your service. LaunchType will be omitted if capacity provider strategies are specified on the service.
4555
4626
 
4556
4627
  :exampleMetadata: fixture=_generated
@@ -4567,6 +4638,7 @@ class BaseServiceProps(BaseServiceOptions):
4567
4638
  # container_definition: ecs.ContainerDefinition
4568
4639
  # log_driver: ecs.LogDriver
4569
4640
  # namespace: servicediscovery.INamespace
4641
+ # task_definition_revision: ecs.TaskDefinitionRevision
4570
4642
 
4571
4643
  base_service_props = ecs.BaseServiceProps(
4572
4644
  cluster=cluster,
@@ -4621,7 +4693,8 @@ class BaseServiceProps(BaseServiceOptions):
4621
4693
  port=123
4622
4694
  )]
4623
4695
  ),
4624
- service_name="serviceName"
4696
+ service_name="serviceName",
4697
+ task_definition_revision=task_definition_revision
4625
4698
  )
4626
4699
  '''
4627
4700
  if isinstance(circuit_breaker, dict):
@@ -4651,6 +4724,7 @@ class BaseServiceProps(BaseServiceOptions):
4651
4724
  check_type(argname="argument propagate_tags", value=propagate_tags, expected_type=type_hints["propagate_tags"])
4652
4725
  check_type(argname="argument service_connect_configuration", value=service_connect_configuration, expected_type=type_hints["service_connect_configuration"])
4653
4726
  check_type(argname="argument service_name", value=service_name, expected_type=type_hints["service_name"])
4727
+ check_type(argname="argument task_definition_revision", value=task_definition_revision, expected_type=type_hints["task_definition_revision"])
4654
4728
  check_type(argname="argument launch_type", value=launch_type, expected_type=type_hints["launch_type"])
4655
4729
  self._values: typing.Dict[builtins.str, typing.Any] = {
4656
4730
  "cluster": cluster,
@@ -4684,6 +4758,8 @@ class BaseServiceProps(BaseServiceOptions):
4684
4758
  self._values["service_connect_configuration"] = service_connect_configuration
4685
4759
  if service_name is not None:
4686
4760
  self._values["service_name"] = service_name
4761
+ if task_definition_revision is not None:
4762
+ self._values["task_definition_revision"] = task_definition_revision
4687
4763
 
4688
4764
  @builtins.property
4689
4765
  def cluster(self) -> "ICluster":
@@ -4837,6 +4913,15 @@ class BaseServiceProps(BaseServiceOptions):
4837
4913
  result = self._values.get("service_name")
4838
4914
  return typing.cast(typing.Optional[builtins.str], result)
4839
4915
 
4916
+ @builtins.property
4917
+ def task_definition_revision(self) -> typing.Optional["TaskDefinitionRevision"]:
4918
+ '''Revision number for the task definition or ``latest`` to use the latest active task revision.
4919
+
4920
+ :default: - Uses the revision of the passed task definition deployed by CloudFormation
4921
+ '''
4922
+ result = self._values.get("task_definition_revision")
4923
+ return typing.cast(typing.Optional["TaskDefinitionRevision"], result)
4924
+
4840
4925
  @builtins.property
4841
4926
  def launch_type(self) -> "LaunchType":
4842
4927
  '''The launch type on which to run your service.
@@ -20312,6 +20397,7 @@ class Ec2ServiceAttributes:
20312
20397
  "propagate_tags": "propagateTags",
20313
20398
  "service_connect_configuration": "serviceConnectConfiguration",
20314
20399
  "service_name": "serviceName",
20400
+ "task_definition_revision": "taskDefinitionRevision",
20315
20401
  "task_definition": "taskDefinition",
20316
20402
  "assign_public_ip": "assignPublicIp",
20317
20403
  "daemon": "daemon",
@@ -20340,6 +20426,7 @@ class Ec2ServiceProps(BaseServiceOptions):
20340
20426
  propagate_tags: typing.Optional["PropagatedTagSource"] = None,
20341
20427
  service_connect_configuration: typing.Optional[typing.Union["ServiceConnectProps", typing.Dict[builtins.str, typing.Any]]] = None,
20342
20428
  service_name: typing.Optional[builtins.str] = None,
20429
+ task_definition_revision: typing.Optional["TaskDefinitionRevision"] = None,
20343
20430
  task_definition: "TaskDefinition",
20344
20431
  assign_public_ip: typing.Optional[builtins.bool] = None,
20345
20432
  daemon: typing.Optional[builtins.bool] = None,
@@ -20365,6 +20452,7 @@ class Ec2ServiceProps(BaseServiceOptions):
20365
20452
  :param propagate_tags: Specifies whether to propagate the tags from the task definition or the service to the tasks in the service. Valid values are: PropagatedTagSource.SERVICE, PropagatedTagSource.TASK_DEFINITION or PropagatedTagSource.NONE Default: PropagatedTagSource.NONE
20366
20453
  :param service_connect_configuration: Configuration for Service Connect. Default: No ports are advertised via Service Connect on this service, and the service cannot make requests to other services via Service Connect.
20367
20454
  :param service_name: The name of the service. Default: - CloudFormation-generated name.
20455
+ :param task_definition_revision: Revision number for the task definition or ``latest`` to use the latest active task revision. Default: - Uses the revision of the passed task definition deployed by CloudFormation
20368
20456
  :param task_definition: The task definition to use for tasks in the service. [disable-awslint:ref-via-interface]
20369
20457
  :param assign_public_ip: Specifies whether the task's elastic network interface receives a public IP address. If true, each task will receive a public IP address. This property is only used for tasks that use the awsvpc network mode. Default: false
20370
20458
  :param daemon: Specifies whether the service will use the daemon scheduling strategy. If true, the service scheduler deploys exactly one task on each container instance in your cluster. When you are using this strategy, do not specify a desired number of tasks orany task placement strategies. Default: false
@@ -20419,6 +20507,7 @@ class Ec2ServiceProps(BaseServiceOptions):
20419
20507
  check_type(argname="argument propagate_tags", value=propagate_tags, expected_type=type_hints["propagate_tags"])
20420
20508
  check_type(argname="argument service_connect_configuration", value=service_connect_configuration, expected_type=type_hints["service_connect_configuration"])
20421
20509
  check_type(argname="argument service_name", value=service_name, expected_type=type_hints["service_name"])
20510
+ check_type(argname="argument task_definition_revision", value=task_definition_revision, expected_type=type_hints["task_definition_revision"])
20422
20511
  check_type(argname="argument task_definition", value=task_definition, expected_type=type_hints["task_definition"])
20423
20512
  check_type(argname="argument assign_public_ip", value=assign_public_ip, expected_type=type_hints["assign_public_ip"])
20424
20513
  check_type(argname="argument daemon", value=daemon, expected_type=type_hints["daemon"])
@@ -20458,6 +20547,8 @@ class Ec2ServiceProps(BaseServiceOptions):
20458
20547
  self._values["service_connect_configuration"] = service_connect_configuration
20459
20548
  if service_name is not None:
20460
20549
  self._values["service_name"] = service_name
20550
+ if task_definition_revision is not None:
20551
+ self._values["task_definition_revision"] = task_definition_revision
20461
20552
  if assign_public_ip is not None:
20462
20553
  self._values["assign_public_ip"] = assign_public_ip
20463
20554
  if daemon is not None:
@@ -20623,6 +20714,15 @@ class Ec2ServiceProps(BaseServiceOptions):
20623
20714
  result = self._values.get("service_name")
20624
20715
  return typing.cast(typing.Optional[builtins.str], result)
20625
20716
 
20717
+ @builtins.property
20718
+ def task_definition_revision(self) -> typing.Optional["TaskDefinitionRevision"]:
20719
+ '''Revision number for the task definition or ``latest`` to use the latest active task revision.
20720
+
20721
+ :default: - Uses the revision of the passed task definition deployed by CloudFormation
20722
+ '''
20723
+ result = self._values.get("task_definition_revision")
20724
+ return typing.cast(typing.Optional["TaskDefinitionRevision"], result)
20725
+
20626
20726
  @builtins.property
20627
20727
  def task_definition(self) -> "TaskDefinition":
20628
20728
  '''The task definition to use for tasks in the service.
@@ -22201,6 +22301,7 @@ class ExternalServiceAttributes:
22201
22301
  "propagate_tags": "propagateTags",
22202
22302
  "service_connect_configuration": "serviceConnectConfiguration",
22203
22303
  "service_name": "serviceName",
22304
+ "task_definition_revision": "taskDefinitionRevision",
22204
22305
  "task_definition": "taskDefinition",
22205
22306
  "security_groups": "securityGroups",
22206
22307
  },
@@ -22224,6 +22325,7 @@ class ExternalServiceProps(BaseServiceOptions):
22224
22325
  propagate_tags: typing.Optional["PropagatedTagSource"] = None,
22225
22326
  service_connect_configuration: typing.Optional[typing.Union["ServiceConnectProps", typing.Dict[builtins.str, typing.Any]]] = None,
22226
22327
  service_name: typing.Optional[builtins.str] = None,
22328
+ task_definition_revision: typing.Optional["TaskDefinitionRevision"] = None,
22227
22329
  task_definition: "TaskDefinition",
22228
22330
  security_groups: typing.Optional[typing.Sequence[_ISecurityGroup_acf8a799]] = None,
22229
22331
  ) -> None:
@@ -22244,6 +22346,7 @@ class ExternalServiceProps(BaseServiceOptions):
22244
22346
  :param propagate_tags: Specifies whether to propagate the tags from the task definition or the service to the tasks in the service. Valid values are: PropagatedTagSource.SERVICE, PropagatedTagSource.TASK_DEFINITION or PropagatedTagSource.NONE Default: PropagatedTagSource.NONE
22245
22347
  :param service_connect_configuration: Configuration for Service Connect. Default: No ports are advertised via Service Connect on this service, and the service cannot make requests to other services via Service Connect.
22246
22348
  :param service_name: The name of the service. Default: - CloudFormation-generated name.
22349
+ :param task_definition_revision: Revision number for the task definition or ``latest`` to use the latest active task revision. Default: - Uses the revision of the passed task definition deployed by CloudFormation
22247
22350
  :param task_definition: The task definition to use for tasks in the service. [disable-awslint:ref-via-interface]
22248
22351
  :param security_groups: The security groups to associate with the service. If you do not specify a security group, a new security group is created. Default: - A new security group is created.
22249
22352
 
@@ -22288,6 +22391,7 @@ class ExternalServiceProps(BaseServiceOptions):
22288
22391
  check_type(argname="argument propagate_tags", value=propagate_tags, expected_type=type_hints["propagate_tags"])
22289
22392
  check_type(argname="argument service_connect_configuration", value=service_connect_configuration, expected_type=type_hints["service_connect_configuration"])
22290
22393
  check_type(argname="argument service_name", value=service_name, expected_type=type_hints["service_name"])
22394
+ check_type(argname="argument task_definition_revision", value=task_definition_revision, expected_type=type_hints["task_definition_revision"])
22291
22395
  check_type(argname="argument task_definition", value=task_definition, expected_type=type_hints["task_definition"])
22292
22396
  check_type(argname="argument security_groups", value=security_groups, expected_type=type_hints["security_groups"])
22293
22397
  self._values: typing.Dict[builtins.str, typing.Any] = {
@@ -22322,6 +22426,8 @@ class ExternalServiceProps(BaseServiceOptions):
22322
22426
  self._values["service_connect_configuration"] = service_connect_configuration
22323
22427
  if service_name is not None:
22324
22428
  self._values["service_name"] = service_name
22429
+ if task_definition_revision is not None:
22430
+ self._values["task_definition_revision"] = task_definition_revision
22325
22431
  if security_groups is not None:
22326
22432
  self._values["security_groups"] = security_groups
22327
22433
 
@@ -22477,6 +22583,15 @@ class ExternalServiceProps(BaseServiceOptions):
22477
22583
  result = self._values.get("service_name")
22478
22584
  return typing.cast(typing.Optional[builtins.str], result)
22479
22585
 
22586
+ @builtins.property
22587
+ def task_definition_revision(self) -> typing.Optional["TaskDefinitionRevision"]:
22588
+ '''Revision number for the task definition or ``latest`` to use the latest active task revision.
22589
+
22590
+ :default: - Uses the revision of the passed task definition deployed by CloudFormation
22591
+ '''
22592
+ result = self._values.get("task_definition_revision")
22593
+ return typing.cast(typing.Optional["TaskDefinitionRevision"], result)
22594
+
22480
22595
  @builtins.property
22481
22596
  def task_definition(self) -> "TaskDefinition":
22482
22597
  '''The task definition to use for tasks in the service.
@@ -22965,6 +23080,7 @@ class FargateServiceAttributes:
22965
23080
  "propagate_tags": "propagateTags",
22966
23081
  "service_connect_configuration": "serviceConnectConfiguration",
22967
23082
  "service_name": "serviceName",
23083
+ "task_definition_revision": "taskDefinitionRevision",
22968
23084
  "task_definition": "taskDefinition",
22969
23085
  "assign_public_ip": "assignPublicIp",
22970
23086
  "platform_version": "platformVersion",
@@ -22991,6 +23107,7 @@ class FargateServiceProps(BaseServiceOptions):
22991
23107
  propagate_tags: typing.Optional["PropagatedTagSource"] = None,
22992
23108
  service_connect_configuration: typing.Optional[typing.Union["ServiceConnectProps", typing.Dict[builtins.str, typing.Any]]] = None,
22993
23109
  service_name: typing.Optional[builtins.str] = None,
23110
+ task_definition_revision: typing.Optional["TaskDefinitionRevision"] = None,
22994
23111
  task_definition: "TaskDefinition",
22995
23112
  assign_public_ip: typing.Optional[builtins.bool] = None,
22996
23113
  platform_version: typing.Optional[FargatePlatformVersion] = None,
@@ -23014,6 +23131,7 @@ class FargateServiceProps(BaseServiceOptions):
23014
23131
  :param propagate_tags: Specifies whether to propagate the tags from the task definition or the service to the tasks in the service. Valid values are: PropagatedTagSource.SERVICE, PropagatedTagSource.TASK_DEFINITION or PropagatedTagSource.NONE Default: PropagatedTagSource.NONE
23015
23132
  :param service_connect_configuration: Configuration for Service Connect. Default: No ports are advertised via Service Connect on this service, and the service cannot make requests to other services via Service Connect.
23016
23133
  :param service_name: The name of the service. Default: - CloudFormation-generated name.
23134
+ :param task_definition_revision: Revision number for the task definition or ``latest`` to use the latest active task revision. Default: - Uses the revision of the passed task definition deployed by CloudFormation
23017
23135
  :param task_definition: The task definition to use for tasks in the service. [disable-awslint:ref-via-interface]
23018
23136
  :param assign_public_ip: Specifies whether the task's elastic network interface receives a public IP address. If true, each task will receive a public IP address. Default: false
23019
23137
  :param platform_version: The platform version on which to run your service. If one is not specified, the LATEST platform version is used by default. For more information, see `AWS Fargate Platform Versions <https://docs.aws.amazon.com/AmazonECS/latest/developerguide/platform_versions.html>`_ in the Amazon Elastic Container Service Developer Guide. Default: Latest
@@ -23081,6 +23199,7 @@ class FargateServiceProps(BaseServiceOptions):
23081
23199
  check_type(argname="argument propagate_tags", value=propagate_tags, expected_type=type_hints["propagate_tags"])
23082
23200
  check_type(argname="argument service_connect_configuration", value=service_connect_configuration, expected_type=type_hints["service_connect_configuration"])
23083
23201
  check_type(argname="argument service_name", value=service_name, expected_type=type_hints["service_name"])
23202
+ check_type(argname="argument task_definition_revision", value=task_definition_revision, expected_type=type_hints["task_definition_revision"])
23084
23203
  check_type(argname="argument task_definition", value=task_definition, expected_type=type_hints["task_definition"])
23085
23204
  check_type(argname="argument assign_public_ip", value=assign_public_ip, expected_type=type_hints["assign_public_ip"])
23086
23205
  check_type(argname="argument platform_version", value=platform_version, expected_type=type_hints["platform_version"])
@@ -23118,6 +23237,8 @@ class FargateServiceProps(BaseServiceOptions):
23118
23237
  self._values["service_connect_configuration"] = service_connect_configuration
23119
23238
  if service_name is not None:
23120
23239
  self._values["service_name"] = service_name
23240
+ if task_definition_revision is not None:
23241
+ self._values["task_definition_revision"] = task_definition_revision
23121
23242
  if assign_public_ip is not None:
23122
23243
  self._values["assign_public_ip"] = assign_public_ip
23123
23244
  if platform_version is not None:
@@ -23279,6 +23400,15 @@ class FargateServiceProps(BaseServiceOptions):
23279
23400
  result = self._values.get("service_name")
23280
23401
  return typing.cast(typing.Optional[builtins.str], result)
23281
23402
 
23403
+ @builtins.property
23404
+ def task_definition_revision(self) -> typing.Optional["TaskDefinitionRevision"]:
23405
+ '''Revision number for the task definition or ``latest`` to use the latest active task revision.
23406
+
23407
+ :default: - Uses the revision of the passed task definition deployed by CloudFormation
23408
+ '''
23409
+ result = self._values.get("task_definition_revision")
23410
+ return typing.cast(typing.Optional["TaskDefinitionRevision"], result)
23411
+
23282
23412
  @builtins.property
23283
23413
  def task_definition(self) -> "TaskDefinition":
23284
23414
  '''The task definition to use for tasks in the service.
@@ -32957,6 +33087,60 @@ class TaskDefinitionProps(CommonTaskDefinitionProps):
32957
33087
  )
32958
33088
 
32959
33089
 
33090
+ class TaskDefinitionRevision(
33091
+ metaclass=jsii.JSIIMeta,
33092
+ jsii_type="aws-cdk-lib.aws_ecs.TaskDefinitionRevision",
33093
+ ):
33094
+ '''Represents revision of a task definition, either a specific numbered revision or the ``latest`` revision.
33095
+
33096
+ :exampleMetadata: infused
33097
+
33098
+ Example::
33099
+
33100
+ # cluster: ecs.Cluster
33101
+ # task_definition: ecs.TaskDefinition
33102
+
33103
+
33104
+ ecs.ExternalService(self, "Service",
33105
+ cluster=cluster,
33106
+ task_definition=task_definition,
33107
+ desired_count=5,
33108
+ task_definition_revision=ecs.TaskDefinitionRevision.of(1)
33109
+ )
33110
+
33111
+ ecs.ExternalService(self, "Service",
33112
+ cluster=cluster,
33113
+ task_definition=task_definition,
33114
+ desired_count=5,
33115
+ task_definition_revision=ecs.TaskDefinitionRevision.LATEST
33116
+ )
33117
+ '''
33118
+
33119
+ @jsii.member(jsii_name="of")
33120
+ @builtins.classmethod
33121
+ def of(cls, revision: jsii.Number) -> "TaskDefinitionRevision":
33122
+ '''Specific revision of a task.
33123
+
33124
+ :param revision: -
33125
+ '''
33126
+ if __debug__:
33127
+ type_hints = typing.get_type_hints(_typecheckingstub__7eb4392d369b1ada588a4a28382655efb27785bd3db7f861ca8ea5100f9d1c41)
33128
+ check_type(argname="argument revision", value=revision, expected_type=type_hints["revision"])
33129
+ return typing.cast("TaskDefinitionRevision", jsii.sinvoke(cls, "of", [revision]))
33130
+
33131
+ @jsii.python.classproperty
33132
+ @jsii.member(jsii_name="LATEST")
33133
+ def LATEST(cls) -> "TaskDefinitionRevision":
33134
+ '''The most recent revision of a task.'''
33135
+ return typing.cast("TaskDefinitionRevision", jsii.sget(cls, "LATEST"))
33136
+
33137
+ @builtins.property
33138
+ @jsii.member(jsii_name="revision")
33139
+ def revision(self) -> builtins.str:
33140
+ '''The string representation of this revision.'''
33141
+ return typing.cast(builtins.str, jsii.get(self, "revision"))
33142
+
33143
+
32960
33144
  @jsii.data_type(
32961
33145
  jsii_type="aws-cdk-lib.aws_ecs.Tmpfs",
32962
33146
  jsii_struct_bases=[],
@@ -35971,6 +36155,7 @@ class Ec2Service(
35971
36155
  propagate_tags: typing.Optional[PropagatedTagSource] = None,
35972
36156
  service_connect_configuration: typing.Optional[typing.Union[ServiceConnectProps, typing.Dict[builtins.str, typing.Any]]] = None,
35973
36157
  service_name: typing.Optional[builtins.str] = None,
36158
+ task_definition_revision: typing.Optional[TaskDefinitionRevision] = None,
35974
36159
  ) -> None:
35975
36160
  '''Constructs a new instance of the Ec2Service class.
35976
36161
 
@@ -35998,6 +36183,7 @@ class Ec2Service(
35998
36183
  :param propagate_tags: Specifies whether to propagate the tags from the task definition or the service to the tasks in the service. Valid values are: PropagatedTagSource.SERVICE, PropagatedTagSource.TASK_DEFINITION or PropagatedTagSource.NONE Default: PropagatedTagSource.NONE
35999
36184
  :param service_connect_configuration: Configuration for Service Connect. Default: No ports are advertised via Service Connect on this service, and the service cannot make requests to other services via Service Connect.
36000
36185
  :param service_name: The name of the service. Default: - CloudFormation-generated name.
36186
+ :param task_definition_revision: Revision number for the task definition or ``latest`` to use the latest active task revision. Default: - Uses the revision of the passed task definition deployed by CloudFormation
36001
36187
  '''
36002
36188
  if __debug__:
36003
36189
  type_hints = typing.get_type_hints(_typecheckingstub__1e578461670bd6cdf856f914534e1feff8905e31d33cd7aea2b9f51512de5cea)
@@ -36026,6 +36212,7 @@ class Ec2Service(
36026
36212
  propagate_tags=propagate_tags,
36027
36213
  service_connect_configuration=service_connect_configuration,
36028
36214
  service_name=service_name,
36215
+ task_definition_revision=task_definition_revision,
36029
36216
  )
36030
36217
 
36031
36218
  jsii.create(self.__class__, self, [scope, id, props])
@@ -36289,6 +36476,7 @@ class ExternalService(
36289
36476
  propagate_tags: typing.Optional[PropagatedTagSource] = None,
36290
36477
  service_connect_configuration: typing.Optional[typing.Union[ServiceConnectProps, typing.Dict[builtins.str, typing.Any]]] = None,
36291
36478
  service_name: typing.Optional[builtins.str] = None,
36479
+ task_definition_revision: typing.Optional[TaskDefinitionRevision] = None,
36292
36480
  ) -> None:
36293
36481
  '''Constructs a new instance of the ExternalService class.
36294
36482
 
@@ -36311,6 +36499,7 @@ class ExternalService(
36311
36499
  :param propagate_tags: Specifies whether to propagate the tags from the task definition or the service to the tasks in the service. Valid values are: PropagatedTagSource.SERVICE, PropagatedTagSource.TASK_DEFINITION or PropagatedTagSource.NONE Default: PropagatedTagSource.NONE
36312
36500
  :param service_connect_configuration: Configuration for Service Connect. Default: No ports are advertised via Service Connect on this service, and the service cannot make requests to other services via Service Connect.
36313
36501
  :param service_name: The name of the service. Default: - CloudFormation-generated name.
36502
+ :param task_definition_revision: Revision number for the task definition or ``latest`` to use the latest active task revision. Default: - Uses the revision of the passed task definition deployed by CloudFormation
36314
36503
  '''
36315
36504
  if __debug__:
36316
36505
  type_hints = typing.get_type_hints(_typecheckingstub__6ceef4de126cbb6bd6f379ba0b53be2fb61c35761f50685b5d228c682b979cc7)
@@ -36334,6 +36523,7 @@ class ExternalService(
36334
36523
  propagate_tags=propagate_tags,
36335
36524
  service_connect_configuration=service_connect_configuration,
36336
36525
  service_name=service_name,
36526
+ task_definition_revision=task_definition_revision,
36337
36527
  )
36338
36528
 
36339
36529
  jsii.create(self.__class__, self, [scope, id, props])
@@ -36732,6 +36922,7 @@ class FargateService(
36732
36922
  propagate_tags: typing.Optional[PropagatedTagSource] = None,
36733
36923
  service_connect_configuration: typing.Optional[typing.Union[ServiceConnectProps, typing.Dict[builtins.str, typing.Any]]] = None,
36734
36924
  service_name: typing.Optional[builtins.str] = None,
36925
+ task_definition_revision: typing.Optional[TaskDefinitionRevision] = None,
36735
36926
  ) -> None:
36736
36927
  '''Constructs a new instance of the FargateService class.
36737
36928
 
@@ -36757,6 +36948,7 @@ class FargateService(
36757
36948
  :param propagate_tags: Specifies whether to propagate the tags from the task definition or the service to the tasks in the service. Valid values are: PropagatedTagSource.SERVICE, PropagatedTagSource.TASK_DEFINITION or PropagatedTagSource.NONE Default: PropagatedTagSource.NONE
36758
36949
  :param service_connect_configuration: Configuration for Service Connect. Default: No ports are advertised via Service Connect on this service, and the service cannot make requests to other services via Service Connect.
36759
36950
  :param service_name: The name of the service. Default: - CloudFormation-generated name.
36951
+ :param task_definition_revision: Revision number for the task definition or ``latest`` to use the latest active task revision. Default: - Uses the revision of the passed task definition deployed by CloudFormation
36760
36952
  '''
36761
36953
  if __debug__:
36762
36954
  type_hints = typing.get_type_hints(_typecheckingstub__0ddac6b19472d00f74c1777e699ce5b239dc49e62ff4ab4674c917bbed10c538)
@@ -36783,6 +36975,7 @@ class FargateService(
36783
36975
  propagate_tags=propagate_tags,
36784
36976
  service_connect_configuration=service_connect_configuration,
36785
36977
  service_name=service_name,
36978
+ task_definition_revision=task_definition_revision,
36786
36979
  )
36787
36980
 
36788
36981
  jsii.create(self.__class__, self, [scope, id, props])
@@ -37178,6 +37371,7 @@ __all__ = [
37178
37371
  "TaskDefinition",
37179
37372
  "TaskDefinitionAttributes",
37180
37373
  "TaskDefinitionProps",
37374
+ "TaskDefinitionRevision",
37181
37375
  "Tmpfs",
37182
37376
  "TmpfsMountOption",
37183
37377
  "TrackCustomMetricProps",
@@ -37398,6 +37592,7 @@ def _typecheckingstub__c2e0ba28c74987301a54b0d197b791a6a94084b5f40d15304ffabf113
37398
37592
  propagate_tags: typing.Optional[PropagatedTagSource] = None,
37399
37593
  service_connect_configuration: typing.Optional[typing.Union[ServiceConnectProps, typing.Dict[builtins.str, typing.Any]]] = None,
37400
37594
  service_name: typing.Optional[builtins.str] = None,
37595
+ task_definition_revision: typing.Optional[TaskDefinitionRevision] = None,
37401
37596
  ) -> None:
37402
37597
  """Type checking stubs"""
37403
37598
  pass
@@ -37419,6 +37614,7 @@ def _typecheckingstub__3ecfd95265b873c2042a9d5cb8465a48f9e325e2271c18461e2b26633
37419
37614
  propagate_tags: typing.Optional[PropagatedTagSource] = None,
37420
37615
  service_connect_configuration: typing.Optional[typing.Union[ServiceConnectProps, typing.Dict[builtins.str, typing.Any]]] = None,
37421
37616
  service_name: typing.Optional[builtins.str] = None,
37617
+ task_definition_revision: typing.Optional[TaskDefinitionRevision] = None,
37422
37618
  launch_type: LaunchType,
37423
37619
  ) -> None:
37424
37620
  """Type checking stubs"""
@@ -39151,6 +39347,7 @@ def _typecheckingstub__95634258086aa3448fbdfd9896017a2cbeb858f382deb61186bb9e22b
39151
39347
  propagate_tags: typing.Optional[PropagatedTagSource] = None,
39152
39348
  service_connect_configuration: typing.Optional[typing.Union[ServiceConnectProps, typing.Dict[builtins.str, typing.Any]]] = None,
39153
39349
  service_name: typing.Optional[builtins.str] = None,
39350
+ task_definition_revision: typing.Optional[TaskDefinitionRevision] = None,
39154
39351
  task_definition: TaskDefinition,
39155
39352
  assign_public_ip: typing.Optional[builtins.bool] = None,
39156
39353
  daemon: typing.Optional[builtins.bool] = None,
@@ -39344,6 +39541,7 @@ def _typecheckingstub__3cc413964caae89bfcfbcabff8356ffe5c054f46824be99731a77b64e
39344
39541
  propagate_tags: typing.Optional[PropagatedTagSource] = None,
39345
39542
  service_connect_configuration: typing.Optional[typing.Union[ServiceConnectProps, typing.Dict[builtins.str, typing.Any]]] = None,
39346
39543
  service_name: typing.Optional[builtins.str] = None,
39544
+ task_definition_revision: typing.Optional[TaskDefinitionRevision] = None,
39347
39545
  task_definition: TaskDefinition,
39348
39546
  security_groups: typing.Optional[typing.Sequence[_ISecurityGroup_acf8a799]] = None,
39349
39547
  ) -> None:
@@ -39398,6 +39596,7 @@ def _typecheckingstub__8290283f61f3e2d289b7e7f81cad1a5d1e9ed9dbc07ccce2b57604682
39398
39596
  propagate_tags: typing.Optional[PropagatedTagSource] = None,
39399
39597
  service_connect_configuration: typing.Optional[typing.Union[ServiceConnectProps, typing.Dict[builtins.str, typing.Any]]] = None,
39400
39598
  service_name: typing.Optional[builtins.str] = None,
39599
+ task_definition_revision: typing.Optional[TaskDefinitionRevision] = None,
39401
39600
  task_definition: TaskDefinition,
39402
39601
  assign_public_ip: typing.Optional[builtins.bool] = None,
39403
39602
  platform_version: typing.Optional[FargatePlatformVersion] = None,
@@ -40392,6 +40591,12 @@ def _typecheckingstub__94a3565a38b8645ada9c86c3d7ac059ba028553c5ec103fcd16884f75
40392
40591
  """Type checking stubs"""
40393
40592
  pass
40394
40593
 
40594
+ def _typecheckingstub__7eb4392d369b1ada588a4a28382655efb27785bd3db7f861ca8ea5100f9d1c41(
40595
+ revision: jsii.Number,
40596
+ ) -> None:
40597
+ """Type checking stubs"""
40598
+ pass
40599
+
40395
40600
  def _typecheckingstub__e9f01a54937cae960dd3b2636cb2a5869c5064352cf4035ff1a0a0dfb4fa3b8a(
40396
40601
  *,
40397
40602
  container_path: builtins.str,
@@ -40805,6 +41010,7 @@ def _typecheckingstub__1e578461670bd6cdf856f914534e1feff8905e31d33cd7aea2b9f5151
40805
41010
  propagate_tags: typing.Optional[PropagatedTagSource] = None,
40806
41011
  service_connect_configuration: typing.Optional[typing.Union[ServiceConnectProps, typing.Dict[builtins.str, typing.Any]]] = None,
40807
41012
  service_name: typing.Optional[builtins.str] = None,
41013
+ task_definition_revision: typing.Optional[TaskDefinitionRevision] = None,
40808
41014
  ) -> None:
40809
41015
  """Type checking stubs"""
40810
41016
  pass
@@ -40899,6 +41105,7 @@ def _typecheckingstub__6ceef4de126cbb6bd6f379ba0b53be2fb61c35761f50685b5d228c682
40899
41105
  propagate_tags: typing.Optional[PropagatedTagSource] = None,
40900
41106
  service_connect_configuration: typing.Optional[typing.Union[ServiceConnectProps, typing.Dict[builtins.str, typing.Any]]] = None,
40901
41107
  service_name: typing.Optional[builtins.str] = None,
41108
+ task_definition_revision: typing.Optional[TaskDefinitionRevision] = None,
40902
41109
  ) -> None:
40903
41110
  """Type checking stubs"""
40904
41111
  pass
@@ -41001,6 +41208,7 @@ def _typecheckingstub__0ddac6b19472d00f74c1777e699ce5b239dc49e62ff4ab4674c917bbe
41001
41208
  propagate_tags: typing.Optional[PropagatedTagSource] = None,
41002
41209
  service_connect_configuration: typing.Optional[typing.Union[ServiceConnectProps, typing.Dict[builtins.str, typing.Any]]] = None,
41003
41210
  service_name: typing.Optional[builtins.str] = None,
41211
+ task_definition_revision: typing.Optional[TaskDefinitionRevision] = None,
41004
41212
  ) -> None:
41005
41213
  """Type checking stubs"""
41006
41214
  pass