aws-sdk-ecs 1.58.0 → 1.63.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.
@@ -119,7 +119,13 @@ module Aws::ECS
119
119
  DockerLabelsMap = Shapes::MapShape.new(name: 'DockerLabelsMap')
120
120
  DockerVolumeConfiguration = Shapes::StructureShape.new(name: 'DockerVolumeConfiguration')
121
121
  Double = Shapes::FloatShape.new(name: 'Double')
122
+ EFSAuthorizationConfig = Shapes::StructureShape.new(name: 'EFSAuthorizationConfig')
123
+ EFSAuthorizationConfigIAM = Shapes::StringShape.new(name: 'EFSAuthorizationConfigIAM')
124
+ EFSTransitEncryption = Shapes::StringShape.new(name: 'EFSTransitEncryption')
122
125
  EFSVolumeConfiguration = Shapes::StructureShape.new(name: 'EFSVolumeConfiguration')
126
+ EnvironmentFile = Shapes::StructureShape.new(name: 'EnvironmentFile')
127
+ EnvironmentFileType = Shapes::StringShape.new(name: 'EnvironmentFileType')
128
+ EnvironmentFiles = Shapes::ListShape.new(name: 'EnvironmentFiles')
123
129
  EnvironmentVariables = Shapes::ListShape.new(name: 'EnvironmentVariables')
124
130
  Failure = Shapes::StructureShape.new(name: 'Failure')
125
131
  Failures = Shapes::ListShape.new(name: 'Failures')
@@ -446,6 +452,7 @@ module Aws::ECS
446
452
  ContainerDefinition.add_member(:entry_point, Shapes::ShapeRef.new(shape: StringList, location_name: "entryPoint"))
447
453
  ContainerDefinition.add_member(:command, Shapes::ShapeRef.new(shape: StringList, location_name: "command"))
448
454
  ContainerDefinition.add_member(:environment, Shapes::ShapeRef.new(shape: EnvironmentVariables, location_name: "environment"))
455
+ ContainerDefinition.add_member(:environment_files, Shapes::ShapeRef.new(shape: EnvironmentFiles, location_name: "environmentFiles"))
449
456
  ContainerDefinition.add_member(:mount_points, Shapes::ShapeRef.new(shape: MountPointList, location_name: "mountPoints"))
450
457
  ContainerDefinition.add_member(:volumes_from, Shapes::ShapeRef.new(shape: VolumeFromList, location_name: "volumesFrom"))
451
458
  ContainerDefinition.add_member(:linux_parameters, Shapes::ShapeRef.new(shape: LinuxParameters, location_name: "linuxParameters"))
@@ -508,6 +515,7 @@ module Aws::ECS
508
515
  ContainerOverride.add_member(:name, Shapes::ShapeRef.new(shape: String, location_name: "name"))
509
516
  ContainerOverride.add_member(:command, Shapes::ShapeRef.new(shape: StringList, location_name: "command"))
510
517
  ContainerOverride.add_member(:environment, Shapes::ShapeRef.new(shape: EnvironmentVariables, location_name: "environment"))
518
+ ContainerOverride.add_member(:environment_files, Shapes::ShapeRef.new(shape: EnvironmentFiles, location_name: "environmentFiles"))
511
519
  ContainerOverride.add_member(:cpu, Shapes::ShapeRef.new(shape: BoxedInteger, location_name: "cpu"))
512
520
  ContainerOverride.add_member(:memory, Shapes::ShapeRef.new(shape: BoxedInteger, location_name: "memory"))
513
521
  ContainerOverride.add_member(:memory_reservation, Shapes::ShapeRef.new(shape: BoxedInteger, location_name: "memoryReservation"))
@@ -756,10 +764,23 @@ module Aws::ECS
756
764
  DockerVolumeConfiguration.add_member(:labels, Shapes::ShapeRef.new(shape: StringMap, location_name: "labels"))
757
765
  DockerVolumeConfiguration.struct_class = Types::DockerVolumeConfiguration
758
766
 
767
+ EFSAuthorizationConfig.add_member(:access_point_id, Shapes::ShapeRef.new(shape: String, location_name: "accessPointId"))
768
+ EFSAuthorizationConfig.add_member(:iam, Shapes::ShapeRef.new(shape: EFSAuthorizationConfigIAM, location_name: "iam"))
769
+ EFSAuthorizationConfig.struct_class = Types::EFSAuthorizationConfig
770
+
759
771
  EFSVolumeConfiguration.add_member(:file_system_id, Shapes::ShapeRef.new(shape: String, required: true, location_name: "fileSystemId"))
760
772
  EFSVolumeConfiguration.add_member(:root_directory, Shapes::ShapeRef.new(shape: String, location_name: "rootDirectory"))
773
+ EFSVolumeConfiguration.add_member(:transit_encryption, Shapes::ShapeRef.new(shape: EFSTransitEncryption, location_name: "transitEncryption"))
774
+ EFSVolumeConfiguration.add_member(:transit_encryption_port, Shapes::ShapeRef.new(shape: BoxedInteger, location_name: "transitEncryptionPort"))
775
+ EFSVolumeConfiguration.add_member(:authorization_config, Shapes::ShapeRef.new(shape: EFSAuthorizationConfig, location_name: "authorizationConfig"))
761
776
  EFSVolumeConfiguration.struct_class = Types::EFSVolumeConfiguration
762
777
 
