aws-sdk-ecs 1.136.0 → 1.138.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.
@@ -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
@@ -165,8 +174,6 @@ module Aws::ECS
165
174
  # provider. When you enable this, Amazon ECS manages and gracefully
166
175
  # drains the EC2 container instances that are in the Auto Scaling
167
176
  # group capacity provider.
168
- #
169
- # The default is `ENABLED`.
170
177
  # @return [String]
171
178
  #
172
179
  # @see http://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/AutoScalingGroupProvider AWS API Documentation
@@ -216,8 +223,6 @@ module Aws::ECS
216
223
  # provider. When you enable this, Amazon ECS manages and gracefully
217
224
  # drains the EC2 container instances that are in the Auto Scaling
218
225
  # group capacity provider.
219
- #
220
- # The default is `ENABLED`.
221
226
  # @return [String]
222
227
  #
223
228
  # @see http://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/AutoScalingGroupProviderUpdate AWS API Documentation
@@ -2993,6 +2998,12 @@ module Aws::ECS
2993
2998
  # [1]: https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-connect.html
2994
2999
  # @return [Types::ServiceConnectConfiguration]
2995
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
+ #
2996
3007
  # @see http://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/CreateServiceRequest AWS API Documentation
2997
3008
  #
2998
3009
  class CreateServiceRequest < Struct.new(
@@ -3018,7 +3029,8 @@ module Aws::ECS
3018
3029
  :enable_ecs_managed_tags,
3019
3030
  :propagate_tags,
3020
3031
  :enable_execute_command,
3021
- :service_connect_configuration)
3032
+ :service_connect_configuration,
3033
+ :volume_configurations)
3022
3034
  SENSITIVE = []
3023
3035
  include Aws::Structure
3024
3036
  end
@@ -3614,6 +3626,17 @@ module Aws::ECS
3614
3626
  # service name.
3615
3627
  # @return [Array<Types::ServiceConnectServiceResource>]
3616
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
+ #
3617
3640
  # @see http://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/Deployment AWS API Documentation
3618
3641
  #
3619
3642
  class Deployment < Struct.new(
@@ -3634,7 +3657,8 @@ module Aws::ECS
3634
3657
  :rollout_state,
3635
3658
  :rollout_state_reason,
3636
3659
  :service_connect_configuration,
3637
- :service_connect_resources)
3660
+ :service_connect_resources,
3661
+ :volume_configurations)
3638
3662
  SENSITIVE = []
3639
3663
  include Aws::Structure
3640
3664
  end
@@ -4512,6 +4536,34 @@ module Aws::ECS
4512
4536
  include Aws::Structure
4513
4537
  end
4514
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
+
4515
4567
  # The authorization configuration details for the Amazon EFS file
4516
4568
  # system.
4517
4569
  #
@@ -8481,6 +8533,17 @@ module Aws::ECS
8481
8533
  # [1]: https://docs.aws.amazon.com/AmazonECS/latest/APIReference/ECS_Idempotency.html
8482
8534
  # @return [String]
8483
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
+ #
8484
8547
  # @see http://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/RunTaskRequest AWS API Documentation
8485
8548
  #
8486
8549
  class RunTaskRequest < Struct.new(
@@ -8501,7 +8564,8 @@ module Aws::ECS
8501
8564
  :started_by,
8502
8565
  :tags,
8503
8566
  :task_definition,
8504
- :client_token)
8567
+ :client_token,
8568
+ :volume_configurations)
8505
8569
  SENSITIVE = []
8506
8570
  include Aws::Structure
8507
8571
  end
@@ -9158,13 +9222,24 @@ module Aws::ECS
9158
9222
  # ephemeral port of the Service Connect proxy.
9159
9223
  # @return [Integer]
9160
9224
  #
9225
+ # @!attribute [rw] timeout
9226
+ # A reference to an object that represents the configured timeouts for
9227
+ # Service Connect.
9228
+ # @return [Types::TimeoutConfiguration]
9229
+ #
9230
+ # @!attribute [rw] tls
9231
+ # An object that represents the configuration for Service Connect TLS.
9232
+ # @return [Types::ServiceConnectTlsConfiguration]
9233
+ #
9161
9234
  # @see http://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/ServiceConnectService AWS API Documentation
9162
9235
  #
9163
9236
  class ServiceConnectService < Struct.new(
9164
9237
  :port_name,
9165
9238
  :discovery_name,
9166
9239
  :client_aliases,
9167
- :ingress_port_override)
9240
+ :ingress_port_override,
9241
+ :timeout,
9242
+ :tls)
9168
9243
  SENSITIVE = []
9169
9244
  include Aws::Structure
9170
9245
  end
@@ -9210,6 +9285,47 @@ module Aws::ECS
9210
9285
  include Aws::Structure
