aws-sdk-ecs 1.59.0 → 1.65.0

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.
@@ -36,6 +36,7 @@ module Aws::ECS
36
36
  CapacityProviderStrategyItem = Shapes::StructureShape.new(name: 'CapacityProviderStrategyItem')
37
37
  CapacityProviderStrategyItemBase = Shapes::IntegerShape.new(name: 'CapacityProviderStrategyItemBase')
38
38
  CapacityProviderStrategyItemWeight = Shapes::IntegerShape.new(name: 'CapacityProviderStrategyItemWeight')
39
+ CapacityProviderUpdateStatus = Shapes::StringShape.new(name: 'CapacityProviderUpdateStatus')
39
40
  CapacityProviders = Shapes::ListShape.new(name: 'CapacityProviders')
40
41
  ClientException = Shapes::StructureShape.new(name: 'ClientException')
41
42
  Cluster = Shapes::StructureShape.new(name: 'Cluster')
@@ -80,6 +81,8 @@ module Aws::ECS
80
81
  DeleteAccountSettingResponse = Shapes::StructureShape.new(name: 'DeleteAccountSettingResponse')
81
82
  DeleteAttributesRequest = Shapes::StructureShape.new(name: 'DeleteAttributesRequest')
82
83
  DeleteAttributesResponse = Shapes::StructureShape.new(name: 'DeleteAttributesResponse')
84
+ DeleteCapacityProviderRequest = Shapes::StructureShape.new(name: 'DeleteCapacityProviderRequest')
85
+ DeleteCapacityProviderResponse = Shapes::StructureShape.new(name: 'DeleteCapacityProviderResponse')
83
86
  DeleteClusterRequest = Shapes::StructureShape.new(name: 'DeleteClusterRequest')
84
87
  DeleteClusterResponse = Shapes::StructureShape.new(name: 'DeleteClusterResponse')
85
88
  DeleteServiceRequest = Shapes::StructureShape.new(name: 'DeleteServiceRequest')
@@ -119,7 +122,13 @@ module Aws::ECS
119
122
  DockerLabelsMap = Shapes::MapShape.new(name: 'DockerLabelsMap')
120
123
  DockerVolumeConfiguration = Shapes::StructureShape.new(name: 'DockerVolumeConfiguration')
121
124
  Double = Shapes::FloatShape.new(name: 'Double')
125
+ EFSAuthorizationConfig = Shapes::StructureShape.new(name: 'EFSAuthorizationConfig')
126
+ EFSAuthorizationConfigIAM = Shapes::StringShape.new(name: 'EFSAuthorizationConfigIAM')
127
+ EFSTransitEncryption = Shapes::StringShape.new(name: 'EFSTransitEncryption')
122
128
  EFSVolumeConfiguration = Shapes::StructureShape.new(name: 'EFSVolumeConfiguration')
129
+ EnvironmentFile = Shapes::StructureShape.new(name: 'EnvironmentFile')
130
+ EnvironmentFileType = Shapes::StringShape.new(name: 'EnvironmentFileType')
131
+ EnvironmentFiles = Shapes::ListShape.new(name: 'EnvironmentFiles')
123
132
  EnvironmentVariables = Shapes::ListShape.new(name: 'EnvironmentVariables')
124
133
  Failure = Shapes::StructureShape.new(name: 'Failure')
125
134
  Failures = Shapes::ListShape.new(name: 'Failures')
@@ -363,6 +372,8 @@ module Aws::ECS
363
372
  CapacityProvider.add_member(:name, Shapes::ShapeRef.new(shape: String, location_name: "name"))
364
373
  CapacityProvider.add_member(:status, Shapes::ShapeRef.new(shape: CapacityProviderStatus, location_name: "status"))
365
374
  CapacityProvider.add_member(:auto_scaling_group_provider, Shapes::ShapeRef.new(shape: AutoScalingGroupProvider, location_name: "autoScalingGroupProvider"))
375
+ CapacityProvider.add_member(:update_status, Shapes::ShapeRef.new(shape: CapacityProviderUpdateStatus, location_name: "updateStatus"))
376
+ CapacityProvider.add_member(:update_status_reason, Shapes::ShapeRef.new(shape: String, location_name: "updateStatusReason"))
366
377
  CapacityProvider.add_member(:tags, Shapes::ShapeRef.new(shape: Tags, location_name: "tags"))
367
378
  CapacityProvider.struct_class = Types::CapacityProvider
368
379
 
@@ -446,6 +457,7 @@ module Aws::ECS
446
457
  ContainerDefinition.add_member(:entry_point, Shapes::ShapeRef.new(shape: StringList, location_name: "entryPoint"))
447
458
  ContainerDefinition.add_member(:command, Shapes::ShapeRef.new(shape: StringList, location_name: "command"))
448
459
  ContainerDefinition.add_member(:environment, Shapes::ShapeRef.new(shape: EnvironmentVariables, location_name: "environment"))
460
+ ContainerDefinition.add_member(:environment_files, Shapes::ShapeRef.new(shape: EnvironmentFiles, location_name: "environmentFiles"))
449
461
  ContainerDefinition.add_member(:mount_points, Shapes::ShapeRef.new(shape: MountPointList, location_name: "mountPoints"))
450
462
  ContainerDefinition.add_member(:volumes_from, Shapes::ShapeRef.new(shape: VolumeFromList, location_name: "volumesFrom"))
451
463
  ContainerDefinition.add_member(:linux_parameters, Shapes::ShapeRef.new(shape: LinuxParameters, location_name: "linuxParameters"))
@@ -508,6 +520,7 @@ module Aws::ECS
508
520
  ContainerOverride.add_member(:name, Shapes::ShapeRef.new(shape: String, location_name: "name"))
509
521
  ContainerOverride.add_member(:command, Shapes::ShapeRef.new(shape: StringList, location_name: "command"))
510
522
  ContainerOverride.add_member(:environment, Shapes::ShapeRef.new(shape: EnvironmentVariables, location_name: "environment"))
