aws-sdk-ecs 1.135.0 → 1.137.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -23,7 +23,8 @@ module Aws::ECS
23
23
  # @return [String]
24
24
  #
25
25
  # @!attribute [rw] type
26
- # The type of the attachment, such as `ElasticNetworkInterface`.
26
+ # The type of the attachment, such as `ElasticNetworkInterface`,
27
+ # `Service Connect`, and `AmazonElasticBlockStorage`.
27
28
  # @return [String]
28
29
  #
29
30
  # @!attribute [rw] status
@@ -33,9 +34,17 @@ module Aws::ECS
33
34
  # @return [String]
34
35
  #
35
36
  # @!attribute [rw] details
36
- # Details of the attachment. For elastic network interfaces, this
37
- # includes the network interface ID, the MAC address, the subnet ID,
38
- # and the private IPv4 address.
37
+ # Details of the attachment.
38
+ #
39
+ # For elastic network interfaces, this includes the network interface
40
+ # ID, the MAC address, the subnet ID, and the private IPv4 address.
41
+ #
42
+ # For Service Connect services, this includes `portName`,
43
+ # `clientAliases`, `discoveryName`, and `ingressPortOverride`.
44
+ #
45
+ # For elastic block storage, this includes `roleArn`, `encrypted`,
46
+ # `filesystemType`, `iops`, `kmsKeyId`, `sizeInGiB`, `snapshotId`,
47
+ # `tagSpecifications`, `throughput`, and `volumeType`.
39
48
  # @return [Array<Types::KeyValuePair>]
40
49
  #
41
50
  # @see http://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/Attachment AWS API Documentation
@@ -160,12 +169,20 @@ module Aws::ECS
160
169
  # [1]: https://docs.aws.amazon.com/autoscaling/ec2/userguide/as-instance-termination.html#instance-protection
161
170
  # @return [String]
162
171
  #
172
+ # @!attribute [rw] managed_draining
173
+ # The managed draining option for the Auto Scaling group capacity
174
+ # provider. When you enable this, Amazon ECS manages and gracefully
175
+ # drains the EC2 container instances that are in the Auto Scaling
176
+ # group capacity provider.
177
+ # @return [String]
178
+ #
163
179
  # @see http://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/AutoScalingGroupProvider AWS API Documentation
164
180
  #
165
181
  class AutoScalingGroupProvider < Struct.new(
166
182
  :auto_scaling_group_arn,
167
183
  :managed_scaling,
168
- :managed_termination_protection)
184
+ :managed_termination_protection,
185
+ :managed_draining)
169
186
  SENSITIVE = []
170
187
  include Aws::Structure
171
188
  end
@@ -201,11 +218,19 @@ module Aws::ECS
201
218
  # [1]: https://docs.aws.amazon.com/autoscaling/ec2/userguide/as-instance-termination.html#instance-protection
202
219
  # @return [String]
203
220
  #
221
+ # @!attribute [rw] managed_draining
222
+ # The managed draining option for the Auto Scaling group capacity
223
+ # provider. When you enable this, Amazon ECS manages and gracefully
224
+ # drains the EC2 container instances that are in the Auto Scaling
225
+ # group capacity provider.
226
+ # @return [String]
227
+ #
204
228
  # @see http://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/AutoScalingGroupProviderUpdate AWS API Documentation
205
229
  #
206
230
  class AutoScalingGroupProviderUpdate < Struct.new(
207
231
  :managed_scaling,
208
- :managed_termination_protection)
232
+ :managed_termination_protection,
233
+ :managed_draining)
209
234
  SENSITIVE = []
210
235
  include Aws::Structure
211
236
  end
@@ -423,6 +448,7 @@ module Aws::ECS
423
448
  # specifying an identifier that isn't valid.
424
449
  #
425
450
  # @!attribute [rw] message
451
+ # Message that describes the cause of the exception.
426
452
  # @return [String]
427
453
  #
428
454
  # @see http://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/ClientException AWS API Documentation
@@ -2972,6 +2998,12 @@ module Aws::ECS
2972
2998
  # [1]: https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-connect.html
2973
2999
  # @return [Types::ServiceConnectConfiguration]
2974
3000
  #
3001
+ # @!attribute [rw] volume_configurations
3002
+ # The configuration for a volume specified in the task definition as a
3003
+ # volume that is configured at launch time. Currently, the only
3004
+ # supported volume type is an Amazon EBS volume.
3005
+ # @return [Array<Types::ServiceVolumeConfiguration>]
3006
+ #
2975
3007
  # @see http://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/CreateServiceRequest AWS API Documentation
2976
3008
  #
2977
3009
  class CreateServiceRequest < Struct.new(
@@ -2997,7 +3029,8 @@ module Aws::ECS
2997
3029
  :enable_ecs_managed_tags,
2998
3030
  :propagate_tags,
2999
3031
  :enable_execute_command,
3000
- :service_connect_configuration)
3032
+ :service_connect_configuration,
3033
+ :volume_configurations)
3001
3034
  SENSITIVE = []