9211
9286
  end
9212
9287
 
9288
+ # An object that represents the Amazon Web Services Private Certificate
9289
+ # Authority certificate.
9290
+ #
9291
+ # @!attribute [rw] aws_pca_authority_arn
9292
+ # The ARN of the Amazon Web Services Private Certificate Authority
9293
+ # certificate.
9294
+ # @return [String]
9295
+ #
9296
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/ServiceConnectTlsCertificateAuthority AWS API Documentation
9297
+ #
9298
+ class ServiceConnectTlsCertificateAuthority < Struct.new(
9299
+ :aws_pca_authority_arn)
9300
+ SENSITIVE = []
9301
+ include Aws::Structure
9302
+ end
9303
+
9304
+ # An object that represents the configuration for Service Connect TLS.
9305
+ #
9306
+ # @!attribute [rw] issuer_certificate_authority
9307
+ # The signer certificate authority.
9308
+ # @return [Types::ServiceConnectTlsCertificateAuthority]
9309
+ #
9310
+ # @!attribute [rw] kms_key
9311
+ # The Amazon Web Services Key Management Service key.
9312
+ # @return [String]
9313
+ #
9314
+ # @!attribute [rw] role_arn
9315
+ # The Amazon Resource Name (ARN) of the IAM role that's associated
9316
+ # with the Service Connect TLS.
9317
+ # @return [String]
9318
+ #
9319
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/ServiceConnectTlsConfiguration AWS API Documentation
9320
+ #
9321
+ class ServiceConnectTlsConfiguration < Struct.new(
9322
+ :issuer_certificate_authority,
9323
+ :kms_key,
9324
+ :role_arn)
9325
+ SENSITIVE = []
9326
+ include Aws::Structure
9327
+ end
9328
+
9213
9329
  # The details for an event that's associated with a service.
9214
9330
  #
9215
9331
  # @!attribute [rw] id
@@ -9234,6 +9350,198 @@ module Aws::ECS
9234
9350
  include Aws::Structure
9235
9351
  end
9236
9352
 
