aws-sdk-ecs 1.136.0 → 1.138.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
@@ -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