3002
3035
  include Aws::Structure
3003
3036
  end
@@ -3593,6 +3626,17 @@ module Aws::ECS
3593
3626
  # service name.
3594
3627
  # @return [Array<Types::ServiceConnectServiceResource>]
3595
3628
  #
3629
+ # @!attribute [rw] volume_configurations
3630
+ # The details of the volume that was `configuredAtLaunch`. You can
3631
+ # configure different settings like the size, throughput, volumeType,
3632
+ # and ecryption in [ServiceManagedEBSVolumeConfiguration][1]. The
3633
+ # `name` of the volume must match the `name` from the task definition.
3634
+ #
3635
+ #
3636
+ #
3637
+ # [1]: https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_ServiceManagedEBSVolumeConfiguration.html
3638
+ # @return [Array<Types::ServiceVolumeConfiguration>]
3639
+ #
3596
3640
  # @see http://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/Deployment AWS API Documentation
3597
3641
  #
3598
3642
  class Deployment < Struct.new(
@@ -3613,7 +3657,8 @@ module Aws::ECS
3613
3657
  :rollout_state,
3614
3658
  :rollout_state_reason,
3615
3659
  :service_connect_configuration,
3616
- :service_connect_resources)
3660
+ :service_connect_resources,
3661
+ :volume_configurations)
3617
3662
  SENSITIVE = []
3618
3663
  include Aws::Structure
3619
3664
  end
@@ -4491,6 +4536,34 @@ module Aws::ECS
4491
4536
  include Aws::Structure
4492
4537
  end
4493
4538
 
4539
+ # The tag specifications of an Amazon EBS volume.
4540
+ #
4541
+ # @!attribute [rw] resource_type
4542
+ # The type of volume resource.
4543
+ # @return [String]
4544
+ #
4545
+ # @!attribute [rw] tags
4546
+ # The tags applied to this Amazon EBS volume. `AmazonECSCreated` and
4547
+ # `AmazonECSManaged` are reserved tags that can't be used.
4548
+ # @return [Array<Types::Tag>]
4549
+ #
4550
+ # @!attribute [rw] propagate_tags
4551
+ # Determines whether to propagate the tags from the task definition to
4552
+ # 
the Amazon EBS volume. Tags can only propagate to a `SERVICE`
4553
+ # specified in 
`ServiceVolumeConfiguration`. If no value is
4554
+ # specified, the tags aren't 
propagated.
4555
+ # @return [String]
4556
+ #
4557
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/EBSTagSpecification AWS API Documentation
4558
+ #
4559
+ class EBSTagSpecification < Struct.new(
4560
+ :resource_type,
4561
+ :tags,
4562
+ :propagate_tags)
4563
+ SENSITIVE = []
4564
+ include Aws::Structure
4565
+ end
4566
+
4494
4567
  # The authorization configuration details for the Amazon EFS file
4495
4568
  # system.
4496
4569
  #
@@ -8460,6 +8533,17 @@ module Aws::ECS
8460
8533
  # [1]: https://docs.aws.amazon.com/AmazonECS/latest/APIReference/ECS_Idempotency.html
8461
8534
  # @return [String]
8462
8535
  #
8536
+ # @!attribute [rw] volume_configurations
8537
+ # The details of the volume that was `configuredAtLaunch`. You can
8538
+ # configure the size, volumeType, IOPS, throughput, snapshot and
8539
+ # encryption in in [TaskManagedEBSVolumeConfiguration][1]. The `name`
8540
+ # of the volume must match the `name` from the task definition.
8541
+ #
8542
+ #
8543
+ #
8544
+ # [1]: https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_TaskManagedEBSVolumeConfiguration.html
8545
+ # @return [Array<Types::TaskVolumeConfiguration>]
8546
+ #
8463
8547
  # @see http://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/RunTaskRequest AWS API Documentation
8464
8548
  #
8465
8549
  class RunTaskRequest < Struct.new(
@@ -8480,7 +8564,8 @@ module Aws::ECS
8480
8564
  :started_by,
8481
8565
  :tags,
8482
8566
  :task_definition,
8483
- :client_token)
8567
+ :client_token,
8568
+ :volume_configurations)
8484
8569
  SENSITIVE = []
8485
8570
  include Aws::Structure
8486
8571
  end
@@ -8611,6 +8696,7 @@ module Aws::ECS
8611
8696
  # These errors are usually caused by a server issue.
8612
8697
  #
8613
8698
  # @!attribute [rw] message
8699
+ # Message that describes the cause of the exception.
8614
8700
  # @return [String]
8615
8701
  #
8616
8702
  # @see http://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/ServerException AWS API Documentation
@@ -9212,6 +9298,198 @@ module Aws::ECS
9212
9298
  include Aws::Structure
9213
9299
  end
9214
9300
 