9353
+ # The configuration for the Amazon EBS volume that Amazon ECS creates
9354
+ # and manages on your behalf. These settings are used to create each
9355
+ # Amazon EBS volume, with one volume created for each task in the
9356
+ # service.
9357
+ #
9358
+ # Many of these parameters map 1:1 with the Amazon EBS `CreateVolume`
9359
+ # API request parameters.
9360
+ #
9361
+ # @!attribute [rw] encrypted
9362
+ # Indicates whether the volume should be encrypted. If no value is
9363
+ # specified, encryption is turned on by default. This parameter maps
9364
+ # 1:1 with the `Encrypted` parameter of the [CreateVolume API][1] in
9365
+ # the *Amazon EC2 API Reference*.
9366
+ #
9367
+ #
9368
+ #
9369
+ # [1]: https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateVolume.html
9370
+ # @return [Boolean]
9371
+ #
9372
+ # @!attribute [rw] kms_key_id
9373
+ # The Amazon Resource Name (ARN) identifier of the Amazon Web Services
9374
+ # Key Management Service key to use for Amazon EBS encryption. When
9375
+ # encryption is turned on and no Amazon Web Services Key Management
9376
+ # Service key is specified, the default Amazon Web Services managed
9377
+ # key for Amazon EBS volumes is used. This parameter maps 1:1 with the
9378
+ # `KmsKeyId` parameter of the [CreateVolume API][1] in the *Amazon EC2
9379
+ # API Reference*.
9380
+ #
9381
+ # Amazon Web Services authenticates the Amazon Web Services Key
9382
+ # Management Service key asynchronously. Therefore, if you specify an
9383
+ # ID, alias, or ARN that is invalid, the action can appear to
9384
+ # complete, but eventually fails.
9385
+ #
9386
+ #
9387
+ #
9388
+ # [1]: https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateVolume.html
9389
+ # @return [String]
9390
+ #
9391
+ # @!attribute [rw] volume_type
9392
+ # The volume type. This parameter maps 1:1 with the `VolumeType`
9393
+ # parameter of the [CreateVolume API][1] in the *Amazon EC2 API
9394
+ # Reference*. For more information, see [Amazon EBS volume types][2]
9395
+ # in the *Amazon EC2 User Guide*.
9396
+ #
9397
+ # The following are the supported volume types.
9398
+ #
9399
+ # * General Purpose SSD: `gp2`\|`gp3`
9400
+ #
9401
+ # * Provisioned IOPS SSD: `io1`\|`io2`
9402
+ #
9403
+ # * Throughput Optimized HDD: `st1`
9404
+ #
9405
+ # * Cold HDD: `sc1`
9406
+ #
9407
+ # * Magnetic: `standard`
9408
+ #
9409
+ # <note markdown="1"> The magnetic volume type is not supported on Fargate.
9410
+ #
9411
+ # </note>
9412
+ #
9413
+ #
9414
+ #
9415
+ # [1]: https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateVolume.html
9416
+ # [2]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-volume-types.html
9417
+ # @return [String]
9418
+ #
9419
+ # @!attribute [rw] size_in_gi_b
9420
+ # The size of the volume in GiB. You must specify either a volume size
9421
+ # or a snapshot ID. If you specify a snapshot ID, the snapshot size is
9422
+ # used for the volume size by default. You can optionally specify a
9423
+ # volume size greater than or equal to the snapshot size. This
9424
+ # parameter maps 1:1 with the `Size` parameter of the [CreateVolume
9425
+ # API][1] in the *Amazon EC2 API Reference*.
9426
+ #
9427
+ # The following are the supported volume size values for each volume
9428
+ # type.
9429
+ #
9430
+ # * `gp2` and `gp3`: 1-16,384
9431
+ #
9432
+ # * `io1` and `io2`: 4-16,384
9433
+ #
9434
+ # * `st1` and `sc1`: 125-16,384
9435
+ #
9436
+ # * `standard`: 1-1,024
9437
+ #
9438
+ #
9439
+ #
9440
+ # [1]: https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateVolume.html
9441
+ # @return [Integer]
9442
+ #
9443
+ # @!attribute [rw] snapshot_id
9444
+ # The snapshot that Amazon ECS uses to create the volume. You must
9445
+ # specify either a snapshot ID or a volume size. This parameter maps
9446
+ # 1:1 with the `SnapshotId` parameter of the [CreateVolume API][1] in
9447
+ # the *Amazon EC2 API Reference*.
9448
+ #
9449
+ #
9450
+ #
9451
+ # [1]: https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateVolume.html
9452
+ # @return [String]
9453
+ #
9454
+ # @!attribute [rw] iops
9455
+ # The number of I/O operations per second (IOPS). For `gp3`, `io1`,
9456
+ # and `io2` volumes, this represents the number of IOPS that are
9457
+ # provisioned for the volume. For `gp2` volumes, this represents the
9458
+ # baseline performance of the volume and the rate at which the volume
9459
+ # accumulates I/O credits for bursting.
9460
+ #
9461
+ # The following are the supported values for each volume type.
9462
+ #
9463
+ # * `gp3`: 3,000 - 16,000 IOPS
9464
+ #
9465
+ # * `io1`: 100 - 64,000 IOPS
9466
+ #
9467
+ # * `io2`: 100 - 256,000 IOPS
9468
+ #
9469
+ # This parameter is required for `io1` and `io2` volume types. The
9470
+ # default for `gp3` volumes is `3,000 IOPS`. This parameter is not
9471
+ # supported for `st1`, `sc1`, or `standard` volume types.
9472
+ #
9473
+ # This parameter maps 1:1 with the `Iops` parameter of the
9474
+ # [CreateVolume API][1] in the *Amazon EC2 API Reference*.
9475
+ #
9476
+ #
9477
+ #
9478
+ # [1]: https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateVolume.html
9479
+ # @return [Integer]
9480
+ #
9481
+ # @!attribute [rw] throughput
9482
+ # The throughput to provision for a volume, in MiB/s, with a maximum
9483
+ # of 1,000 MiB/s. This parameter maps 1:1 with the `Throughput`
9484
+ # parameter of the [CreateVolume API][1] in the *Amazon EC2 API
9485
+ # Reference*.
9486
+ #
9487
+ # This parameter is only supported for the `gp3` volume type.
9488
+ #
9489
+ #
9490
+ #
9491
+ # [1]: https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateVolume.html
9492
+ # @return [Integer]
9493
+ #
9494
+ # @!attribute [rw] tag_specifications
9495
+ # The tags to apply to the volume. Amazon ECS applies service-managed
9496
+ # tags by default. This parameter maps 1:1 with the
9497
+ # `TagSpecifications.N` parameter of the [CreateVolume API][1] in the
9498
+ # *Amazon EC2 API Reference*.
9499
+ #
9500
+ #
9501
+ #
9502
+ # [1]: https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateVolume.html
9503
+ # @return [Array<Types::EBSTagSpecification>]
9504
+ #
9505
+ # @!attribute [rw] role_arn
9506
+ # The ARN of the IAM role to associate with this volume. This is the
9507
+ # Amazon ECS infrastructure IAM role that is used to manage your
9508
+ # Amazon Web Services infrastructure. We recommend using the Amazon
9509
+ # ECS-managed `AmazonECSInfrastructureRolePolicyForVolumes` IAM policy
9510
+ # with this role. For more information, see [Amazon ECS infrastructure
9511
+ # IAM role][1] in the *Amazon ECS Developer Guide*.
9512
+ #
9513
+ #
9514
+ #
9515
+ # [1]: https://docs.aws.amazon.com/AmazonECS/latest/developerguide/infrastructure_IAM_role.html
9516
+ # @return [String]
9517
+ #
9518
+ # @!attribute [rw] filesystem_type
9519
+ # The Linux filesystem type for the volume. For volumes created from a
9520
+ # snapshot, you must specify the same filesystem type that the volume
9521
+ # was using when the snapshot was created. If there is a filesystem
9522
+ # type mismatch, the task will fail to start.
9523
+ #
9524
+ # The available filesystem types are
 `ext3`, `ext4`, and `xfs`. If no