778
+ EnvironmentFile.add_member(:value, Shapes::ShapeRef.new(shape: String, required: true, location_name: "value"))
779
+ EnvironmentFile.add_member(:type, Shapes::ShapeRef.new(shape: EnvironmentFileType, required: true, location_name: "type"))
780
+ EnvironmentFile.struct_class = Types::EnvironmentFile
781
+
782
+ EnvironmentFiles.member = Shapes::ShapeRef.new(shape: EnvironmentFile)
783
+
763
784
  EnvironmentVariables.member = Shapes::ShapeRef.new(shape: KeyValuePair)
764
785
 
765
786
  Failure.add_member(:arn, Shapes::ShapeRef.new(shape: String, location_name: "arn"))
@@ -1453,6 +1474,8 @@ module Aws::ECS
1453
1474
  UpdateServiceRequest.add_member(:capacity_provider_strategy, Shapes::ShapeRef.new(shape: CapacityProviderStrategy, location_name: "capacityProviderStrategy"))
1454
1475
  UpdateServiceRequest.add_member(:deployment_configuration, Shapes::ShapeRef.new(shape: DeploymentConfiguration, location_name: "deploymentConfiguration"))
1455
1476
  UpdateServiceRequest.add_member(:network_configuration, Shapes::ShapeRef.new(shape: NetworkConfiguration, location_name: "networkConfiguration"))
1477
+ UpdateServiceRequest.add_member(:placement_constraints, Shapes::ShapeRef.new(shape: PlacementConstraints, location_name: "placementConstraints"))
1478
+ UpdateServiceRequest.add_member(:placement_strategy, Shapes::ShapeRef.new(shape: PlacementStrategies, location_name: "placementStrategy"))
1456
1479
  UpdateServiceRequest.add_member(:platform_version, Shapes::ShapeRef.new(shape: String, location_name: "platformVersion"))
1457
1480
  UpdateServiceRequest.add_member(:force_new_deployment, Shapes::ShapeRef.new(shape: Boolean, location_name: "forceNewDeployment"))
1458
1481
  UpdateServiceRequest.add_member(:health_check_grace_period_seconds, Shapes::ShapeRef.new(shape: BoxedInteger, location_name: "healthCheckGracePeriodSeconds"))
@@ -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 ({})
@@ -322,8 +322,7 @@ module Aws::ECS
322
322
  # }
323
323
  #
324
324
  # @!attribute [rw] capacity_provider
325
- # The short name or full Amazon Resource Name (ARN) of the capacity
326
- # provider.
325
+ # The short name of the capacity provider.
327
326
  # @return [String]
328
327
  #
329
328
  # @!attribute [rw] weight
@@ -744,6 +743,12 @@ module Aws::ECS
744
743
  # value: "String",
745
744
  # },
746
745
  # ],
746
+ # environment_files: [
747
+ # {
748
+ # value: "String", # required
749
+ # type: "s3", # required, accepts s3
750
+ # },
751
+ # ],
747
752
  # mount_points: [
748
753
  # {
749
754
  # source_volume: "String",
@@ -1188,6 +1193,37 @@ module Aws::ECS
1188
1193
  # [3]: https://docs.docker.com/engine/reference/run/
1189
1194
  # @return [Array<Types::KeyValuePair>]
1190
1195
  #
1196
+ # @!attribute [rw] environment_files
1197
+ # A list of files containing the environment variables to pass to a
1198
+ # container. This parameter maps to the `--env-file` option to [docker
1199
+ # run][1].
1200
+ #
1201
+ # You can specify up to ten environment files. The file must have a
1202
+ # `.env` file extension. Each line in an environment file should
1203
+ # contain an environment variable in `VARIABLE=VALUE` format. Lines
1204
+ # beginning with `#` are treated as comments and are ignored. For more
1205
+ # information on the environment variable file syntax, see [Declare
1206
+ # default environment variables in file][2].
1207
+ #
1208
+ # If there are environment variables specified using the `environment`
1209
+ # parameter in a container definition, they take precedence over the
1210
+ # variables contained within an environment file. If multiple
1211
+ # environment files are specified that contain the same variable, they
1212
+ # are processed from the top down. It is recommended to use unique
1213
+ # variable names. For more information, see [Specifying Environment
1214
+ # Variables][3] in the *Amazon Elastic Container Service Developer
1215
+ # Guide*.
1216
+ #
1217
+ # This field is not valid for containers in tasks using the Fargate
1218
+ # launch type.
1219
+ #
1220
+ #
1221
+ #
1222
+ # [1]: https://docs.docker.com/engine/reference/run/
1223
+ # [2]: https://docs.docker.com/compose/env-file/
1224
+ # [3]: https://docs.aws.amazon.com/AmazonECS/latest/developerguide/taskdef-envfiles.html
1225
+ # @return [Array<Types::EnvironmentFile>]
1226
+ #
1191
1227
  # @!attribute [rw] mount_points
1192
1228
  # The mount points for data volumes in your container.
1193
1229
  #
@@ -1277,22 +1313,30 @@ module Aws::ECS
1277
1313
  # give up and not start. This results in the task transitioning to a
1278
1314
  # `STOPPED` state.
1279
1315
  #
1280
- # For tasks using the EC2 launch type, the container instances require
1281
- # at least version 1.26.0 of the container agent to enable a container
1282
- # start timeout value. However, we recommend using the latest
1283
- # container agent version. For information about checking your agent
1284
- # version and updating to the latest version, see [Updating the Amazon
1285
- # ECS Container Agent][1] in the *Amazon Elastic Container Service
1286
- # Developer Guide*. If you are using an Amazon ECS-optimized Linux
1287
- # AMI, your instance needs at least version 1.26.0-1 of the `ecs-init`
1288
- # package. If your container instances are launched from version
1289
- # `20190301` or later, then they contain the required versions of the
1290
- # container agent and `ecs-init`. For more information, see [Amazon
1291
- # ECS-optimized Linux AMI][2] in the *Amazon Elastic Container Service
1292
- # Developer Guide*.
1316
+ # For tasks using the Fargate launch type, this parameter requires
1317
+ # that the task or service uses platform version 1.3.0 or later. If
1318
+ # this parameter is not specified, the default value of 3 minutes is
1319
+ # used.
1293
1320
  #