523
+ ContainerOverride.add_member(:environment_files, Shapes::ShapeRef.new(shape: EnvironmentFiles, location_name: "environmentFiles"))
511
524
  ContainerOverride.add_member(:cpu, Shapes::ShapeRef.new(shape: BoxedInteger, location_name: "cpu"))
512
525
  ContainerOverride.add_member(:memory, Shapes::ShapeRef.new(shape: BoxedInteger, location_name: "memory"))
513
526
  ContainerOverride.add_member(:memory_reservation, Shapes::ShapeRef.new(shape: BoxedInteger, location_name: "memoryReservation"))
@@ -605,6 +618,12 @@ module Aws::ECS
605
618
  DeleteAttributesResponse.add_member(:attributes, Shapes::ShapeRef.new(shape: Attributes, location_name: "attributes"))
606
619
  DeleteAttributesResponse.struct_class = Types::DeleteAttributesResponse
607
620
 
621
+ DeleteCapacityProviderRequest.add_member(:capacity_provider, Shapes::ShapeRef.new(shape: String, required: true, location_name: "capacityProvider"))
622
+ DeleteCapacityProviderRequest.struct_class = Types::DeleteCapacityProviderRequest
623
+
624
+ DeleteCapacityProviderResponse.add_member(:capacity_provider, Shapes::ShapeRef.new(shape: CapacityProvider, location_name: "capacityProvider"))
625
+ DeleteCapacityProviderResponse.struct_class = Types::DeleteCapacityProviderResponse
626
+
608
627
  DeleteClusterRequest.add_member(:cluster, Shapes::ShapeRef.new(shape: String, required: true, location_name: "cluster"))
609
628
  DeleteClusterRequest.struct_class = Types::DeleteClusterRequest
610
629
 
@@ -756,10 +775,23 @@ module Aws::ECS
756
775
  DockerVolumeConfiguration.add_member(:labels, Shapes::ShapeRef.new(shape: StringMap, location_name: "labels"))
757
776
  DockerVolumeConfiguration.struct_class = Types::DockerVolumeConfiguration
758
777
 
778
+ EFSAuthorizationConfig.add_member(:access_point_id, Shapes::ShapeRef.new(shape: String, location_name: "accessPointId"))
779
+ EFSAuthorizationConfig.add_member(:iam, Shapes::ShapeRef.new(shape: EFSAuthorizationConfigIAM, location_name: "iam"))
780
+ EFSAuthorizationConfig.struct_class = Types::EFSAuthorizationConfig
781
+
759
782
  EFSVolumeConfiguration.add_member(:file_system_id, Shapes::ShapeRef.new(shape: String, required: true, location_name: "fileSystemId"))
760
783
  EFSVolumeConfiguration.add_member(:root_directory, Shapes::ShapeRef.new(shape: String, location_name: "rootDirectory"))
784
+ EFSVolumeConfiguration.add_member(:transit_encryption, Shapes::ShapeRef.new(shape: EFSTransitEncryption, location_name: "transitEncryption"))
785
+ EFSVolumeConfiguration.add_member(:transit_encryption_port, Shapes::ShapeRef.new(shape: BoxedInteger, location_name: "transitEncryptionPort"))
786
+ EFSVolumeConfiguration.add_member(:authorization_config, Shapes::ShapeRef.new(shape: EFSAuthorizationConfig, location_name: "authorizationConfig"))
761
787
  EFSVolumeConfiguration.struct_class = Types::EFSVolumeConfiguration
762
788
 
789
+ EnvironmentFile.add_member(:value, Shapes::ShapeRef.new(shape: String, required: true, location_name: "value"))
790
+ EnvironmentFile.add_member(:type, Shapes::ShapeRef.new(shape: EnvironmentFileType, required: true, location_name: "type"))
791
+ EnvironmentFile.struct_class = Types::EnvironmentFile
792
+
793
+ EnvironmentFiles.member = Shapes::ShapeRef.new(shape: EnvironmentFile)
794
+
763
795
  EnvironmentVariables.member = Shapes::ShapeRef.new(shape: KeyValuePair)
764
796
 
765
797
  Failure.add_member(:arn, Shapes::ShapeRef.new(shape: String, location_name: "arn"))
@@ -1520,6 +1552,7 @@ module Aws::ECS
1520
1552
  o.errors << Shapes::ShapeRef.new(shape: ClientException)
1521
1553
  o.errors << Shapes::ShapeRef.new(shape: InvalidParameterException)
1522
1554
  o.errors << Shapes::ShapeRef.new(shape: LimitExceededException)
1555
+ o.errors << Shapes::ShapeRef.new(shape: UpdateInProgressException)
1523
1556
  end)
1524
1557
 
1525
1558
  api.add_operation(:create_cluster, Seahorse::Model::Operation.new.tap do |o|
@@ -1589,6 +1622,17 @@ module Aws::ECS
1589
1622
  o.errors << Shapes::ShapeRef.new(shape: InvalidParameterException)
1590
1623
  end)
1591
1624
 
