aws-sdk-ecs 1.59.0 → 1.65.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -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