1294
- # For tasks using the Fargate launch type, the task or service
1295
- # requires platform version `1.3.0` or later.
1321
+ # For tasks using the EC2 launch type, if the `startTimeout` parameter
1322
+ # is not specified, the value set for the Amazon ECS container agent
1323
+ # configuration variable `ECS_CONTAINER_START_TIMEOUT` is used by
1324
+ # default. If neither the `startTimeout` parameter or the
1325
+ # `ECS_CONTAINER_START_TIMEOUT` agent configuration variable are set,
1326
+ # then the default values of 3 minutes for Linux containers and 8
1327
+ # minutes on Windows containers are used. Your container instances
1328
+ # require at least version 1.26.0 of the container agent to enable a
1329
+ # container start timeout value. However, we recommend using the
1330
+ # latest container agent version. For information about checking your
1331
+ # agent version and updating to the latest version, see [Updating the
1332
+ # Amazon ECS Container Agent][1] in the *Amazon Elastic Container
1333
+ # Service Developer Guide*. If you are using an Amazon ECS-optimized
1334
+ # Linux AMI, your instance needs at least version 1.26.0-1 of the
1335
+ # `ecs-init` package. If your container instances are launched from
1336
+ # version `20190301` or later, then they contain the required versions
1337
+ # of the container agent and `ecs-init`. For more information, see
1338
+ # [Amazon ECS-optimized Linux AMI][2] in the *Amazon Elastic Container
1339
+ # Service Developer Guide*.
1296
1340
  #
1297
1341
  #
1298
1342
  #
@@ -1304,25 +1348,30 @@ module Aws::ECS
1304
1348
  # Time duration (in seconds) to wait before the container is
1305
1349
  # forcefully killed if it doesn't exit normally on its own.
1306
1350
  #
1307
- # For tasks using the Fargate launch type, the max `stopTimeout` value
1308
- # is 2 minutes and the task or service requires platform version
1309
- # `1.3.0` or later.
1310
- #
1311
- # For tasks using the EC2 launch type, the stop timeout value for the
1312
- # container takes precedence over the `ECS_CONTAINER_STOP_TIMEOUT`
1313
- # container agent configuration parameter, if used. Container
1314
- # instances require at least version 1.26.0 of the container agent to
1315
- # enable a container stop timeout value. However, we recommend using
1316
- # the latest container agent version. For information about checking
1317
- # your agent version and updating to the latest version, see [Updating
1318
- # the Amazon ECS Container Agent][1] in the *Amazon Elastic Container
1319
- # Service Developer Guide*. If you are using an Amazon ECS-optimized
1320
- # Linux AMI, your instance needs at least version 1.26.0-1 of the
1321
- # `ecs-init` package. If your container instances are launched from
1322
- # version `20190301` or later, then they contain the required versions
1323
- # of the container agent and `ecs-init`. For more information, see
1324
- # [Amazon ECS-optimized Linux AMI][2] in the *Amazon Elastic Container
1325
- # Service Developer Guide*.
1351
+ # For tasks using the Fargate launch type, the task or service
1352
+ # requires platform version 1.3.0 or later. The max stop timeout value
1353
+ # is 120 seconds and if the parameter is not specified, the default
1354
+ # value of 30 seconds is used.
1355
+ #
1356
+ # For tasks using the EC2 launch type, if the `stopTimeout` parameter
1357
+ # is not specified, the value set for the Amazon ECS container agent
1358
+ # configuration variable `ECS_CONTAINER_STOP_TIMEOUT` is used by
1359
+ # default. If neither the `stopTimeout` parameter or the
1360
+ # `ECS_CONTAINER_STOP_TIMEOUT` agent configuration variable are set,
1361
+ # then the default values of 30 seconds for Linux containers and 30
1362
+ # seconds on Windows containers are used. Your container instances
1363
+ # require at least version 1.26.0 of the container agent to enable a
1364
+ # container stop timeout value. However, we recommend using the latest
1365
+ # container agent version. For information about checking your agent
1366
+ # version and updating to the latest version, see [Updating the Amazon
1367
+ # ECS Container Agent][1] in the *Amazon Elastic Container Service
1368
+ # Developer Guide*. If you are using an Amazon ECS-optimized Linux
1369
+ # AMI, your instance needs at least version 1.26.0-1 of the `ecs-init`
1370
+ # package. If your container instances are launched from version
1371
+ # `20190301` or later, then they contain the required versions of the
1372
+ # container agent and `ecs-init`. For more information, see [Amazon
1373
+ # ECS-optimized Linux AMI][2] in the *Amazon Elastic Container Service
1374
+ # Developer Guide*.
1326
1375
  #
1327
1376
  #
1328
1377
  #
@@ -1640,10 +1689,10 @@ module Aws::ECS
1640
1689
  # @return [Types::LogConfiguration]
1641
1690
  #
1642
1691
  # @!attribute [rw] health_check