9301
+ # The configuration for the Amazon EBS volume that Amazon ECS creates
9302
+ # and manages on your behalf. These settings are used to create each
9303
+ # Amazon EBS volume, with one volume created for each task in the
9304
+ # service.
9305
+ #
9306
+ # Many of these parameters map 1:1 with the Amazon EBS `CreateVolume`
9307
+ # API request parameters.
9308
+ #
9309
+ # @!attribute [rw] encrypted
9310
+ # Indicates whether the volume should be encrypted. If no value is
9311
+ # specified, encryption is turned on by default. This parameter maps
9312
+ # 1:1 with the `Encrypted` parameter of the [CreateVolume API][1] in
9313
+ # the *Amazon EC2 API Reference*.
9314
+ #
9315
+ #
9316
+ #
9317
+ # [1]: https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateVolume.html
9318
+ # @return [Boolean]
9319
+ #
9320
+ # @!attribute [rw] kms_key_id
9321
+ # The Amazon Resource Name (ARN) identifier of the Amazon Web Services
9322
+ # Key Management Service key to use for Amazon EBS encryption. When
9323
+ # encryption is turned on and no Amazon Web Services Key Management
9324
+ # Service key is specified, the default Amazon Web Services managed
9325
+ # key for Amazon EBS volumes is used. This parameter maps 1:1 with the
9326
+ # `KmsKeyId` parameter of the [CreateVolume API][1] in the *Amazon EC2
9327
+ # API Reference*.
9328
+ #
9329
+ # Amazon Web Services authenticates the Amazon Web Services Key
9330
+ # Management Service key asynchronously. Therefore, if you specify an
9331
+ # ID, alias, or ARN that is invalid, the action can appear to
9332
+ # complete, but eventually fails.
9333
+ #
9334
+ #
9335
+ #
9336
+ # [1]: https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateVolume.html
9337
+ # @return [String]
9338
+ #
9339
+ # @!attribute [rw] volume_type
9340
+ # The volume type. This parameter maps 1:1 with the `VolumeType`
9341
+ # parameter of the [CreateVolume API][1] in the *Amazon EC2 API
9342
+ # Reference*. For more information, see [Amazon EBS volume types][2]
9343
+ # in the *Amazon EC2 User Guide*.
9344
+ #
9345
+ # The following are the supported volume types.
9346
+ #
9347
+ # * General Purpose SSD: `gp2`\|`gp3`
9348
+ #
9349
+ # * Provisioned IOPS SSD: `io1`\|`io2`
9350
+ #
9351
+ # * Throughput Optimized HDD: `st1`
9352
+ #
9353
+ # * Cold HDD: `sc1`
9354
+ #
9355
+ # * Magnetic: `standard`
9356
+ #
9357
+ # <note markdown="1"> The magnetic volume type is not supported on Fargate.
9358
+ #
9359
+ # </note>
9360
+ #
9361
+ #
9362
+ #
9363
+ # [1]: https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateVolume.html
9364
+ # [2]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-volume-types.html
9365
+ # @return [String]
9366
+ #
9367
+ # @!attribute [rw] size_in_gi_b
9368
+ # The size of the volume in GiB. You must specify either a volume size
9369
+ # or a snapshot ID. If you specify a snapshot ID, the snapshot size is
9370
+ # used for the volume size by default. You can optionally specify a
9371
+ # volume size greater than or equal to the snapshot size. This
9372
+ # parameter maps 1:1 with the `Size` parameter of the [CreateVolume
9373
+ # API][1] in the *Amazon EC2 API Reference*.
9374
+ #
9375
+ # The following are the supported volume size values for each volume
9376
+ # type.
9377
+ #
9378
+ # * `gp2` and `gp3`: 1-16,384
9379
+ #
9380
+ # * `io1` and `io2`: 4-16,384
9381
+ #
9382
+ # * `st1` and `sc1`: 125-16,384
9383
+ #
9384
+ # * `standard`: 1-1,024
9385
+ #
9386
+ #
9387
+ #
9388
+ # [1]: https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateVolume.html
9389
+ # @return [Integer]
9390
+ #
9391
+ # @!attribute [rw] snapshot_id
9392
+ # The snapshot that Amazon ECS uses to create the volume. You must
9393
+ # specify either a snapshot ID or a volume size. This parameter maps
9394
+ # 1:1 with the `SnapshotId` parameter of the [CreateVolume API][1] in
9395
+ # the *Amazon EC2 API Reference*.
9396
+ #
9397
+ #
9398
+ #
9399
+ # [1]: https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateVolume.html
9400
+ # @return [String]
9401
+ #
9402
+ # @!attribute [rw] iops
9403
+ # The number of I/O operations per second (IOPS). For `gp3`, `io1`,
9404
+ # and `io2` volumes, this represents the number of IOPS that are
9405
+ # provisioned for the volume. For `gp2` volumes, this represents the
9406
+ # baseline performance of the volume and the rate at which the volume
9407
+ # accumulates I/O credits for bursting.
9408
+ #
9409
+ # The following are the supported values for each volume type.
9410
+ #
9411
+ # * `gp3`: 3,000 - 16,000 IOPS
9412
+ #
9413
+ # * `io1`: 100 - 64,000 IOPS
9414
+ #
9415
+ # * `io2`: 100 - 256,000 IOPS
9416
+ #
9417
+ # This parameter is required for `io1` and `io2` volume types. The
9418
+ # default for `gp3` volumes is `3,000 IOPS`. This parameter is not
9419
+ # supported for `st1`, `sc1`, or `standard` volume types.
9420
+ #
9421
+ # This parameter maps 1:1 with the `Iops` parameter of the
9422
+ # [CreateVolume API][1] in the *Amazon EC2 API Reference*.
9423
+ #
9424
+ #
9425
+ #
9426
+ # [1]: https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateVolume.html
9427
+ # @return [Integer]
9428
+ #
9429
+ # @!attribute [rw] throughput
9430
+ # The throughput to provision for a volume, in MiB/s, with a maximum
9431
+ # of 1,000 MiB/s. This parameter maps 1:1 with the `Throughput`
9432
+ # parameter of the [CreateVolume API][1] in the *Amazon EC2 API
9433
+ # Reference*.
9434
+ #
9435
+ # This parameter is only supported for the `gp3` volume type.
9436
+ #
9437
+ #
9438
+ #
9439
+ # [1]: https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateVolume.html
9440
+ # @return [Integer]
9441
+ #
9442
+ # @!attribute [rw] tag_specifications
9443
+ # The tags to apply to the volume. Amazon ECS applies service-managed
9444
+ # tags by default. This parameter maps 1:1 with the
9445
+ # `TagSpecifications.N` parameter of the [CreateVolume API][1] in the
9446
+ # *Amazon EC2 API Reference*.
9447
+ #
9448
+ #
9449
+ #
9450
+ # [1]: https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateVolume.html
9451
+ # @return [Array<Types::EBSTagSpecification>]
9452
+ #
9453
+ # @!attribute [rw] role_arn
9454
+ # The ARN of the IAM role to associate with this volume. This is the
9455
+ # Amazon ECS infrastructure IAM role that is used to manage your
9456
+ # Amazon Web Services infrastructure. We recommend using the Amazon
9457
+ # ECS-managed `AmazonECSInfrastructureRolePolicyForVolumes` IAM policy
9458
+ # with this role. For more information, see [Amazon ECS infrastructure
9459
+ # IAM role][1] in the *Amazon ECS Developer Guide*.
9460
+ #
9461
+ #
9462
+ #
9463
+ # [1]: https://docs.aws.amazon.com/AmazonECS/latest/developerguide/infrastructure_IAM_role.html
9464
+ # @return [String]
9465
+ #
9466
+ # @!attribute [rw] filesystem_type
9467
+ # The Linux filesystem type for the volume. For volumes created from a
9468
+ # snapshot, you must specify the same filesystem type that the volume
9469
+ # was using when the snapshot was created. If there is a filesystem
9470
+ # type mismatch, the task will fail to start.
9471
+ #
9472
+ # The available filesystem types are
 `ext3`, `ext4`, and `xfs`. If no