1625
+ api.add_operation(:delete_capacity_provider, Seahorse::Model::Operation.new.tap do |o|
1626
+ o.name = "DeleteCapacityProvider"
1627
+ o.http_method = "POST"
1628
+ o.http_request_uri = "/"
1629
+ o.input = Shapes::ShapeRef.new(shape: DeleteCapacityProviderRequest)
1630
+ o.output = Shapes::ShapeRef.new(shape: DeleteCapacityProviderResponse)
1631
+ o.errors << Shapes::ShapeRef.new(shape: ServerException)
1632
+ o.errors << Shapes::ShapeRef.new(shape: ClientException)
1633
+ o.errors << Shapes::ShapeRef.new(shape: InvalidParameterException)
1634
+ end)
1635
+
1592
1636
  api.add_operation(:delete_cluster, Seahorse::Model::Operation.new.tap do |o|
1593
1637
  o.name = "DeleteCluster"
1594
1638
  o.http_method = "POST"
@@ -6,13 +6,7 @@
6
6
  # WARNING ABOUT GENERATED CODE
7
7
 
8
8
  module Aws::ECS
9
- # This class provides a resource oriented interface for ECS.
10
- # To create a resource object:
11
- # resource = Aws::ECS::Resource.new(region: 'us-west-2')
12
- # You can supply a client object with custom configuration that will be used for all resource operations.
13
- # If you do not pass +:client+, a default client will be constructed.
14
- # client = Aws::ECS::Client.new(region: 'us-west-2')
15
- # resource = Aws::ECS::Resource.new(client: client)
9
+
16
10
  class Resource
17
11
 
18
12
  # @param options ({})
@@ -261,13 +261,38 @@ module Aws::ECS
261
261
  #
262
262
  # @!attribute [rw] status
263
263
  # The current status of the capacity provider. Only capacity providers
264
- # in an `ACTIVE` state can be used in a cluster.
264
+ # in an `ACTIVE` state can be used in a cluster. When a capacity
265
+ # provider is successfully deleted, it will have an `INACTIVE` status.
265
266
  # @return [String]
266
267
  #
267
268
  # @!attribute [rw] auto_scaling_group_provider
268
269
  # The Auto Scaling group settings for the capacity provider.
269
270
  # @return [Types::AutoScalingGroupProvider]
270
271
  #
272
+ # @!attribute [rw] update_status
273
+ # The update status of the capacity provider. The following are the
274
+ # possible states that will be returned.
275
+ #
276
+ # DELETE\_IN\_PROGRESS
277
+ #
278
+ # : The capacity provider is in the process of being deleted.
279
+ #
280
+ # DELETE\_COMPLETE
281
+ #
282
+ # : The capacity provider has been successfully deleted and will have
283
+ # an `INACTIVE` status.
284
+ #
285
+ # DELETE\_FAILED
286
+ #
287
+ # : The capacity provider was unable to be deleted. The update status
288
+ # reason will provide further details about why the delete failed.
289
+ # @return [String]
290
+ #
291
+ # @!attribute [rw] update_status_reason
292
+ # The update status reason. This provides further details about the
293
+ # update status for the capacity provider.
294
+ # @return [String]
295
+ #
271
296
  # @!attribute [rw] tags
272
297
  # The metadata that you apply to the capacity provider to help you
273
298
  # categorize and organize it. Each tag consists of a key and an
@@ -306,6 +331,8 @@ module Aws::ECS
306
331
  :name,
307
332
  :status,
308
333
  :auto_scaling_group_provider,
334
+ :update_status,
335
+ :update_status_reason,
309
336
  :tags)
310
337
  include Aws::Structure
311
338
  end
@@ -322,8 +349,7 @@ module Aws::ECS
322
349
  # }
323
350
  #
324
351
  # @!attribute [rw] capacity_provider
325
- # The short name or full Amazon Resource Name (ARN) of the capacity
326
- # provider.
352
+ # The short name of the capacity provider.
327
353
  # @return [String]
328
354
  #
329
355
  # @!attribute [rw] weight
@@ -744,6 +770,12 @@ module Aws::ECS
744
770
  # value: "String",
745
771
  # },
746
772
  # ],
773
+ # environment_files: [
774
+ # {
775
+ # value: "String", # required
776
+ # type: "s3", # required, accepts s3
777
+ # },
778
+ # ],
747
779
  # mount_points: [
748
780
  # {
749
781
  # source_volume: "String",
@@ -1188,6 +1220,37 @@ module Aws::ECS
1188
1220
  # [3]: https://docs.docker.com/engine/reference/run/
1189
1221
  # @return [Array<Types::KeyValuePair>]
1190
1222
  #
1223
+ # @!attribute [rw] environment_files
1224
+ # A list of files containing the environment variables to pass to a
1225
+ # container. This parameter maps to the `--env-file` option to [docker
1226
+ # run][1].
1227
+ #
1228
+ # You can specify up to ten environment files. The file must have a
1229
+ # `.env` file extension. Each line in an environment file should
1230
+ # contain an environment variable in `VARIABLE=VALUE` format. Lines
1231
+ # beginning with `#` are treated as comments and are ignored. For more
1232
+ # information on the environment variable file syntax, see [Declare
1233
+ # default environment variables in file][2].
1234
+ #
1235
+ # If there are environment variables specified using the `environment`
1236
+ # parameter in a container definition, they take precedence over the
1237
+ # variables contained within an environment file. If multiple
1238
+ # environment files are specified that contain the same variable, they
1239
+ # are processed from the top down. It is recommended to use unique
1240
+ # variable names. For more information, see [Specifying Environment
1241
+ # Variables][3] in the *Amazon Elastic Container Service Developer
1242
+ # Guide*.
1243
+ #
1244
+ # This field is not valid for containers in tasks using the Fargate
1245
+ # launch type.
1246
+ #
1247
+ #
1248
+ #
1249
+ # [1]: https://docs.docker.com/engine/reference/run/
1250
+ # [2]: https://docs.docker.com/compose/env-file/
1251
+ # [3]: https://docs.aws.amazon.com/AmazonECS/latest/developerguide/taskdef-envfiles.html
1252
+ # @return [Array<Types::EnvironmentFile>]
1253
+ #
1191
1254
  # @!attribute [rw] mount_points
1192
1255
  # The mount points for data volumes in your container.
1193
1256
  #
@@ -1584,15 +1647,16 @@ module Aws::ECS
1584
1647
  # @return [Hash<String,String>]
1585
1648
  #
1586
1649
  # @!attribute [rw] ulimits
1587
- # A list of `ulimits` to set in the container. This parameter maps to
1588
- # `Ulimits` in the [Create a container][1] section of the [Docker
1589
- # Remote API][2] and the `--ulimit` option to [docker run][3]. Valid
1590
- # naming values are displayed in the Ulimit data type. This parameter
1591
- # requires version 1.18 of the Docker Remote API or greater on your
1592
- # container instance. To check the Docker Remote API version on your
1593
- # container instance, log in to your container instance and run the
1594
- # following command: `sudo docker version --format
1595
- # '\{\{.Server.APIVersion\}\}'`
1650
+ # A list of `ulimits` to set in the container. If a ulimit value is
1651
+ # specified in a task definition, it will override the default values
1652
+ # set by Docker. This parameter maps to `Ulimits` in the [Create a
1653
+ # container][1] section of the [Docker Remote API][2] and the
1654
+ # `--ulimit` option to [docker run][3]. Valid naming values are
1655
+ # displayed in the Ulimit data type. This parameter requires version
1656
+ # 1.18 of the Docker Remote API or greater on your container instance.
1657
+ # To check the Docker Remote API version on your container instance,
1658
+ # log in to your container instance and run the following command:
1659
+ # `sudo docker version --format '\{\{.Server.APIVersion\}\}'`
1596
1660
  #