1643
- # The health check command and associated configuration parameters for
1644
- # the container. This parameter maps to `HealthCheck` in the [Create a
1645
- # container][1] section of the [Docker Remote API][2] and the
1646
- # `HEALTHCHECK` parameter of [docker run][3].
1692
+ # The container health check command and associated configuration
1693
+ # parameters for the container. This parameter maps to `HealthCheck`
1694
+ # in the [Create a container][1] section of the [Docker Remote API][2]
1695
+ # and the `HEALTHCHECK` parameter of [docker run][3].
1647
1696
  #
1648
1697
  #
1649
1698
  #
@@ -1707,6 +1756,7 @@ module Aws::ECS
1707
1756
  :entry_point,
1708
1757
  :command,
1709
1758
  :environment,
1759
+ :environment_files,
1710
1760
  :mount_points,
1711
1761
  :volumes_from,
1712
1762
  :linux_parameters,
@@ -2005,6 +2055,12 @@ module Aws::ECS
2005
2055
  # value: "String",
2006
2056
  # },
2007
2057
  # ],
2058
+ # environment_files: [
2059
+ # {
2060
+ # value: "String", # required
2061
+ # type: "s3", # required, accepts s3
2062
+ # },
2063
+ # ],
2008
2064
  # cpu: 1,
2009
2065
  # memory: 1,
2010
2066
  # memory_reservation: 1,
@@ -2035,6 +2091,11 @@ module Aws::ECS
2035
2091
  # container name.
2036
2092
  # @return [Array<Types::KeyValuePair>]
2037
2093
  #
2094
+ # @!attribute [rw] environment_files
2095
+ # A list of files containing the environment variables to pass to a
2096
+ # container, instead of the value from the container definition.
2097
+ # @return [Array<Types::EnvironmentFile>]
2098
+ #
2038
2099
  # @!attribute [rw] cpu
2039
2100
  # The number of `cpu` units reserved for the container, instead of the
2040
2101
  # default value from the task definition. You must also specify a
@@ -2066,6 +2127,7 @@ module Aws::ECS
2066
2127
  :name,
2067
2128
  :command,
2068
2129
  :environment,
2130
+ :environment_files,
2069
2131
  :cpu,
2070
2132
  :memory,
2071
2133
  :memory_reservation,
@@ -2294,8 +2356,8 @@ module Aws::ECS
2294
2356
  # @return [Array<Types::ClusterSetting>]
2295
2357
  #
2296
2358
  # @!attribute [rw] capacity_providers
2297
- # The short name or full Amazon Resource Name (ARN) of one or more
2298
- # capacity providers to associate with the cluster.
2359
+ # The short name of one or more capacity providers to associate with
2360
+ # the cluster.
2299
2361
  #
2300
2362
  # If specifying a capacity provider that uses an Auto Scaling group,
2301
2363
  # the capacity provider must already be created and not already
@@ -2670,14 +2732,17 @@ module Aws::ECS
2670
2732
  # @!attribute [rw] health_check_grace_period_seconds
2671
2733
  # The period of time, in seconds, that the Amazon ECS service
2672
2734
  # scheduler should ignore unhealthy Elastic Load Balancing target
2673
- # health checks after a task has first started. This is only valid if
2674
- # your service is configured to use a load balancer. If your
2675
- # service's tasks take a while to start and respond to Elastic Load
2676
- # Balancing health checks, you can specify a health check grace period
2677
- # of up to 2,147,483,647 seconds. During that time, the ECS service
2678
- # scheduler ignores health check status. This grace period can prevent
2679
- # the ECS service scheduler from marking tasks as unhealthy and
2680
- # stopping them before they have time to come up.
2735
+ # health checks after a task has first started. This is only used when
2736
+ # your service is configured to use a load balancer. If your service
2737
+ # has a load balancer defined and you don't specify a health check
2738
+ # grace period value, the default value of `0` is used.
2739
+ #
2740
+ # If your service's tasks take a while to start and respond to
2741
+ # Elastic Load Balancing health checks, you can specify a health check
2742
+ # grace period of up to 2,147,483,647 seconds. During that time, the
2743
+ # Amazon ECS service scheduler ignores health check status. This grace
2744
+ # period can prevent the service scheduler from marking tasks as
2745
+ # unhealthy and stopping them before they have time to come up.
2681
2746
  # @return [Integer]
2682
2747
  #
2683
2748
  # @!attribute [rw] scheduling_strategy
@@ -2696,10 +2761,12 @@ module Aws::ECS
2696
2761
  #
2697
2762
  # * `DAEMON`-The daemon scheduling strategy deploys exactly one task
2698
2763
  # on each active container instance that meets all of the task
2699
- # placement constraints that you specify in your cluster. When
2700
- # you're using this strategy, you don't need to specify a desired
2701
- # number of tasks, a task placement strategy, or use Service Auto
2702
- # Scaling policies.
2764
+ # placement constraints that you specify in your cluster. The
2765
+ # service scheduler also evaluates the task placement constraints
2766
+ # for running tasks and will stop tasks that do not meet the
2767
+ # placement constraints. When you're using this strategy, you
2768
+ # don't need to specify a desired number of tasks, a task placement
2769
+ # strategy, or use Service Auto Scaling policies.
2703
2770
  #
2704
2771
  # <note markdown="1"> Tasks using the Fargate launch type or the `CODE_DEPLOY` or
2705
2772
  # `EXTERNAL` deployment controller types don't support the `DAEMON`
@@ -4191,19 +4258,60 @@ module Aws::ECS
4191
4258
  include Aws::Structure
4192
4259
  end
4193
4260
 