9473
+ # value is specified, the `xfs` filesystem type is used by default.
9474
+ # @return [String]
9475
+ #
9476
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/ServiceManagedEBSVolumeConfiguration AWS API Documentation
9477
+ #
9478
+ class ServiceManagedEBSVolumeConfiguration < Struct.new(
9479
+ :encrypted,
9480
+ :kms_key_id,
9481
+ :volume_type,
9482
+ :size_in_gi_b,
9483
+ :snapshot_id,
9484
+ :iops,
9485
+ :throughput,
9486
+ :tag_specifications,
9487
+ :role_arn,
9488
+ :filesystem_type)
9489
+ SENSITIVE = []
9490
+ include Aws::Structure
9491
+ end
9492
+
9215
9493
  # The specified service isn't active. You can't update a service
9216
9494
  # that's inactive. If you have previously deleted a service, you can
9217
9495
  # re-create it with CreateService.
@@ -9288,6 +9566,32 @@ module Aws::ECS
9288
9566
  include Aws::Structure
9289
9567
  end
9290
9568
 
9569
+ # The configuration for a volume specified in the task definition as a
9570
+ # volume that is configured at launch time. Currently, the only
9571
+ # supported volume type is an Amazon EBS volume.
9572
+ #
9573
+ # @!attribute [rw] name
9574
+ # The name of the volume. This value must match the volume name from
9575
+ # the `Volume` object in the task definition.
9576
+ # @return [String]
9577
+ #
9578
+ # @!attribute [rw] managed_ebs_volume
9579
+ # The configuration for the Amazon EBS volume that Amazon ECS creates
9580
+ # and manages on your behalf. These settings are used to create each
9581
+ # Amazon EBS volume, with one volume created for each task in the
9582
+ # service. The Amazon EBS volumes are visible in your account in the
9583
+ # Amazon EC2 console once they are created.
9584
+ # @return [Types::ServiceManagedEBSVolumeConfiguration]
9585
+ #
9586
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/ServiceVolumeConfiguration AWS API Documentation
9587
+ #
9588
+ class ServiceVolumeConfiguration < Struct.new(
9589
+ :name,
9590
+ :managed_ebs_volume)
9591
+ SENSITIVE = []
9592
+ include Aws::Structure
9593
+ end
9594
+
9291
9595
  # The details for the execute command session.