1597
1661
  # <note markdown="1"> This parameter is not supported for Windows containers.
1598
1662
  #
@@ -1653,10 +1717,10 @@ module Aws::ECS
1653
1717
  # @return [Types::LogConfiguration]
1654
1718
  #
1655
1719
  # @!attribute [rw] health_check
1656
- # The health check command and associated configuration parameters for
1657
- # the container. This parameter maps to `HealthCheck` in the [Create a
1658
- # container][1] section of the [Docker Remote API][2] and the
1659
- # `HEALTHCHECK` parameter of [docker run][3].
1720
+ # The container health check command and associated configuration
1721
+ # parameters for the container. This parameter maps to `HealthCheck`
1722
+ # in the [Create a container][1] section of the [Docker Remote API][2]
1723
+ # and the `HEALTHCHECK` parameter of [docker run][3].
1660
1724
  #
1661
1725
  #
1662
1726
  #
@@ -1720,6 +1784,7 @@ module Aws::ECS
1720
1784
  :entry_point,
1721
1785
  :command,
1722
1786
  :environment,
1787
+ :environment_files,
1723
1788
  :mount_points,
1724
1789
  :volumes_from,
1725
1790
  :linux_parameters,
@@ -2018,6 +2083,12 @@ module Aws::ECS
2018
2083
  # value: "String",
2019
2084
  # },
2020
2085
  # ],
2086
+ # environment_files: [
2087
+ # {
2088
+ # value: "String", # required
2089
+ # type: "s3", # required, accepts s3
2090
+ # },
2091
+ # ],
2021
2092
  # cpu: 1,
2022
2093
  # memory: 1,
2023
2094
  # memory_reservation: 1,
@@ -2048,6 +2119,11 @@ module Aws::ECS
2048
2119
  # container name.
2049
2120
  # @return [Array<Types::KeyValuePair>]
2050
2121
  #
2122
+ # @!attribute [rw] environment_files
2123
+ # A list of files containing the environment variables to pass to a
2124
+ # container, instead of the value from the container definition.
2125
+ # @return [Array<Types::EnvironmentFile>]
2126
+ #
2051
2127
  # @!attribute [rw] cpu
2052
2128
  # The number of `cpu` units reserved for the container, instead of the
2053
2129
  # default value from the task definition. You must also specify a
@@ -2079,6 +2155,7 @@ module Aws::ECS
2079
2155
  :name,
2080
2156
  :command,
2081
2157
  :environment,
2158
+ :environment_files,
2082
2159
  :cpu,
2083
2160
  :memory,
2084
2161
  :memory_reservation,
@@ -2307,8 +2384,8 @@ module Aws::ECS
2307
2384
  # @return [Array<Types::ClusterSetting>]
2308
2385
  #
2309
2386
  # @!attribute [rw] capacity_providers
2310
- # The short name or full Amazon Resource Name (ARN) of one or more
2311
- # capacity providers to associate with the cluster.
2387
+ # The short name of one or more capacity providers to associate with
2388
+ # the cluster.
2312
2389
  #
2313
2390
  # If specifying a capacity provider that uses an Auto Scaling group,
2314
2391
  # the capacity provider must already be created and not already
@@ -2712,10 +2789,12 @@ module Aws::ECS
2712
2789
  #
2713
2790
  # * `DAEMON`-The daemon scheduling strategy deploys exactly one task
2714
2791
  # on each active container instance that meets all of the task
2715
- # placement constraints that you specify in your cluster. When
2716
- # you're using this strategy, you don't need to specify a desired
2717
- # number of tasks, a task placement strategy, or use Service Auto
2718
- # Scaling policies.
2792
+ # placement constraints that you specify in your cluster. The
2793
+ # service scheduler also evaluates the task placement constraints
2794
+ # for running tasks and will stop tasks that do not meet the
2795
+ # placement constraints. When you're using this strategy, you
2796
+ # don't need to specify a desired number of tasks, a task placement
2797
+ # strategy, or use Service Auto Scaling policies.
2719
2798
  #
2720
2799
  # <note markdown="1"> Tasks using the Fargate launch type or the `CODE_DEPLOY` or
2721
2800
  # `EXTERNAL` deployment controller types don't support the `DAEMON`
@@ -3146,6 +3225,36 @@ module Aws::ECS
3146
3225
  include Aws::Structure
3147
3226
  end
3148
3227
 
3228
+ # @note When making an API call, you may pass DeleteCapacityProviderRequest
3229
+ # data as a hash:
3230
+ #
3231
+ # {
3232
+ # capacity_provider: "String", # required
3233
+ # }
3234
+ #
3235
+ # @!attribute [rw] capacity_provider
3236
+ # The short name or full Amazon Resource Name (ARN) of the capacity
3237
+ # provider to delete.
3238
+ # @return [String]
3239
+ #
3240
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/DeleteCapacityProviderRequest AWS API Documentation
3241
+ #
3242
+ class DeleteCapacityProviderRequest < Struct.new(
3243
+ :capacity_provider)
3244
+ include Aws::Structure
3245
+ end
3246
+
3247
+ # @!attribute [rw] capacity_provider
3248
+ # The details of a capacity provider.
3249
+ # @return [Types::CapacityProvider]
3250
+ #
3251
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/DeleteCapacityProviderResponse AWS API Documentation
3252
+ #
3253
+ class DeleteCapacityProviderResponse < Struct.new(
3254
+ :capacity_provider)
3255
+ include Aws::Structure
3256
+ end
3257
+
3149
3258
  # @note When making an API call, you may pass DeleteClusterRequest