9525
+ # value is specified, the `xfs` filesystem type is used by default.
9526
+ # @return [String]
9527
+ #
9528
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/ServiceManagedEBSVolumeConfiguration AWS API Documentation
9529
+ #
9530
+ class ServiceManagedEBSVolumeConfiguration < Struct.new(
9531
+ :encrypted,
9532
+ :kms_key_id,
9533
+ :volume_type,
9534
+ :size_in_gi_b,
9535
+ :snapshot_id,
9536
+ :iops,
9537
+ :throughput,
9538
+ :tag_specifications,
9539
+ :role_arn,
9540
+ :filesystem_type)
9541
+ SENSITIVE = []
9542
+ include Aws::Structure
9543
+ end
9544
+
9237
9545
  # The specified service isn't active. You can't update a service
9238
9546
  # that's inactive. If you have previously deleted a service, you can
9239
9547
  # re-create it with CreateService.
@@ -9310,6 +9618,32 @@ module Aws::ECS
9310
9618
  include Aws::Structure
9311
9619
  end
9312
9620
 
9621
+ # The configuration for a volume specified in the task definition as a
9622
+ # volume that is configured at launch time. Currently, the only
9623
+ # supported volume type is an Amazon EBS volume.
9624
+ #
9625
+ # @!attribute [rw] name
9626
+ # The name of the volume. This value must match the volume name from
9627
+ # the `Volume` object in the task definition.
9628
+ # @return [String]
9629
+ #
9630
+ # @!attribute [rw] managed_ebs_volume
9631
+ # The configuration for the Amazon EBS volume that Amazon ECS creates
9632
+ # and manages on your behalf. These settings are used to create each
9633
+ # Amazon EBS volume, with one volume created for each task in the
9634
+ # service. The Amazon EBS volumes are visible in your account in the
9635
+ # Amazon EC2 console once they are created.
9636
+ # @return [Types::ServiceManagedEBSVolumeConfiguration]
9637
+ #
9638
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/ServiceVolumeConfiguration AWS API Documentation
9639
+ #
9640
+ class ServiceVolumeConfiguration < Struct.new(
9641
+ :name,
9642
+ :managed_ebs_volume)
9643
+ SENSITIVE = []
9644
+ include Aws::Structure
9645
+ end
9646
+
9313
9647
  # The details for the execute command session.
9314
9648
  #
9315
9649
  # @!attribute [rw] session_id
@@ -9490,6 +9824,17 @@ module Aws::ECS
9490
9824
  # latest `ACTIVE` revision is used.
9491
9825
  # @return [String]
9492
9826
  #
9827
+ # @!attribute [rw] volume_configurations
9828
+ # The details of the volume that was `configuredAtLaunch`. You can
9829
+ # configure the size, volumeType, IOPS, throughput, snapshot and
9830
+ # encryption in [TaskManagedEBSVolumeConfiguration][1]. The `name` of
9831
+ # the volume must match the `name` from the task definition.
9832
+ #
9833
+ #
9834
+ #
9835
+ # [1]: https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_TaskManagedEBSVolumeConfiguration.html
9836
+ # @return [Array<Types::TaskVolumeConfiguration>]
9837
+ #
9493
9838
  # @see http://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/StartTaskRequest AWS API Documentation
9494
9839
  #
9495
9840
  class StartTaskRequest < Struct.new(
@@ -9504,7 +9849,8 @@ module Aws::ECS
9504
9849
  :reference_id,
9505
9850
  :started_by,
9506
9851
  :tags,
9507
- :task_definition)
9852
+ :task_definition,
9853
+ :volume_configurations)
9508
9854
  SENSITIVE = []
9509
9855
  include Aws::Structure
9510
9856
  end
@@ -10754,6 +11100,225 @@ module Aws::ECS
10754
11100
  include Aws::Structure
10755
11101
  end
10756
11102
 
