aws-sdk-ecs 1.58.0 → 1.63.0

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