4194
- # This parameter is specified when you are using an Amazon Elastic File
4195
- # System (Amazon EFS) file storage. Amazon EFS file systems are only
4196
- # supported when you are using the EC2 launch type.
4261
+ # The authorization configuration details for the Amazon EFS file
4262
+ # system.
4263
+ #
4264
+ # @note When making an API call, you may pass EFSAuthorizationConfig
4265
+ # data as a hash:
4266
+ #
4267
+ # {
4268
+ # access_point_id: "String",
4269
+ # iam: "ENABLED", # accepts ENABLED, DISABLED
4270
+ # }
4271
+ #
4272
+ # @!attribute [rw] access_point_id
4273
+ # The Amazon EFS access point ID to use. If an access point is
4274
+ # specified, the root directory value specified in the
4275
+ # `EFSVolumeConfiguration` will be relative to the directory set for
4276
+ # the access point. If an access point is used, transit encryption
4277
+ # must be enabled in the `EFSVolumeConfiguration`. For more
4278
+ # information, see [Working with Amazon EFS Access Points][1] in the
4279
+ # *Amazon Elastic File System User Guide*.
4197
4280
  #
4198
- # `EFSVolumeConfiguration` remains in preview and is a Beta Service as
4199
- # defined by and subject to the Beta Service Participation Service Terms
4200
- # located at [https://aws.amazon.com/service-terms][1] ("Beta Terms").
4201
- # These Beta Terms apply to your participation in this preview of
4202
- # `EFSVolumeConfiguration`.
4203
4281
  #
4204
4282
  #
4283
+ # [1]: https://docs.aws.amazon.com/efs/latest/ug/efs-access-points.html
4284
+ # @return [String]
4285
+ #
4286
+ # @!attribute [rw] iam
4287
+ # Whether or not to use the Amazon ECS task IAM role defined in a task
4288
+ # definition when mounting the Amazon EFS file system. If enabled,
4289
+ # transit encryption must be enabled in the `EFSVolumeConfiguration`.
4290
+ # If this parameter is omitted, the default value of `DISABLED` is
4291
+ # used. For more information, see [Using Amazon EFS Access Points][1]
4292
+ # in the *Amazon Elastic Container Service Developer Guide*.
4205
4293
  #
4206
- # [1]: https://aws.amazon.com/service-terms
4294
+ #
4295
+ #
4296
+ # [1]: https://docs.aws.amazon.com/AmazonECS/latest/developerguide/efs-volumes.html#efs-volume-accesspoints
4297
+ # @return [String]
4298
+ #
4299
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/EFSAuthorizationConfig AWS API Documentation
4300
+ #
4301
+ class EFSAuthorizationConfig < Struct.new(
4302
+ :access_point_id,
4303
+ :iam)
4304
+ include Aws::Structure
4305
+ end
4306
+
4307
+ # This parameter is specified when you are using an Amazon Elastic File
4308
+ # System file system for task storage. For more information, see [Amazon
4309
+ # EFS Volumes][1] in the *Amazon Elastic Container Service Developer
4310
+ # Guide*.
4311
+ #
4312
+ #
4313
+ #
4314
+ # [1]: https://docs.aws.amazon.com/AmazonECS/latest/developerguide/efs-volumes.html
4207
4315
  #
4208
4316
  # @note When making an API call, you may pass EFSVolumeConfiguration
4209
4317
  # data as a hash:
@@ -4211,6 +4319,12 @@ module Aws::ECS
4211
4319
  # {
4212
4320
  # file_system_id: "String", # required
4213
4321
  # root_directory: "String",
4322
+ # transit_encryption: "ENABLED", # accepts ENABLED, DISABLED
4323
+ # transit_encryption_port: 1,
4324
+ # authorization_config: {
4325
+ # access_point_id: "String",
4326
+ # iam: "ENABLED", # accepts ENABLED, DISABLED
4327
+ # },
4214
4328
  # }
4215
4329
  #
4216
4330
  # @!attribute [rw] file_system_id
@@ -4219,14 +4333,99 @@ module Aws::ECS
4219
4333
  #
4220
4334
  # @!attribute [rw] root_directory
4221
4335
  # The directory within the Amazon EFS file system to mount as the root
4222
- # directory inside the host.
4336
+ # directory inside the host. If this parameter is omitted, the root of
4337
+ # the Amazon EFS volume will be used. Specifying `/` will have the
4338
+ # same effect as omitting this parameter.
4339
+ # @return [String]
4340
+ #
4341
+ # @!attribute [rw] transit_encryption
4342
+ # Whether or not to enable encryption for Amazon EFS data in transit
4343
+ # between the Amazon ECS host and the Amazon EFS server. Transit
4344
+ # encryption must be enabled if Amazon EFS IAM authorization is used.
4345
+ # If this parameter is omitted, the default value of `DISABLED` is
4346
+ # used. For more information, see [Encrypting Data in Transit][1] in
4347
+ # the *Amazon Elastic File System User Guide*.
4348
+ #
4349
+ #
4350
+ #
4351
+ # [1]: https://docs.aws.amazon.com/efs/latest/ug/encryption-in-transit.html
4223
4352
  # @return [String]
4224
4353
  #