11103
+ # The configuration for the Amazon EBS volume that Amazon ECS creates
11104
+ # and manages on your behalf. These settings are used to create each
11105
+ # Amazon EBS volume, with one volume created for each task.
11106
+ #
11107
+ # @!attribute [rw] encrypted
11108
+ # Indicates whether the volume should be encrypted. If no value is
11109
+ # specified, encryption is turned on by default. This parameter maps
11110
+ # 1:1 with the `Encrypted` parameter of the [CreateVolume API][1] in
11111
+ # the *Amazon EC2 API Reference*.
11112
+ #
11113
+ #
11114
+ #
11115
+ # [1]: https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateVolume.html
11116
+ # @return [Boolean]
11117
+ #
11118
+ # @!attribute [rw] kms_key_id
11119
+ # The Amazon Resource Name (ARN) identifier of the Amazon Web Services
11120
+ # Key Management Service key to use for Amazon EBS encryption. When
11121
+ # encryption is turned on and no Amazon Web Services Key Management
11122
+ # Service key is specified, the default Amazon Web Services managed
11123
+ # key for Amazon EBS volumes is used. This parameter maps 1:1 with the
11124
+ # `KmsKeyId` parameter of the [CreateVolume API][1] in the *Amazon EC2
11125
+ # API Reference*.
11126
+ #
11127
+ # Amazon Web Services authenticates the Amazon Web Services Key
11128
+ # Management Service key asynchronously. Therefore, if you specify an
11129
+ # ID, alias, or ARN that is invalid, the action can appear to
11130
+ # complete, but eventually fails.
11131
+ #
11132
+ #
11133
+ #
11134
+ # [1]: https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateVolume.html
11135
+ # @return [String]
11136
+ #
11137
+ # @!attribute [rw] volume_type
11138
+ # The volume type. This parameter maps 1:1 with the `VolumeType`
11139
+ # parameter of the [CreateVolume API][1] in the *Amazon EC2 API
11140
+ # Reference*. For more information, see [Amazon EBS volume types][2]
11141
+ # in the *Amazon EC2 User Guide*.
11142
+ #
11143
+ # The following are the supported volume types.
11144
+ #
11145
+ # * General Purpose SSD: `gp2`\|`gp3`
11146
+ #
11147
+ # * Provisioned IOPS SSD: `io1`\|`io2`
11148
+ #
11149
+ # * Throughput Optimized HDD: `st1`
11150
+ #
11151
+ # * Cold HDD: `sc1`
11152
+ #
11153
+ # * Magnetic: `standard`
11154
+ #
11155
+ # <note markdown="1"> The magnetic volume type is not supported on Fargate.
11156
+ #
11157
+ # </note>
11158
+ #
11159
+ #
11160
+ #
11161
+ # [1]: https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateVolume.html
11162
+ # [2]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-volume-types.html
11163
+ # @return [String]
11164
+ #
11165
+ # @!attribute [rw] size_in_gi_b
11166
+ # The size of the volume in GiB. You must specify either a volume size
11167
+ # or a snapshot ID. If you specify a snapshot ID, the snapshot size is
11168
+ # used for the volume size by default. You can optionally specify a
11169
+ # volume size greater than or equal to the snapshot size. This
11170
+ # parameter maps 1:1 with the `Size` parameter of the [CreateVolume
11171
+ # API][1] in the *Amazon EC2 API Reference*.
11172
+ #
11173
+ # The following are the supported volume size values for each volume
11174
+ # type.
11175
+ #
11176
+ # * `gp2` and `gp3`: 1-16,384
11177
+ #
11178
+ # * `io1` and `io2`: 4-16,384
11179
+ #
11180
+ # * `st1` and `sc1`: 125-16,384
11181
+ #
11182
+ # * `standard`: 1-1,024
11183
+ #
11184
+ #
11185
+ #
11186
+ # [1]: https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateVolume.html
11187
+ # @return [Integer]
11188
+ #
11189
+ # @!attribute [rw] snapshot_id
11190
+ # The snapshot that Amazon ECS uses to create the volume. You must
11191
+ # specify either a snapshot ID or a volume size. This parameter maps
11192
+ # 1:1 with the `SnapshotId` parameter of the [CreateVolume API][1] in
11193
+ # the *Amazon EC2 API Reference*.
11194
+ #
11195
+ #
11196
+ #
11197
+ # [1]: https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateVolume.html
11198
+ # @return [String]
11199
+ #
11200
+ # @!attribute [rw] iops
11201
+ # The number of I/O operations per second (IOPS). For `gp3`, `io1`,
11202
+ # and `io2` volumes, this represents the number of IOPS that are
11203
+ # provisioned for the volume. For `gp2` volumes, this represents the
11204
+ # baseline performance of the volume and the rate at which the volume
11205
+ # accumulates I/O credits for bursting.
11206
+ #
11207
+ # The following are the supported values for each volume type.
11208
+ #
11209
+ # * `gp3`: 3,000 - 16,000 IOPS
11210
+ #
11211
+ # * `io1`: 100 - 64,000 IOPS
11212
+ #
11213
+ # * `io2`: 100 - 256,000 IOPS
11214
+ #
11215
+ # This parameter is required for `io1` and `io2` volume types. The
11216
+ # default for `gp3` volumes is `3,000 IOPS`. This parameter is not
11217
+ # supported for `st1`, `sc1`, or `standard` volume types.
11218
+ #
11219
+ # This parameter maps 1:1 with the `Iops` parameter of the
11220
+ # [CreateVolume API][1] in the *Amazon EC2 API Reference*.
11221
+ #
11222
+ #
11223
+ #
11224
+ # [1]: https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateVolume.html
11225
+ # @return [Integer]
11226
+ #
11227
+ # @!attribute [rw] throughput
11228
+ # The throughput to provision for a volume, in MiB/s, with a maximum
11229
+ # of 1,000 MiB/s. This parameter maps 1:1 with the `Throughput`
11230
+ # parameter of the [CreateVolume API][1] in the *Amazon EC2 API
11231
+ # Reference*.
11232
+ #
11233
+ # This parameter is only supported for the `gp3` volume type.
11234
+ #
11235
+ #
11236
+ #
11237
+ # [1]: https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateVolume.html
11238
+ # @return [Integer]
11239
+ #
11240
+ # @!attribute [rw] tag_specifications
11241
+ # The tags to apply to the volume. Amazon ECS applies service-managed
11242
+ # tags by default. This parameter maps 1:1 with the
11243
+ # `TagSpecifications.N` parameter of the [CreateVolume API][1] in the
11244
+ # *Amazon EC2 API Reference*.
11245
+ #
11246
+ #
11247
+ #
11248
+ # [1]: https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateVolume.html
11249
+ # @return [Array<Types::EBSTagSpecification>]
11250
+ #
11251
+ # @!attribute [rw] role_arn
11252
+ # The ARN of the IAM role to associate with this volume. This is the
11253
+ # Amazon ECS infrastructure IAM role that is used to manage your
11254
+ # Amazon Web Services infrastructure. We recommend using the Amazon
11255
+ # ECS-managed `AmazonECSInfrastructureRolePolicyForVolumes` IAM policy
11256
+ # with this role. For more information, see [Amazon ECS infrastructure
11257
+ # IAM role][1] in the *Amazon ECS Developer Guide*.
11258
+ #
11259
+ #
11260
+ #
11261
+ # [1]: https://docs.aws.amazon.com/AmazonECS/latest/developerguide/infrastructure_IAM_role.html
11262
+ # @return [String]
11263
+ #
11264
+ # @!attribute [rw] termination_policy
11265
+ # The termination policy for the volume when the task exits. This
11266
+ # provides a way to control whether Amazon ECS terminates the Amazon
11267
+ # EBS volume when the task stops.
11268
+ # @return [Types::TaskManagedEBSVolumeTerminationPolicy]
11269
+ #
11270
+ # @!attribute [rw] filesystem_type
11271
+ # The Linux filesystem type for the volume. For volumes created from a
11272
+ # snapshot, you must specify the same filesystem type that the volume
11273
+ # was using when the snapshot was created. If there is a filesystem
11274
+ # type mismatch, the task will fail to start.
11275
+ #
11276
+ # The available filesystem types are
 `ext3`, `ext4`, and `xfs`. If no