9292
9596
  #
9293
9597
  # @!attribute [rw] session_id
@@ -9468,6 +9772,17 @@ module Aws::ECS
9468
9772
  # latest `ACTIVE` revision is used.
9469
9773
  # @return [String]
9470
9774
  #
9775
+ # @!attribute [rw] volume_configurations
9776
+ # The details of the volume that was `configuredAtLaunch`. You can
9777
+ # configure the size, volumeType, IOPS, throughput, snapshot and
9778
+ # encryption in [TaskManagedEBSVolumeConfiguration][1]. The `name` of
9779
+ # the volume must match the `name` from the task definition.
9780
+ #
9781
+ #
9782
+ #
9783
+ # [1]: https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_TaskManagedEBSVolumeConfiguration.html
9784
+ # @return [Array<Types::TaskVolumeConfiguration>]
9785
+ #
9471
9786
  # @see http://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/StartTaskRequest AWS API Documentation
9472
9787
  #
9473
9788
  class StartTaskRequest < Struct.new(
@@ -9482,7 +9797,8 @@ module Aws::ECS
9482
9797
  :reference_id,
9483
9798
  :started_by,
9484
9799
  :tags,
9485
- :task_definition)
9800
+ :task_definition,
9801
+ :volume_configurations)
9486
9802
  SENSITIVE = []
9487
9803
  include Aws::Structure
9488
9804
  end
@@ -10732,6 +11048,225 @@ module Aws::ECS
10732
11048
  include Aws::Structure
10733
11049
  end
10734
11050
 