4354
+ # @!attribute [rw] transit_encryption_port
4355
+ # The port to use when sending encrypted data between the Amazon ECS
4356
+ # host and the Amazon EFS server. If you do not specify a transit
4357
+ # encryption port, it will use the port selection strategy that the
4358
+ # Amazon EFS mount helper uses. For more information, see [EFS Mount
4359
+ # Helper][1] in the *Amazon Elastic File System User Guide*.
4360
+ #
4361
+ #
4362
+ #
4363
+ # [1]: https://docs.aws.amazon.com/efs/latest/ug/efs-mount-helper.html
4364
+ # @return [Integer]
4365
+ #
4366
+ # @!attribute [rw] authorization_config
4367
+ # The authorization configuration details for the Amazon EFS file
4368
+ # system.
4369
+ # @return [Types::EFSAuthorizationConfig]
4370
+ #
4225
4371
  # @see http://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/EFSVolumeConfiguration AWS API Documentation
4226
4372
  #
4227
4373
  class EFSVolumeConfiguration < Struct.new(
4228
4374
  :file_system_id,
4229
- :root_directory)
4375
+ :root_directory,
4376
+ :transit_encryption,
4377
+ :transit_encryption_port,
4378
+ :authorization_config)
4379
+ include Aws::Structure
4380
+ end
4381
+
4382
+ # A list of files containing the environment variables to pass to a
4383
+ # container. You can specify up to ten environment files. The file must
4384
+ # have a `.env` file extension. Each line in an environment file should
4385
+ # contain an environment variable in `VARIABLE=VALUE` format. Lines
4386
+ # beginning with `#` are treated as comments and are ignored. For more
4387
+ # information on the environment variable file syntax, see [Declare
4388
+ # default environment variables in file][1].
4389
+ #
4390
+ # If there are environment variables specified using the `environment`
4391
+ # parameter in a container definition, they take precedence over the
4392
+ # variables contained within an environment file. If multiple
4393
+ # environment files are specified that contain the same variable, they
4394
+ # are processed from the top down. It is recommended to use unique
4395
+ # variable names. For more information, see [Specifying Environment
4396
+ # Variables][2] in the *Amazon Elastic Container Service Developer
4397
+ # Guide*.
4398
+ #
4399
+ # This field is not valid for containers in tasks using the Fargate
4400
+ # launch type.
4401
+ #
4402
+ #
4403
+ #
4404
+ # [1]: https://docs.docker.com/compose/env-file/
4405
+ # [2]: https://docs.aws.amazon.com/AmazonECS/latest/developerguide/taskdef-envfiles.html
4406
+ #
4407
+ # @note When making an API call, you may pass EnvironmentFile
4408
+ # data as a hash:
4409
+ #
4410
+ # {
4411
+ # value: "String", # required
4412
+ # type: "s3", # required, accepts s3
4413
+ # }
4414
+ #
4415
+ # @!attribute [rw] value
4416
+ # The Amazon Resource Name (ARN) of the Amazon S3 object containing
4417
+ # the environment variable file.
4418
+ # @return [String]
4419
+ #
4420
+ # @!attribute [rw] type
4421
+ # The file type to use. The only supported value is `s3`.
4422
+ # @return [String]
4423
+ #
4424
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/EnvironmentFile AWS API Documentation
4425
+ #
4426
+ class EnvironmentFile < Struct.new(
4427
+ :value,
4428
+ :type)
4230
4429
  include Aws::Structure
4231
4430
  end
4232
4431
 
@@ -4306,6 +4505,39 @@ module Aws::ECS
4306
4505
  # Docker health checks that exist in the container image (such as those
4307
4506
  # specified in a parent image or from the image's Dockerfile).
4308
4507
  #
4508
+ # You can view the health status of both individual containers and a
4509
+ # task with the DescribeTasks API operation or when viewing the task
4510
+ # details in the console.
4511
+ #
4512
+ # The following describes the possible `healthStatus` values for a
4513
+ # container:
4514
+ #
4515
+ # * `HEALTHY`-The container health check has passed successfully.
4516
+ #
4517
+ # * `UNHEALTHY`-The container health check has failed.
4518
+ #
4519
+ # * `UNKNOWN`-The container health check is being evaluated or there is
4520
+ # no container health check defined.
4521
+ #
4522
+ # The following describes the possible `healthStatus` values for a task.
4523
+ # The container health check status of nonessential containers do not
4524
+ # have an effect on the health status of a task.
4525
+ #
4526
+ # * `HEALTHY`-All essential containers within the task have passed their
4527
+ # health checks.
4528
+ #
4529
+ # * `UNHEALTHY`-One or more essential containers have failed their
4530
+ # health check.
4531
+ #
4532
+ # * `UNKNOWN`-The essential containers within the task are still having
4533
+ # their health checks evaluated or there are no container health
4534
+ # checks defined.
4535
+ #
4536
+ # If a task is run manually, and not as part of a service, the task will
4537
+ # continue its lifecycle regardless of its health status. For tasks that
4538
+ # are part of a service, if the task reports as unhealthy then the task
4539
+ # will be stopped and the service scheduler will replace it.
4540
+ #
4309
4541
  # The following are notes about container health check support:
4310
4542
  #
4311
4543
  # * Container health checks require version 1.17.0 or greater of the
@@ -4557,8 +4789,9 @@ module Aws::ECS
4557
4789
  # `CapAdd` in the [Create a container][1] section of the [Docker
4558
4790
  # Remote API][2] and the `--cap-add` option to [docker run][3].
4559
4791
  #
4560
- # <note markdown="1"> If you are using tasks that use the Fargate launch type, the `add`
4561
- # parameter is not supported.
4792
+ # <note markdown="1"> The `SYS_PTRACE` capability is supported for tasks that use the
4793
+ # Fargate launch type if they are also using platform version 1.4.0.
4794
+ # The other capabilities are not supported for any platform versions.
4562
4795
  #
4563
4796
  # </note>
4564
4797
  #