11277
+ # value is specified, the `xfs` filesystem type is used by default.
11278
+ # @return [String]
11279
+ #
11280
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/TaskManagedEBSVolumeConfiguration AWS API Documentation
11281
+ #
11282
+ class TaskManagedEBSVolumeConfiguration < Struct.new(
11283
+ :encrypted,
11284
+ :kms_key_id,
11285
+ :volume_type,
11286
+ :size_in_gi_b,
11287
+ :snapshot_id,
11288
+ :iops,
11289
+ :throughput,
11290
+ :tag_specifications,
11291
+ :role_arn,
11292
+ :termination_policy,
11293
+ :filesystem_type)
11294
+ SENSITIVE = []
11295
+ include Aws::Structure
11296
+ end
11297
+
11298
+ # The termination policy for the Amazon EBS volume when the task exits.
11299
+ # For more information, see [Amazon ECS volume termination policy][1].
11300
+ #
11301
+ #
11302
+ #
11303
+ # [1]: https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ebs-volumes.html#ebs-volume-types
11304
+ #
11305
+ # @!attribute [rw] delete_on_termination
11306
+ # Indicates whether the volume should be deleted on when the task
11307
+ # stops. If a value of `true` is specified, 
Amazon ECS deletes the
11308
+ # Amazon EBS volume on your behalf when the task goes into the
11309
+ # `STOPPED` state. If no value is specified, the 
default value is
11310
+ # `true` is used. When set to `false`, Amazon ECS leaves the volume in
11311
+ # your 
account.
11312
+ # @return [Boolean]
11313
+ #
11314
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/TaskManagedEBSVolumeTerminationPolicy AWS API Documentation
11315
+ #
11316
+ class TaskManagedEBSVolumeTerminationPolicy < Struct.new(
11317
+ :delete_on_termination)
11318
+ SENSITIVE = []
11319
+ include Aws::Structure
11320
+ end
11321
+
10757
11322
  # The overrides that are associated with a task.