11051
+ # The configuration for the Amazon EBS volume that Amazon ECS creates
11052
+ # and manages on your behalf. These settings are used to create each
11053
+ # Amazon EBS volume, with one volume created for each task.
11054
+ #
11055
+ # @!attribute [rw] encrypted
11056
+ # Indicates whether the volume should be encrypted. If no value is
11057
+ # specified, encryption is turned on by default. This parameter maps
11058
+ # 1:1 with the `Encrypted` parameter of the [CreateVolume API][1] in
11059
+ # the *Amazon EC2 API Reference*.
11060
+ #
11061
+ #
11062
+ #
11063
+ # [1]: https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateVolume.html
11064
+ # @return [Boolean]
11065
+ #
11066
+ # @!attribute [rw] kms_key_id
11067
+ # The Amazon Resource Name (ARN) identifier of the Amazon Web Services
11068
+ # Key Management Service key to use for Amazon EBS encryption. When
11069
+ # encryption is turned on and no Amazon Web Services Key Management
11070
+ # Service key is specified, the default Amazon Web Services managed
11071
+ # key for Amazon EBS volumes is used. This parameter maps 1:1 with the
11072
+ # `KmsKeyId` parameter of the [CreateVolume API][1] in the *Amazon EC2
11073
+ # API Reference*.
11074
+ #
11075
+ # Amazon Web Services authenticates the Amazon Web Services Key
11076
+ # Management Service key asynchronously. Therefore, if you specify an
11077
+ # ID, alias, or ARN that is invalid, the action can appear to
11078
+ # complete, but eventually fails.
11079
+ #
11080
+ #
11081
+ #
11082
+ # [1]: https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateVolume.html
11083
+ # @return [String]
11084
+ #
11085
+ # @!attribute [rw] volume_type
11086
+ # The volume type. This parameter maps 1:1 with the `VolumeType`
11087
+ # parameter of the [CreateVolume API][1] in the *Amazon EC2 API
11088
+ # Reference*. For more information, see [Amazon EBS volume types][2]
11089
+ # in the *Amazon EC2 User Guide*.
11090
+ #
11091
+ # The following are the supported volume types.
11092
+ #
11093
+ # * General Purpose SSD: `gp2`\|`gp3`
11094
+ #
11095
+ # * Provisioned IOPS SSD: `io1`\|`io2`
11096
+ #
11097
+ # * Throughput Optimized HDD: `st1`
11098
+ #
11099
+ # * Cold HDD: `sc1`
11100
+ #
11101
+ # * Magnetic: `standard`
11102
+ #
11103
+ # <note markdown="1"> The magnetic volume type is not supported on Fargate.
11104
+ #
11105
+ # </note>
11106
+ #
11107
+ #
11108
+ #
11109
+ # [1]: https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateVolume.html
11110
+ # [2]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-volume-types.html
11111
+ # @return [String]
11112
+ #
11113
+ # @!attribute [rw] size_in_gi_b
11114
+ # The size of the volume in GiB. You must specify either a volume size
11115
+ # or a snapshot ID. If you specify a snapshot ID, the snapshot size is
11116
+ # used for the volume size by default. You can optionally specify a
11117
+ # volume size greater than or equal to the snapshot size. This
11118
+ # parameter maps 1:1 with the `Size` parameter of the [CreateVolume
11119
+ # API][1] in the *Amazon EC2 API Reference*.
11120
+ #
11121
+ # The following are the supported volume size values for each volume
11122
+ # type.
11123
+ #
11124
+ # * `gp2` and `gp3`: 1-16,384
11125
+ #
11126
+ # * `io1` and `io2`: 4-16,384
11127
+ #
11128
+ # * `st1` and `sc1`: 125-16,384
11129
+ #
11130
+ # * `standard`: 1-1,024
11131
+ #
11132
+ #
11133
+ #
11134
+ # [1]: https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateVolume.html
11135
+ # @return [Integer]
11136
+ #
11137
+ # @!attribute [rw] snapshot_id
11138
+ # The snapshot that Amazon ECS uses to create the volume. You must
11139
+ # specify either a snapshot ID or a volume size. This parameter maps
11140
+ # 1:1 with the `SnapshotId` parameter of the [CreateVolume API][1] in
11141
+ # the *Amazon EC2 API Reference*.
11142
+ #
11143
+ #
11144
+ #
11145
+ # [1]: https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateVolume.html
11146
+ # @return [String]
11147
+ #
11148
+ # @!attribute [rw] iops
11149
+ # The number of I/O operations per second (IOPS). For `gp3`, `io1`,
11150
+ # and `io2` volumes, this represents the number of IOPS that are
11151
+ # provisioned for the volume. For `gp2` volumes, this represents the
11152
+ # baseline performance of the volume and the rate at which the volume
11153
+ # accumulates I/O credits for bursting.
11154
+ #
11155
+ # The following are the supported values for each volume type.
11156
+ #
11157
+ # * `gp3`: 3,000 - 16,000 IOPS
11158
+ #
11159
+ # * `io1`: 100 - 64,000 IOPS
11160
+ #
11161
+ # * `io2`: 100 - 256,000 IOPS
11162
+ #
11163
+ # This parameter is required for `io1` and `io2` volume types. The
11164
+ # default for `gp3` volumes is `3,000 IOPS`. This parameter is not
11165
+ # supported for `st1`, `sc1`, or `standard` volume types.
11166
+ #
11167
+ # This parameter maps 1:1 with the `Iops` parameter of the
11168
+ # [CreateVolume API][1] in the *Amazon EC2 API Reference*.
11169
+ #
11170
+ #
11171
+ #
11172
+ # [1]: https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateVolume.html
11173
+ # @return [Integer]
11174
+ #
11175
+ # @!attribute [rw] throughput
11176
+ # The throughput to provision for a volume, in MiB/s, with a maximum
11177
+ # of 1,000 MiB/s. This parameter maps 1:1 with the `Throughput`
11178
+ # parameter of the [CreateVolume API][1] in the *Amazon EC2 API
11179
+ # Reference*.
11180
+ #
11181
+ # This parameter is only supported for the `gp3` volume type.
11182
+ #
11183
+ #
11184
+ #
11185
+ # [1]: https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateVolume.html
11186
+ # @return [Integer]
11187
+ #
11188
+ # @!attribute [rw] tag_specifications
11189
+ # The tags to apply to the volume. Amazon ECS applies service-managed
11190
+ # tags by default. This parameter maps 1:1 with the
11191
+ # `TagSpecifications.N` parameter of the [CreateVolume API][1] in the
11192
+ # *Amazon EC2 API Reference*.
11193
+ #
11194
+ #
11195
+ #
11196
+ # [1]: https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateVolume.html
11197
+ # @return [Array<Types::EBSTagSpecification>]
11198
+ #
11199
+ # @!attribute [rw] role_arn
11200
+ # The ARN of the IAM role to associate with this volume. This is the
11201
+ # Amazon ECS infrastructure IAM role that is used to manage your
11202
+ # Amazon Web Services infrastructure. We recommend using the Amazon
11203
+ # ECS-managed `AmazonECSInfrastructureRolePolicyForVolumes` IAM policy
11204
+ # with this role. For more information, see [Amazon ECS infrastructure
11205
+ # IAM role][1] in the *Amazon ECS Developer Guide*.
11206
+ #
11207
+ #
11208
+ #
11209
+ # [1]: https://docs.aws.amazon.com/AmazonECS/latest/developerguide/infrastructure_IAM_role.html
11210
+ # @return [String]
11211
+ #
11212
+ # @!attribute [rw] termination_policy
11213
+ # The termination policy for the volume when the task exits. This
11214
+ # provides a way to control whether Amazon ECS terminates the Amazon
11215
+ # EBS volume when the task stops.
11216
+ # @return [Types::TaskManagedEBSVolumeTerminationPolicy]
11217
+ #
11218
+ # @!attribute [rw] filesystem_type
11219
+ # The Linux filesystem type for the volume. For volumes created from a
11220
+ # snapshot, you must specify the same filesystem type that the volume
11221
+ # was using when the snapshot was created. If there is a filesystem
11222
+ # type mismatch, the task will fail to start.
11223
+ #
11224
+ # The available filesystem types are
 `ext3`, `ext4`, and `xfs`. If no