3150
3259
  # data as a hash:
3151
3260
  #
@@ -4207,19 +4316,60 @@ module Aws::ECS
4207
4316
  include Aws::Structure
4208
4317
  end
4209
4318
 
4210
- # This parameter is specified when you are using an Amazon Elastic File
4211
- # System (Amazon EFS) file storage. Amazon EFS file systems are only
4212
- # supported when you are using the EC2 launch type.
4319
+ # The authorization configuration details for the Amazon EFS file
4320
+ # system.
4213
4321
  #
4214
- # `EFSVolumeConfiguration` remains in preview and is a Beta Service as
4215
- # defined by and subject to the Beta Service Participation Service Terms
4216
- # located at [https://aws.amazon.com/service-terms][1] ("Beta Terms").
4217
- # These Beta Terms apply to your participation in this preview of
4218
- # `EFSVolumeConfiguration`.
4322
+ # @note When making an API call, you may pass EFSAuthorizationConfig
4323
+ # data as a hash:
4219
4324
  #
4325
+ # {
4326
+ # access_point_id: "String",
4327
+ # iam: "ENABLED", # accepts ENABLED, DISABLED
4328
+ # }
4220
4329
  #
4330
+ # @!attribute [rw] access_point_id
4331
+ # The Amazon EFS access point ID to use. If an access point is
4332
+ # specified, the root directory value specified in the
4333
+ # `EFSVolumeConfiguration` will be relative to the directory set for
4334
+ # the access point. If an access point is used, transit encryption
4335
+ # must be enabled in the `EFSVolumeConfiguration`. For more
4336
+ # information, see [Working with Amazon EFS Access Points][1] in the
4337
+ # *Amazon Elastic File System User Guide*.
4221
4338
  #
4222
- # [1]: https://aws.amazon.com/service-terms
4339
+ #
4340
+ #
4341
+ # [1]: https://docs.aws.amazon.com/efs/latest/ug/efs-access-points.html
4342
+ # @return [String]
4343
+ #
4344
+ # @!attribute [rw] iam
4345
+ # Whether or not to use the Amazon ECS task IAM role defined in a task
4346
+ # definition when mounting the Amazon EFS file system. If enabled,
4347
+ # transit encryption must be enabled in the `EFSVolumeConfiguration`.
4348
+ # If this parameter is omitted, the default value of `DISABLED` is
4349
+ # used. For more information, see [Using Amazon EFS Access Points][1]
4350
+ # in the *Amazon Elastic Container Service Developer Guide*.
4351
+ #
4352
+ #
4353
+ #
4354
+ # [1]: https://docs.aws.amazon.com/AmazonECS/latest/developerguide/efs-volumes.html#efs-volume-accesspoints
4355
+ # @return [String]
4356
+ #
4357
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/EFSAuthorizationConfig AWS API Documentation
4358
+ #
4359
+ class EFSAuthorizationConfig < Struct.new(
4360
+ :access_point_id,
4361
+ :iam)
4362
+ include Aws::Structure
4363
+ end
4364
+
4365
+ # This parameter is specified when you are using an Amazon Elastic File
4366
+ # System file system for task storage. For more information, see [Amazon
4367
+ # EFS Volumes][1] in the *Amazon Elastic Container Service Developer
4368
+ # Guide*.
4369
+ #
4370
+ #
4371
+ #
4372
+ # [1]: https://docs.aws.amazon.com/AmazonECS/latest/developerguide/efs-volumes.html
4223
4373
  #
4224
4374
  # @note When making an API call, you may pass EFSVolumeConfiguration
4225
4375
  # data as a hash:
@@ -4227,6 +4377,12 @@ module Aws::ECS
4227
4377
  # {
4228
4378
  # file_system_id: "String", # required
4229
4379
  # root_directory: "String",
4380
+ # transit_encryption: "ENABLED", # accepts ENABLED, DISABLED
4381
+ # transit_encryption_port: 1,
4382
+ # authorization_config: {
4383
+ # access_point_id: "String",
4384
+ # iam: "ENABLED", # accepts ENABLED, DISABLED
4385
+ # },
4230
4386
  # }
4231
4387
  #
4232
4388
  # @!attribute [rw] file_system_id
@@ -4235,14 +4391,99 @@ module Aws::ECS
4235
4391
  #
4236
4392
  # @!attribute [rw] root_directory
4237
4393
  # The directory within the Amazon EFS file system to mount as the root
4238
- # directory inside the host.
4394
+ # directory inside the host. If this parameter is omitted, the root of
4395
+ # the Amazon EFS volume will be used. Specifying `/` will have the
4396
+ # same effect as omitting this parameter.
4239
4397
  # @return [String]
4240
4398
  #
4399
+ # @!attribute [rw] transit_encryption
4400
+ # Whether or not to enable encryption for Amazon EFS data in transit
4401
+ # between the Amazon ECS host and the Amazon EFS server. Transit
4402
+ # encryption must be enabled if Amazon EFS IAM authorization is used.
4403
+ # If this parameter is omitted, the default value of `DISABLED` is
4404
+ # used. For more information, see [Encrypting Data in Transit][1] in
4405
+ # the *Amazon Elastic File System User Guide*.
4406
+ #
4407
+ #
4408
+ #
4409
+ # [1]: https://docs.aws.amazon.com/efs/latest/ug/encryption-in-transit.html
4410
+ # @return [String]
4411
+ #
4412
+ # @!attribute [rw] transit_encryption_port
4413
+ # The port to use when sending encrypted data between the Amazon ECS
4414
+ # host and the Amazon EFS server. If you do not specify a transit
4415
+ # encryption port, it will use the port selection strategy that the
4416
+ # Amazon EFS mount helper uses. For more information, see [EFS Mount
4417
+ # Helper][1] in the *Amazon Elastic File System User Guide*.
4418
+ #
4419
+ #
4420
+ #
4421
+ # [1]: https://docs.aws.amazon.com/efs/latest/ug/efs-mount-helper.html
4422
+ # @return [Integer]
4423
+ #
4424
+ # @!attribute [rw] authorization_config
4425
+ # The authorization configuration details for the Amazon EFS file
4426
+ # system.
4427
+ # @return [Types::EFSAuthorizationConfig]
4428
+ #
4241
4429
  # @see http://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/EFSVolumeConfiguration AWS API Documentation