10758
11323
  #
10759
11324
  # @!attribute [rw] container_overrides
@@ -11065,6 +11630,66 @@ module Aws::ECS
11065
11630
  #
11066
11631
  class TaskSetNotFoundException < Aws::EmptyStructure; end
11067
11632
 
11633
+ # Configuration settings for the task volume that was
11634
+ # `configuredAtLaunch` that weren't set during `RegisterTaskDef`.
11635
+ #
11636
+ # @!attribute [rw] name
11637
+ # The name of the volume. This value must match the volume name from
11638
+ # the `Volume` object in the task definition.
11639
+ # @return [String]
11640
+ #
11641
+ # @!attribute [rw] managed_ebs_volume
11642
+ # The configuration for the Amazon EBS volume that Amazon ECS creates
11643
+ # and manages on your behalf. These settings are used to create each
11644
+ # Amazon EBS volume, with one volume created for each task. The Amazon
11645
+ # EBS volumes are visible in your account in the Amazon EC2 console
11646
+ # once they are created.
11647
+ # @return [Types::TaskManagedEBSVolumeConfiguration]
11648
+ #
11649
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/TaskVolumeConfiguration AWS API Documentation
11650
+ #
11651
+ class TaskVolumeConfiguration < Struct.new(
11652
+ :name,
11653
+ :managed_ebs_volume)
11654
+ SENSITIVE = []
11655
+ include Aws::Structure
11656
+ end
11657
+
11658
+ # An object that represents the timeout configurations for Service
11659
+ # Connect.
11660
+ #
11661
+ # <note markdown="1"> If `idleTimeout` is set to a time that is less than
11662
+ # `perRequestTimeout`, the connection will close when the `idleTimeout`
11663
+ # is reached and not the `perRequestTimeout`.
11664
+ #
11665
+ # </note>
11666
+ #
11667
+ # @!attribute [rw] idle_timeout_seconds
11668
+ # The amount of time in seconds a connection will stay active while
11669
+ # idle. A value of `0` can be set to disable `idleTimeout`.
11670
+ #
11671
+ # The `idleTimeout` default for `HTTP`/`HTTP2`/`GRPC` is 5 minutes.
11672
+ #
11673
+ # The `idleTimeout` default for `TCP` is 1 hour.
11674
+ # @return [Integer]
11675
+ #
11676
+ # @!attribute [rw] per_request_timeout_seconds
11677
+ # The amount of time waiting for the upstream to respond with a
11678
+ # complete response per request. A value of `0` can be set to disable
11679
+ # `perRequestTimeout`. `perRequestTimeout` can only be set if Service
11680
+ # Connect `appProtocol` isn't `TCP`. Only `idleTimeout` is allowed
11681
+ # for `TCP` `appProtocol`.
11682
+ # @return [Integer]
11683
+ #
11684
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/TimeoutConfiguration AWS API Documentation
11685
+ #
11686
+ class TimeoutConfiguration < Struct.new(
11687
+ :idle_timeout_seconds,
11688
+ :per_request_timeout_seconds)
11689
+ SENSITIVE = []
11690
+ include Aws::Structure
11691
+ end
11692
+
11068
11693
  # The container path, mount options, and size of the tmpfs mount.
11069
11694
  #
11070
11695
  # @!attribute [rw] container_path
@@ -11651,6 +12276,20 @@ module Aws::ECS
11651
12276
  # [1]: https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-connect.html
11652
12277
  # @return [Types::ServiceConnectConfiguration]
11653
12278
  #
12279
+ # @!attribute [rw] volume_configurations
12280
+ # The details of the volume that was `configuredAtLaunch`. You can
12281
+ # configure the size, volumeType, IOPS, throughput, snapshot and
12282
+ # encryption in [ServiceManagedEBSVolumeConfiguration][1]. The `name`
12283
+ # of the volume must match the `name` from the task definition. If set
12284
+ # to null, no new deployment is triggered. Otherwise, if this
12285
+ # configuration differs from the existing one, it triggers a new
12286
+ # deployment.
12287
+ #
12288
+ #
12289
+ #
12290
+ # [1]: https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_ServiceManagedEBSVolumeConfiguration.html
12291
+ # @return [Array<Types::ServiceVolumeConfiguration>]
12292
+ #
11654
12293
  # @see http://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/UpdateServiceRequest AWS API Documentation