@@ -4679,9 +4912,9 @@ module Aws::ECS
4679
4912
  # The Linux capabilities for the container that are added to or
4680
4913
  # dropped from the default configuration provided by Docker.
4681
4914
  #
4682
- # <note markdown="1"> If you are using tasks that use the Fargate launch type,
4683
- # `capabilities` is supported but the `add` parameter is not
4684
- # supported.
4915
+ # <note markdown="1"> For tasks that use the Fargate launch type, `capabilities` is
4916
+ # supported for all platform versions but the `add` parameter is only
4917
+ # supported if using platform version 1.4.0 or later.
4685
4918
  #
4686
4919
  # </note>
4687
4920
  # @return [Types::KernelCapabilities]
@@ -5554,8 +5787,11 @@ module Aws::ECS
5554
5787
  include Aws::Structure
5555
5788
  end
5556
5789
 
5557
- # Details on the load balancer or load balancers to use with a service
5558
- # or task set.
5790
+ # The load balancer configuration to use with a service or task set.
5791
+ #
5792
+ # For specific notes and restrictions regarding the use of load
5793
+ # balancers with services and task sets, see the CreateService and
5794
+ # CreateTaskSet actions.
5559
5795
  #
5560
5796
  # @note When making an API call, you may pass LoadBalancer
5561
5797
  # data as a hash:
@@ -5573,7 +5809,7 @@ module Aws::ECS
5573
5809
  #
5574
5810
  # A target group ARN is only specified when using an Application Load
5575
5811
  # Balancer or Network Load Balancer. If you are using a Classic Load
5576
- # Balancer this should be omitted.
5812
+ # Balancer the target group ARN should be omitted.
5577
5813
  #
5578
5814
  # For services using the `ECS` deployment controller, you can specify
5579
5815
  # one or multiple target groups. For more information, see
@@ -5604,7 +5840,7 @@ module Aws::ECS
5604
5840
  #
5605
5841
  # A load balancer name is only specified when using a Classic Load
5606
5842
  # Balancer. If you are using an Application Load Balancer or a Network
5607
- # Load Balancer this should be omitted.
5843
+ # Load Balancer the load balancer name parameter should be omitted.
5608
5844
  # @return [String]
5609
5845
  #
5610
5846
  # @!attribute [rw] container_name
@@ -6693,6 +6929,12 @@ module Aws::ECS
6693
6929
  # value: "String",
6694
6930
  # },
6695
6931
  # ],
6932
+ # environment_files: [
6933
+ # {
6934
+ # value: "String", # required
6935
+ # type: "s3", # required, accepts s3
6936
+ # },
6937
+ # ],
6696
6938
  # mount_points: [
6697
6939
  # {
6698
6940
  # source_volume: "String",
@@ -6830,6 +7072,12 @@ module Aws::ECS
6830
7072
  # efs_volume_configuration: {
6831
7073
  # file_system_id: "String", # required
6832
7074
  # root_directory: "String",
7075
+ # transit_encryption: "ENABLED", # accepts ENABLED, DISABLED
7076
+ # transit_encryption_port: 1,
7077
+ # authorization_config: {
7078
+ # access_point_id: "String",
7079
+ # iam: "ENABLED", # accepts ENABLED, DISABLED
7080
+ # },
6833
7081
  # },
6834
7082
  # },
6835
7083
  # ],
@@ -7374,6 +7622,12 @@ module Aws::ECS
7374
7622
  # value: "String",
7375
7623
  # },
7376
7624
  # ],
7625
+ # environment_files: [
7626
+ # {
7627
+ # value: "String", # required
7628
+ # type: "s3", # required, accepts s3
7629
+ # },
7630
+ # ],
7377
7631
  # cpu: 1,
7378
7632
  # memory: 1,
7379
7633
  # memory_reservation: 1,
@@ -7895,9 +8149,11 @@ module Aws::ECS
7895
8149
  # placement decisions.
7896
8150
  #
7897
8151
  # * `DAEMON`-The daemon scheduling strategy deploys exactly one task
7898
- # on each container instance in your cluster. When you are using
7899
- # this strategy, do not specify a desired number of tasks or any
7900
- # task placement strategies.
8152
+ # on each active container instance that meets all of the task
8153
+ # placement constraints that you specify in your cluster. The
8154
+ # service scheduler also evaluates the task placement constraints
8155
+ # for running tasks and will stop tasks that do not meet the
8156
+ # placement constraints.
7901
8157
  #
7902
8158
  # <note markdown="1"> Fargate tasks do not support the `DAEMON` scheduling strategy.
7903
8159
  #
@@ -8153,6 +8409,12 @@ module Aws::ECS
8153
8409
  # value: "String",
8154
8410
  # },
8155
8411
  # ],
8412
+ # environment_files: [
8413
+ # {
8414
+ # value: "String", # required
8415
+ # type: "s3", # required, accepts s3
8416
+ # },
8417
+ # ],
8156
8418
  # cpu: 1,
8157
8419
  # memory: 1,
8158
8420
  # memory_reservation: 1,
@@ -9133,7 +9395,7 @@ module Aws::ECS
9133
9395
  #
9134
9396
  #
9135
9397
  #
9136
- # [1]: https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_IAM_role.html
9398
+ # [1]: https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-iam-roles.html
9137
9399
  # [2]: https://docs.aws.amazon.com/AmazonECS/latest/developerguide/windows_task_IAM_roles.html
9138
9400
  # @return [String]
9139
9401
  #
@@ -9471,6 +9733,12 @@ module Aws::ECS
9471
9733
  # value: "String",
9472
9734
  # },