4242
4430
  #
4243
4431
  class EFSVolumeConfiguration < Struct.new(
4244
4432
  :file_system_id,
4245
- :root_directory)
4433
+ :root_directory,
4434
+ :transit_encryption,
4435
+ :transit_encryption_port,
4436
+ :authorization_config)
4437
+ include Aws::Structure
4438
+ end
4439
+
4440
+ # A list of files containing the environment variables to pass to a
4441
+ # container. You can specify up to ten environment files. The file must
4442
+ # have a `.env` file extension. Each line in an environment file should
4443
+ # contain an environment variable in `VARIABLE=VALUE` format. Lines
4444
+ # beginning with `#` are treated as comments and are ignored. For more
4445
+ # information on the environment variable file syntax, see [Declare
4446
+ # default environment variables in file][1].
4447
+ #
4448
+ # If there are environment variables specified using the `environment`
4449
+ # parameter in a container definition, they take precedence over the
4450
+ # variables contained within an environment file. If multiple
4451
+ # environment files are specified that contain the same variable, they
4452
+ # are processed from the top down. It is recommended to use unique
4453
+ # variable names. For more information, see [Specifying Environment
4454
+ # Variables][2] in the *Amazon Elastic Container Service Developer
4455
+ # Guide*.
4456
+ #
4457
+ # This field is not valid for containers in tasks using the Fargate
4458
+ # launch type.
4459
+ #
4460
+ #
4461
+ #
4462
+ # [1]: https://docs.docker.com/compose/env-file/
4463
+ # [2]: https://docs.aws.amazon.com/AmazonECS/latest/developerguide/taskdef-envfiles.html
4464
+ #
4465
+ # @note When making an API call, you may pass EnvironmentFile
4466
+ # data as a hash:
4467
+ #
4468
+ # {
4469
+ # value: "String", # required
4470
+ # type: "s3", # required, accepts s3
4471
+ # }
4472
+ #
4473
+ # @!attribute [rw] value
4474
+ # The Amazon Resource Name (ARN) of the Amazon S3 object containing
4475
+ # the environment variable file.
4476
+ # @return [String]
4477
+ #
4478
+ # @!attribute [rw] type
4479
+ # The file type to use. The only supported value is `s3`.
4480
+ # @return [String]
4481
+ #
4482
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/EnvironmentFile AWS API Documentation
4483
+ #
4484
+ class EnvironmentFile < Struct.new(
4485
+ :value,
4486
+ :type)
4246
4487
  include Aws::Structure
4247
4488
  end
4248
4489
 
@@ -4322,6 +4563,39 @@ module Aws::ECS
4322
4563
  # Docker health checks that exist in the container image (such as those
4323
4564
  # specified in a parent image or from the image's Dockerfile).
4324
4565
  #
4566
+ # You can view the health status of both individual containers and a
4567
+ # task with the DescribeTasks API operation or when viewing the task
4568
+ # details in the console.
4569
+ #
4570
+ # The following describes the possible `healthStatus` values for a
4571
+ # container:
4572
+ #
4573
+ # * `HEALTHY`-The container health check has passed successfully.
4574
+ #
4575
+ # * `UNHEALTHY`-The container health check has failed.
4576
+ #
4577
+ # * `UNKNOWN`-The container health check is being evaluated or there is
4578
+ # no container health check defined.
4579
+ #
4580
+ # The following describes the possible `healthStatus` values for a task.
4581
+ # The container health check status of nonessential containers do not
4582
+ # have an effect on the health status of a task.
4583
+ #
4584
+ # * `HEALTHY`-All essential containers within the task have passed their
4585
+ # health checks.
4586
+ #
4587
+ # * `UNHEALTHY`-One or more essential containers have failed their
4588
+ # health check.
4589
+ #
4590
+ # * `UNKNOWN`-The essential containers within the task are still having
4591
+ # their health checks evaluated or there are no container health
4592
+ # checks defined.
4593
+ #
4594
+ # If a task is run manually, and not as part of a service, the task will
4595
+ # continue its lifecycle regardless of its health status. For tasks that
4596
+ # are part of a service, if the task reports as unhealthy then the task
4597
+ # will be stopped and the service scheduler will replace it.
4598
+ #
4325
4599
  # The following are notes about container health check support:
4326
4600
  #
4327
4601
  # * Container health checks require version 1.17.0 or greater of the
@@ -4573,8 +4847,9 @@ module Aws::ECS
4573
4847
  # `CapAdd` in the [Create a container][1] section of the [Docker
4574
4848
  # Remote API][2] and the `--cap-add` option to [docker run][3].
4575
4849
  #
4576
- # <note markdown="1"> If you are using tasks that use the Fargate launch type, the `add`
4577
- # parameter is not supported.
4850
+ # <note markdown="1"> The `SYS_PTRACE` capability is supported for tasks that use the
4851
+ # Fargate launch type if they are also using platform version 1.4.0.
4852
+ # The other capabilities are not supported for any platform versions.
4578
4853
  #
4579
4854
  # </note>
4580
4855
  #
@@ -4695,9 +4970,9 @@ module Aws::ECS
4695
4970
  # The Linux capabilities for the container that are added to or
4696
4971
  # dropped from the default configuration provided by Docker.
4697
4972
  #
4698
- # <note markdown="1"> If you are using tasks that use the Fargate launch type,
4699
- # `capabilities` is supported but the `add` parameter is not
4700
- # supported.
4973
+ # <note markdown="1"> For tasks that use the Fargate launch type, `capabilities` is
4974
+ # supported for all platform versions but the `add` parameter is only
4975
+ # supported if using platform version 1.4.0 or later.
4701
4976
  #
4702
4977
  # </note>