11655
12294
  #
11656
12295
  class UpdateServiceRequest < Struct.new(
@@ -11671,7 +12310,8 @@ module Aws::ECS
11671
12310
  :load_balancers,
11672
12311
  :propagate_tags,
11673
12312
  :service_registries,
11674
- :service_connect_configuration)
12313
+ :service_connect_configuration,
12314
+ :volume_configurations)
11675
12315
  SENSITIVE = []
11676
12316
  include Aws::Structure
11677
12317
  end
@@ -11824,14 +12464,16 @@ module Aws::ECS
11824
12464
  include Aws::Structure
11825
12465
  end
11826
12466
 
11827
- # A data volume that's used in a task definition. For tasks that use
11828
- # the Amazon Elastic File System (Amazon EFS), specify an
11829
- # `efsVolumeConfiguration`. For Windows tasks that use Amazon FSx for
11830
- # Windows File Server file system, specify a
11831
- # `fsxWindowsFileServerVolumeConfiguration`. For tasks that use a Docker
11832
- # volume, specify a `DockerVolumeConfiguration`. For tasks that use a
11833
- # bind mount host volume, specify a `host` and optional `sourcePath`.
11834
- # For more information, see [Using Data Volumes in Tasks][1].
12467
+ # The data volume configuration for tasks launched using this task
12468
+ # definition. Specifying a volume configuration in a task definition is
12469
+ # optional. The volume configuration may contain multiple volumes but
12470
+ # only one volume configured at launch is supported. Each volume defined
12471
+ # in the volume configuration may only specify a `name` and one of
12472
+ # either `configuredAtLaunch`, `dockerVolumeConfiguration`,
12473
+ # `efsVolumeConfiguration`, `fsxWindowsFileServerVolumeConfiguration`,
12474
+ # or `host`. If an empty volume configuration is specified, by default
12475
+ # Amazon ECS uses a host volume. For more information, see [Using data
12476
+ # volumes in tasks][1].
11835
12477
  #
11836
12478
  #
11837
12479
  #
@@ -11839,11 +12481,19 @@ module Aws::ECS
11839
12481
  #
11840
12482
  # @!attribute [rw] name
11841
12483
  # The name of the volume. Up to 255 letters (uppercase and lowercase),
11842
- # numbers, underscores, and hyphens are allowed. This name is
11843
- # referenced in the `sourceVolume` parameter of container definition
11844
- # `mountPoints`.
12484
+ # numbers, underscores, and hyphens are allowed.
12485
+ #
12486
+ # When using a volume configured at launch, the `name` is required and
12487
+ # must also be specified as the volume name in the
12488
+ # `ServiceVolumeConfiguration` or `TaskVolumeConfiguration` parameter
12489
+ # when creating your service or standalone task.
12490
+ #
12491
+ # For all other types of volumes, this name is referenced in the
12492
+ # `sourceVolume` parameter of the `mountPoints` object in the
12493
+ # container definition.
11845
12494
  #
11846
- # This is required wwhen you use an Amazon EFS volume.
12495
+ # When a volume is using the `efsVolumeConfiguration`, the name is
12496
+ # required.
11847
12497
  # @return [String]
11848
12498
  #
11849
12499
  # @!attribute [rw] host
@@ -11883,6 +12533,18 @@ module Aws::ECS
11883
12533
  # Server file system for task storage.
11884
12534
  # @return [Types::FSxWindowsFileServerVolumeConfiguration]
11885
12535
  #
12536
+ # @!attribute [rw] configured_at_launch
12537
+ # Indicates whether the volume should be configured at launch time.
12538
+ # This is used to create Amazon EBS volumes for standalone tasks or
12539
+ # tasks created as part of a service. Each task definition revision
12540
+ # may only have one volume configured at launch in the volume
12541
+ # configuration.
12542
+ #
12543
+ # To configure a volume at launch time, use this task definition
12544
+ # revision and specify a `volumeConfigurations` object when calling
12545
+ # the `CreateService`, `UpdateService`, `RunTask` or `StartTask` APIs.
12546
+ # @return [Boolean]
12547
+ #
11886
12548
  # @see http://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/Volume AWS API Documentation
11887
12549
  #
11888
12550
  class Volume < Struct.new(
@@ -11890,7 +12552,8 @@ module Aws::ECS
11890
12552
  :host,
11891
12553
  :docker_volume_configuration,
11892
12554
  :efs_volume_configuration,
11893
- :fsx_windows_file_server_volume_configuration)
12555
+ :fsx_windows_file_server_volume_configuration,
12556
+ :configured_at_launch)
11894
12557
  SENSITIVE = []
11895
12558
  include Aws::Structure
11896
12559
  end