11225
+ # value is specified, the `xfs` filesystem type is used by default.
11226
+ # @return [String]
11227
+ #
11228
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/TaskManagedEBSVolumeConfiguration AWS API Documentation
11229
+ #
11230
+ class TaskManagedEBSVolumeConfiguration < Struct.new(
11231
+ :encrypted,
11232
+ :kms_key_id,
11233
+ :volume_type,
11234
+ :size_in_gi_b,
11235
+ :snapshot_id,
11236
+ :iops,
11237
+ :throughput,
11238
+ :tag_specifications,
11239
+ :role_arn,
11240
+ :termination_policy,
11241
+ :filesystem_type)
11242
+ SENSITIVE = []
11243
+ include Aws::Structure
11244
+ end
11245
+
11246
+ # The termination policy for the Amazon EBS volume when the task exits.
11247
+ # For more information, see [Amazon ECS volume termination policy][1].
11248
+ #
11249
+ #
11250
+ #
11251
+ # [1]: https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ebs-volumes.html#ebs-volume-types
11252
+ #
11253
+ # @!attribute [rw] delete_on_termination
11254
+ # Indicates whether the volume should be deleted on when the task
11255
+ # stops. If a value of `true` is specified, 
Amazon ECS deletes the
11256
+ # Amazon EBS volume on your behalf when the task goes into the
11257
+ # `STOPPED` state. If no value is specified, the 
default value is
11258
+ # `true` is used. When set to `false`, Amazon ECS leaves the volume in
11259
+ # your 
account.
11260
+ # @return [Boolean]
11261
+ #
11262
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/TaskManagedEBSVolumeTerminationPolicy AWS API Documentation
11263
+ #
11264
+ class TaskManagedEBSVolumeTerminationPolicy < Struct.new(
11265
+ :delete_on_termination)
11266
+ SENSITIVE = []
11267
+ include Aws::Structure
11268
+ end
11269
+
10735
11270
  # The overrides that are associated with a task.
10736
11271
  #
10737
11272
  # @!attribute [rw] container_overrides
@@ -11043,6 +11578,31 @@ module Aws::ECS
11043
11578
  #
11044
11579
  class TaskSetNotFoundException < Aws::EmptyStructure; end
11045
11580
 
11581
+ # Configuration settings for the task volume that was
11582
+ # `configuredAtLaunch` that weren't set during `RegisterTaskDef`.
11583
+ #
11584
+ # @!attribute [rw] name
11585
+ # The name of the volume. This value must match the volume name from
11586
+ # the `Volume` object in the task definition.
11587
+ # @return [String]
11588
+ #
11589
+ # @!attribute [rw] managed_ebs_volume
11590
+ # The configuration for the Amazon EBS volume that Amazon ECS creates
11591
+ # and manages on your behalf. These settings are used to create each
11592
+ # Amazon EBS volume, with one volume created for each task. The Amazon
11593
+ # EBS volumes are visible in your account in the Amazon EC2 console
11594
+ # once they are created.
11595
+ # @return [Types::TaskManagedEBSVolumeConfiguration]
11596
+ #
11597
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/TaskVolumeConfiguration AWS API Documentation
11598
+ #
11599
+ class TaskVolumeConfiguration < Struct.new(
11600
+ :name,
11601
+ :managed_ebs_volume)
11602
+ SENSITIVE = []
11603
+ include Aws::Structure
11604
+ end
11605
+
11046
11606
  # The container path, mount options, and size of the tmpfs mount.
11047
11607
  #
11048
11608
  # @!attribute [rw] container_path
@@ -11629,6 +12189,20 @@ module Aws::ECS
11629
12189
  # [1]: https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-connect.html
11630
12190
  # @return [Types::ServiceConnectConfiguration]
11631
12191
  #
12192
+ # @!attribute [rw] volume_configurations
12193
+ # The details of the volume that was `configuredAtLaunch`. You can
12194
+ # configure the size, volumeType, IOPS, throughput, snapshot and
12195
+ # encryption in [ServiceManagedEBSVolumeConfiguration][1]. The `name`
12196
+ # of the volume must match the `name` from the task definition. If set
12197
+ # to null, no new deployment is triggered. Otherwise, if this
12198
+ # configuration differs from the existing one, it triggers a new
12199
+ # deployment.
12200
+ #
12201
+ #
12202
+ #
12203
+ # [1]: https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_ServiceManagedEBSVolumeConfiguration.html
12204
+ # @return [Array<Types::ServiceVolumeConfiguration>]
12205
+ #
11632
12206
  # @see http://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/UpdateServiceRequest AWS API Documentation