4703
4978
  # @return [Types::KernelCapabilities]
@@ -4832,7 +5107,7 @@ module Aws::ECS
4832
5107
  # }
4833
5108
  #
4834
5109
  # @!attribute [rw] name
4835
- # The resource name you want to list the account settings for.
5110
+ # The name of the account setting you want to list the settings for.
4836
5111
  # @return [String]
4837
5112
  #
4838
5113
  # @!attribute [rw] value
@@ -6712,6 +6987,12 @@ module Aws::ECS
6712
6987
  # value: "String",
6713
6988
  # },
6714
6989
  # ],
6990
+ # environment_files: [
6991
+ # {
6992
+ # value: "String", # required
6993
+ # type: "s3", # required, accepts s3
6994
+ # },
6995
+ # ],
6715
6996
  # mount_points: [
6716
6997
  # {
6717
6998
  # source_volume: "String",
@@ -6849,6 +7130,12 @@ module Aws::ECS
6849
7130
  # efs_volume_configuration: {
6850
7131
  # file_system_id: "String", # required
6851
7132
  # root_directory: "String",
7133
+ # transit_encryption: "ENABLED", # accepts ENABLED, DISABLED
7134
+ # transit_encryption_port: 1,
7135
+ # authorization_config: {
7136
+ # access_point_id: "String",
7137
+ # iam: "ENABLED", # accepts ENABLED, DISABLED
7138
+ # },
6852
7139
  # },
6853
7140
  # },
6854
7141
  # ],
@@ -6907,8 +7194,16 @@ module Aws::ECS
6907
7194
  # @return [String]
6908
7195
  #
6909
7196
  # @!attribute [rw] execution_role_arn
6910
- # The Amazon Resource Name (ARN) of the task execution role that the
6911
- # Amazon ECS container agent and the Docker daemon can assume.
7197
+ # The Amazon Resource Name (ARN) of the task execution role that
7198
+ # grants the Amazon ECS container agent permission to make AWS API
7199
+ # calls on your behalf. The task execution IAM role is required
7200
+ # depending on the requirements of your task. For more information,
7201
+ # see [Amazon ECS task execution IAM role][1] in the *Amazon Elastic
7202
+ # Container Service Developer Guide*.
7203
+ #
7204
+ #
7205
+ #
7206
+ # [1]: https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_execution_IAM_role.html
6912
7207
  # @return [String]
6913
7208
  #
6914
7209
  # @!attribute [rw] network_mode
@@ -7393,6 +7688,12 @@ module Aws::ECS
7393
7688
  # value: "String",
7394
7689
  # },
7395
7690
  # ],
7691
+ # environment_files: [
7692
+ # {
7693
+ # value: "String", # required
7694
+ # type: "s3", # required, accepts s3
7695
+ # },
7696
+ # ],
7396
7697
  # cpu: 1,
7397
7698
  # memory: 1,
7398
7699
  # memory_reservation: 1,
@@ -7914,9 +8215,11 @@ module Aws::ECS
7914
8215
  # placement decisions.
7915
8216
  #
7916
8217
  # * `DAEMON`-The daemon scheduling strategy deploys exactly one task
7917
- # on each container instance in your cluster. When you are using
7918
- # this strategy, do not specify a desired number of tasks or any
7919
- # task placement strategies.
8218
+ # on each active container instance that meets all of the task
8219
+ # placement constraints that you specify in your cluster. The
8220
+ # service scheduler also evaluates the task placement constraints
8221
+ # for running tasks and will stop tasks that do not meet the
8222
+ # placement constraints.
7920
8223
  #
7921
8224
  # <note markdown="1"> Fargate tasks do not support the `DAEMON` scheduling strategy.
7922
8225
  #
@@ -8172,6 +8475,12 @@ module Aws::ECS
8172
8475
  # value: "String",
8173
8476
  # },
8174
8477
  # ],
8478
+ # environment_files: [
8479
+ # {
8480
+ # value: "String", # required
8481
+ # type: "s3", # required, accepts s3
8482
+ # },
8483
+ # ],
8175
8484
  # cpu: 1,
8176
8485
  # memory: 1,
8177
8486
  # memory_reservation: 1,
@@ -9152,14 +9461,21 @@ module Aws::ECS
9152
9461
  #
9153
9462
  #
9154
9463
  #
9155
- # [1]: https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_IAM_role.html
9464
+ # [1]: https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-iam-roles.html
9156
9465
  # [2]: https://docs.aws.amazon.com/AmazonECS/latest/developerguide/windows_task_IAM_roles.html
9157
9466
  # @return [String]
9158
9467
  #
9159
9468
  # @!attribute [rw] execution_role_arn
9160
9469
  # The Amazon Resource Name (ARN) of the task execution role that
9161
- # containers in this task can assume. All containers in this task are
9162
- # granted the permissions that are specified in this role.
9470
+ # grants the Amazon ECS container agent permission to make AWS API
9471
+ # calls on your behalf. The task execution IAM role is required
9472
+ # depending on the requirements of your task. For more information,
9473
+ # see [Amazon ECS task execution IAM role][1] in the *Amazon Elastic
9474
+ # Container Service Developer Guide*.
9475
+ #
9476
+ #
9477
+ #
9478
+ # [1]: https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_execution_IAM_role.html
9163
9479
  # @return [String]
9164
9480
  #
9165
9481
  # @!attribute [rw] network_mode
@@ -9490,6 +9806,12 @@ module Aws::ECS
9490
9806
  # value: "String",
9491
9807
  # },
9492
9808
  # ],
9809
+ # environment_files: [
9810
+ # {
9811
+ # value: "String", # required
9812
+ # type: "s3", # required, accepts s3
9813
+ # },
9814
+ # ],
9493
9815
  # cpu: 1,
9494
9816
  # memory: 1,
9495
9817
  # memory_reservation: 1,
@@ -9526,8 +9848,8 @@ module Aws::ECS
9526
9848
  # @return [Array<Types::InferenceAcceleratorOverride>]
9527
9849
  #
9528
9850
  # @!attribute [rw] execution_role_arn