9473
9735
  # ],
9736
+ # environment_files: [
9737
+ # {
9738
+ # value: "String", # required
9739
+ # type: "s3", # required, accepts s3
9740
+ # },
9741
+ # ],
9474
9742
  # cpu: 1,
9475
9743
  # memory: 1,
9476
9744
  # memory_reservation: 1,
@@ -10100,6 +10368,18 @@ module Aws::ECS
10100
10368
  # assign_public_ip: "ENABLED", # accepts ENABLED, DISABLED
10101
10369
  # },
10102
10370
  # },
10371
+ # placement_constraints: [
10372
+ # {
10373
+ # type: "distinctInstance", # accepts distinctInstance, memberOf
10374
+ # expression: "String",
10375
+ # },
10376
+ # ],
10377
+ # placement_strategy: [
10378
+ # {
10379
+ # type: "random", # accepts random, spread, binpack
10380
+ # field: "String",
10381
+ # },
10382
+ # ],
10103
10383
  # platform_version: "String",
10104
10384
  # force_new_deployment: false,
10105
10385
  # health_check_grace_period_seconds: 1,
@@ -10134,9 +10414,31 @@ module Aws::ECS
10134
10414
  #
10135
10415
  # If the service is using the default capacity provider strategy for
10136
10416
  # the cluster, the service can be updated to use one or more capacity
10137
- # providers. However, when a service is using a non-default capacity
10138
- # provider strategy, the service cannot be updated to use the
10139
- # cluster's default capacity provider strategy.
10417
+ # providers as opposed to the default capacity provider strategy.
10418
+ # However, when a service is using a capacity provider strategy that
10419
+ # is not the default capacity provider strategy, the service cannot be
10420
+ # updated to use the cluster's default capacity provider strategy.
10421
+ #
10422
+ # A capacity provider strategy consists of one or more capacity
10423
+ # providers along with the `base` and `weight` to assign to them. A
10424
+ # capacity provider must be associated with the cluster to be used in
10425
+ # a capacity provider strategy. The PutClusterCapacityProviders API is
10426
+ # used to associate a capacity provider with a cluster. Only capacity
10427
+ # providers with an `ACTIVE` or `UPDATING` status can be used.
10428
+ #
10429
+ # If specifying a capacity provider that uses an Auto Scaling group,
10430
+ # the capacity provider must already be created. New capacity
10431
+ # providers can be created with the CreateCapacityProvider API
10432
+ # operation.
10433
+ #
10434
+ # To use a AWS Fargate capacity provider, specify either the `FARGATE`
10435
+ # or `FARGATE_SPOT` capacity providers. The AWS Fargate capacity
10436
+ # providers are available to all accounts and only need to be
10437
+ # associated with a cluster to be used.
10438
+ #
10439
+ # The PutClusterCapacityProviders API operation is used to update the
10440
+ # list of available capacity providers for a cluster after the cluster
10441
+ # is created.
10140
10442
  # @return [Array<Types::CapacityProviderStrategyItem>]
10141
10443
  #
10142
10444
  # @!attribute [rw] deployment_configuration
@@ -10150,6 +10452,29 @@ module Aws::ECS
10150
10452
  # service.
10151
10453
  # @return [Types::NetworkConfiguration]
10152
10454
  #
10455
+ # @!attribute [rw] placement_constraints
10456
+ # An array of task placement constraint objects to update the service
10457
+ # to use. If no value is specified, the existing placement constraints
10458
+ # for the service will remain unchanged. If this value is specified,
10459
+ # it will override any existing placement constraints defined for the
10460
+ # service. To remove all existing placement constraints, specify an
10461
+ # empty array.
10462
+ #
10463
+ # You can specify a maximum of 10 constraints per task (this limit
10464
+ # includes constraints in the task definition and those specified at
10465
+ # runtime).
10466
+ # @return [Array<Types::PlacementConstraint>]
10467
+ #
10468
+ # @!attribute [rw] placement_strategy
10469
+ # The task placement strategy objects to update the service to use. If
10470
+ # no value is specified, the existing placement strategy for the
10471
+ # service will remain unchanged. If this value is specified, it will
10472
+ # override the existing placement strategy defined for the service. To
10473
+ # remove an existing placement strategy, specify an empty object.
10474
+ #
10475
+ # You can specify a maximum of five strategy rules per service.
10476
+ # @return [Array<Types::PlacementStrategy>]
10477
+ #
10153
10478
  # @!attribute [rw] platform_version
10154
10479
  # The platform version on which your tasks in the service are running.
10155
10480
  # A platform version is only specified for tasks using the Fargate
@@ -10196,6 +10521,8 @@ module Aws::ECS
10196
10521
  :capacity_provider_strategy,
10197
10522
  :deployment_configuration,
10198
10523
  :network_configuration,
10524
+ :placement_constraints,
10525
+ :placement_strategy,
10199
10526
  :platform_version,
10200
10527
  :force_new_deployment,
10201
10528
  :health_check_grace_period_seconds)
@@ -10339,6 +10666,12 @@ module Aws::ECS
10339
10666
  # efs_volume_configuration: {
10340
10667
  # file_system_id: "String", # required
10341
10668
  # root_directory: "String",
10669
+ # transit_encryption: "ENABLED", # accepts ENABLED, DISABLED
10670
+ # transit_encryption_port: 1,
10671
+ # authorization_config: {
10672
+ # access_point_id: "String",
10673
+ # iam: "ENABLED", # accepts ENABLED, DISABLED
10674
+ # },
10342
10675
  # },
10343
10676
  # }
10344
10677
  #