11633
12207
  #
11634
12208
  class UpdateServiceRequest < Struct.new(
@@ -11649,7 +12223,8 @@ module Aws::ECS
11649
12223
  :load_balancers,
11650
12224
  :propagate_tags,
11651
12225
  :service_registries,
11652
- :service_connect_configuration)
12226
+ :service_connect_configuration,
12227
+ :volume_configurations)
11653
12228
  SENSITIVE = []
11654
12229
  include Aws::Structure
11655
12230
  end
@@ -11802,14 +12377,16 @@ module Aws::ECS
11802
12377
  include Aws::Structure
11803
12378
  end
11804
12379
 
11805
- # A data volume that's used in a task definition. For tasks that use
11806
- # the Amazon Elastic File System (Amazon EFS), specify an
11807
- # `efsVolumeConfiguration`. For Windows tasks that use Amazon FSx for
11808
- # Windows File Server file system, specify a
11809
- # `fsxWindowsFileServerVolumeConfiguration`. For tasks that use a Docker
11810
- # volume, specify a `DockerVolumeConfiguration`. For tasks that use a
11811
- # bind mount host volume, specify a `host` and optional `sourcePath`.
11812
- # For more information, see [Using Data Volumes in Tasks][1].
12380
+ # The data volume configuration for tasks launched using this task
12381
+ # definition. Specifying a volume configuration in a task definition is
12382
+ # optional. The volume configuration may contain multiple volumes but
12383
+ # only one volume configured at launch is supported. Each volume defined
12384
+ # in the volume configuration may only specify a `name` and one of
12385
+ # either `configuredAtLaunch`, `dockerVolumeConfiguration`,
12386
+ # `efsVolumeConfiguration`, `fsxWindowsFileServerVolumeConfiguration`,
12387
+ # or `host`. If an empty volume configuration is specified, by default
12388
+ # Amazon ECS uses a host volume. For more information, see [Using data
12389
+ # volumes in tasks][1].
11813
12390
  #
11814
12391
  #
11815
12392
  #
@@ -11817,11 +12394,19 @@ module Aws::ECS
11817
12394
  #
11818
12395
  # @!attribute [rw] name
11819
12396
  # The name of the volume. Up to 255 letters (uppercase and lowercase),
11820
- # numbers, underscores, and hyphens are allowed. This name is
11821
- # referenced in the `sourceVolume` parameter of container definition
11822
- # `mountPoints`.
12397
+ # numbers, underscores, and hyphens are allowed.
12398
+ #
12399
+ # When using a volume configured at launch, the `name` is required and
12400
+ # must also be specified as the volume name in the
12401
+ # `ServiceVolumeConfiguration` or `TaskVolumeConfiguration` parameter
12402
+ # when creating your service or standalone task.
11823
12403
  #
11824
- # This is required wwhen you use an Amazon EFS volume.
12404
+ # For all other types of volumes, this name is referenced in the
12405
+ # `sourceVolume` parameter of the `mountPoints` object in the
12406
+ # container definition.
12407
+ #
12408
+ # When a volume is using the `efsVolumeConfiguration`, the name is
12409
+ # required.
11825
12410
  # @return [String]
11826
12411
  #
11827
12412
  # @!attribute [rw] host
@@ -11861,6 +12446,18 @@ module Aws::ECS
11861
12446
  # Server file system for task storage.
11862
12447
  # @return [Types::FSxWindowsFileServerVolumeConfiguration]
11863
12448
  #
12449
+ # @!attribute [rw] configured_at_launch
12450
+ # Indicates whether the volume should be configured at launch time.
12451
+ # This is used to create Amazon EBS volumes for standalone tasks or
12452
+ # tasks created as part of a service. Each task definition revision
12453
+ # may only have one volume configured at launch in the volume
12454
+ # configuration.
12455
+ #
12456
+ # To configure a volume at launch time, use this task definition
12457
+ # revision and specify a `volumeConfigurations` object when calling
12458
+ # the `CreateService`, `UpdateService`, `RunTask` or `StartTask` APIs.
12459
+ # @return [Boolean]
12460
+ #
11864
12461
  # @see http://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/Volume AWS API Documentation
11865
12462
  #
11866
12463
  class Volume < Struct.new(
@@ -11868,7 +12465,8 @@ module Aws::ECS
11868
12465
  :host,
11869
12466
  :docker_volume_configuration,
11870
12467
  :efs_volume_configuration,
11871
- :fsx_windows_file_server_volume_configuration)
12468
+ :fsx_windows_file_server_volume_configuration,
12469
+ :configured_at_launch)
11872
12470
  SENSITIVE = []
11873
12471
  include Aws::Structure
11874
12472
  end