9529
- # The Amazon Resource Name (ARN) of the task execution role that the
9530
- # Amazon ECS container agent and the Docker daemon can assume.
9851
+ # The Amazon Resource Name (ARN) of the task execution IAM role
9852
+ # override for the task.
9531
9853
  # @return [String]
9532
9854
  #
9533
9855
  # @!attribute [rw] memory
@@ -10165,9 +10487,31 @@ module Aws::ECS
10165
10487
  #
10166
10488
  # If the service is using the default capacity provider strategy for
10167
10489
  # the cluster, the service can be updated to use one or more capacity
10168
- # providers. However, when a service is using a non-default capacity
10169
- # provider strategy, the service cannot be updated to use the
10170
- # cluster's default capacity provider strategy.
10490
+ # providers as opposed to the default capacity provider strategy.
10491
+ # However, when a service is using a capacity provider strategy that
10492
+ # is not the default capacity provider strategy, the service cannot be
10493
+ # updated to use the cluster's default capacity provider strategy.
10494
+ #
10495
+ # A capacity provider strategy consists of one or more capacity
10496
+ # providers along with the `base` and `weight` to assign to them. A
10497
+ # capacity provider must be associated with the cluster to be used in
10498
+ # a capacity provider strategy. The PutClusterCapacityProviders API is
10499
+ # used to associate a capacity provider with a cluster. Only capacity
10500
+ # providers with an `ACTIVE` or `UPDATING` status can be used.
10501
+ #
10502
+ # If specifying a capacity provider that uses an Auto Scaling group,
10503
+ # the capacity provider must already be created. New capacity
10504
+ # providers can be created with the CreateCapacityProvider API
10505
+ # operation.
10506
+ #
10507
+ # To use a AWS Fargate capacity provider, specify either the `FARGATE`
10508
+ # or `FARGATE_SPOT` capacity providers. The AWS Fargate capacity
10509
+ # providers are available to all accounts and only need to be
10510
+ # associated with a cluster to be used.
10511
+ #
10512
+ # The PutClusterCapacityProviders API operation is used to update the
10513
+ # list of available capacity providers for a cluster after the cluster
10514
+ # is created.
10171
10515
  # @return [Array<Types::CapacityProviderStrategyItem>]
10172
10516
  #
10173
10517
  # @!attribute [rw] deployment_configuration
@@ -10364,10 +10708,12 @@ module Aws::ECS
10364
10708
  include Aws::Structure
10365
10709
  end
10366
10710
 
10367
- # A data volume used in a task definition. For tasks that use a Docker
10368
- # volume, specify a `DockerVolumeConfiguration`. For tasks that use a
10369
- # bind mount host volume, specify a `host` and optional `sourcePath`.
10370
- # For more information, see [Using Data Volumes in Tasks][1].
10711
+ # A data volume used in a task definition. For tasks that use Amazon
10712
+ # Elastic File System (Amazon EFS) file storage, specify an
10713
+ # `efsVolumeConfiguration`. For tasks that use a Docker volume, specify
10714
+ # a `DockerVolumeConfiguration`. For tasks that use a bind mount host
10715
+ # volume, specify a `host` and optional `sourcePath`. For more
10716
+ # information, see [Using Data Volumes in Tasks][1].
10371
10717
  #
10372
10718
  #
10373
10719
  #
@@ -10395,6 +10741,12 @@ module Aws::ECS
10395
10741
  # efs_volume_configuration: {
10396
10742
  # file_system_id: "String", # required
10397
10743
  # root_directory: "String",
10744
+ # transit_encryption: "ENABLED", # accepts ENABLED, DISABLED
10745
+ # transit_encryption_port: 1,
10746
+ # authorization_config: {
10747
+ # access_point_id: "String",
10748
+ # iam: "ENABLED", # accepts ENABLED, DISABLED
10749
+ # },
10398
10750
  # },
10399
10751
  # }
10400
10752
  #
@@ -10406,13 +10758,12 @@ module Aws::ECS
10406
10758
  #
10407
10759
  # @!attribute [rw] host
10408
10760
  # This parameter is specified when you are using bind mount host
10409
- # volumes. Bind mount host volumes are supported when you are using
10410
- # either the EC2 or Fargate launch types. The contents of the `host`
10411
- # parameter determine whether your bind mount host volume persists on
10412
- # the host container instance and where it is stored. If the `host`
10413
- # parameter is empty, then the Docker daemon assigns a host path for
10414
- # your data volume. However, the data is not guaranteed to persist
10415
- # after the containers associated with it stop running.
10761
+ # volumes. The contents of the `host` parameter determine whether your
10762
+ # bind mount host volume persists on the host container instance and
10763
+ # where it is stored. If the `host` parameter is empty, then the
10764
+ # Docker daemon assigns a host path for your data volume. However, the
10765
+ # data is not guaranteed to persist after the containers associated
10766
+ # with it stop running.
10416
10767
  #
10417
10768
  # Windows containers can mount whole directories on the same drive as
10418
10769
  # `$env:ProgramData`. Windows containers cannot mount directories on a
@@ -10430,18 +10781,7 @@ module Aws::ECS
10430
10781
  #
10431
10782
  # @!attribute [rw] efs_volume_configuration
10432
10783
  # This parameter is specified when you are using an Amazon Elastic
10433
- # File System (Amazon EFS) file storage. Amazon EFS file systems are
10434
- # only supported when you are using the EC2 launch type.
10435
- #
10436
- # `EFSVolumeConfiguration` remains in preview and is a Beta Service as
10437
- # defined by and subject to the Beta Service Participation Service
10438
- # Terms located at [https://aws.amazon.com/service-terms][1] ("Beta
10439
- # Terms"). These Beta Terms apply to your participation in this
10440
- # preview of `EFSVolumeConfiguration`.
10441
- #
10442
- #
10443
- #
10444
- # [1]: https://aws.amazon.com/service-terms
10784
+ # File System file system for task storage.
10445
10785
  # @return [Types::EFSVolumeConfiguration]
10446
10786
  #
10447
10787
  # @see http://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/Volume AWS API Documentation