aws-sdk-ecs 1.53.0 → 1.54.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.
@@ -22,11 +22,21 @@ module Aws::ECS
22
22
  Attribute = Shapes::StructureShape.new(name: 'Attribute')
23
23
  AttributeLimitExceededException = Shapes::StructureShape.new(name: 'AttributeLimitExceededException')
24
24
  Attributes = Shapes::ListShape.new(name: 'Attributes')
25
+ AutoScalingGroupProvider = Shapes::StructureShape.new(name: 'AutoScalingGroupProvider')
25
26
  AwsVpcConfiguration = Shapes::StructureShape.new(name: 'AwsVpcConfiguration')
26
27
  BlockedException = Shapes::StructureShape.new(name: 'BlockedException')
27
28
  Boolean = Shapes::BooleanShape.new(name: 'Boolean')
28
29
  BoxedBoolean = Shapes::BooleanShape.new(name: 'BoxedBoolean')
29
30
  BoxedInteger = Shapes::IntegerShape.new(name: 'BoxedInteger')
31
+ CapacityProvider = Shapes::StructureShape.new(name: 'CapacityProvider')
32
+ CapacityProviderField = Shapes::StringShape.new(name: 'CapacityProviderField')
33
+ CapacityProviderFieldList = Shapes::ListShape.new(name: 'CapacityProviderFieldList')
34
+ CapacityProviderStatus = Shapes::StringShape.new(name: 'CapacityProviderStatus')
35
+ CapacityProviderStrategy = Shapes::ListShape.new(name: 'CapacityProviderStrategy')
36
+ CapacityProviderStrategyItem = Shapes::StructureShape.new(name: 'CapacityProviderStrategyItem')
37
+ CapacityProviderStrategyItemBase = Shapes::IntegerShape.new(name: 'CapacityProviderStrategyItemBase')
38
+ CapacityProviderStrategyItemWeight = Shapes::IntegerShape.new(name: 'CapacityProviderStrategyItemWeight')
39
+ CapacityProviders = Shapes::ListShape.new(name: 'CapacityProviders')
30
40
  ClientException = Shapes::StructureShape.new(name: 'ClientException')
31
41
  Cluster = Shapes::StructureShape.new(name: 'Cluster')
32
42
  ClusterContainsContainerInstancesException = Shapes::StructureShape.new(name: 'ClusterContainsContainerInstancesException')
@@ -58,6 +68,8 @@ module Aws::ECS
58
68
  ContainerStateChange = Shapes::StructureShape.new(name: 'ContainerStateChange')
59
69
  ContainerStateChanges = Shapes::ListShape.new(name: 'ContainerStateChanges')
60
70
  Containers = Shapes::ListShape.new(name: 'Containers')
71
+ CreateCapacityProviderRequest = Shapes::StructureShape.new(name: 'CreateCapacityProviderRequest')
72
+ CreateCapacityProviderResponse = Shapes::StructureShape.new(name: 'CreateCapacityProviderResponse')
61
73
  CreateClusterRequest = Shapes::StructureShape.new(name: 'CreateClusterRequest')
62
74
  CreateClusterResponse = Shapes::StructureShape.new(name: 'CreateClusterResponse')
63
75
  CreateServiceRequest = Shapes::StructureShape.new(name: 'CreateServiceRequest')
@@ -83,6 +95,8 @@ module Aws::ECS
83
95
  DeregisterContainerInstanceResponse = Shapes::StructureShape.new(name: 'DeregisterContainerInstanceResponse')
84
96
  DeregisterTaskDefinitionRequest = Shapes::StructureShape.new(name: 'DeregisterTaskDefinitionRequest')
85
97
  DeregisterTaskDefinitionResponse = Shapes::StructureShape.new(name: 'DeregisterTaskDefinitionResponse')
98
+ DescribeCapacityProvidersRequest = Shapes::StructureShape.new(name: 'DescribeCapacityProvidersRequest')
99
+ DescribeCapacityProvidersResponse = Shapes::StructureShape.new(name: 'DescribeCapacityProvidersResponse')
86
100
  DescribeClustersRequest = Shapes::StructureShape.new(name: 'DescribeClustersRequest')
87
101
  DescribeClustersResponse = Shapes::StructureShape.new(name: 'DescribeClustersResponse')
88
102
  DescribeContainerInstancesRequest = Shapes::StructureShape.new(name: 'DescribeContainerInstancesRequest')
@@ -127,6 +141,7 @@ module Aws::ECS
127
141
  KernelCapabilities = Shapes::StructureShape.new(name: 'KernelCapabilities')
128
142
  KeyValuePair = Shapes::StructureShape.new(name: 'KeyValuePair')
129
143
  LaunchType = Shapes::StringShape.new(name: 'LaunchType')
144
+ LimitExceededException = Shapes::StructureShape.new(name: 'LimitExceededException')
130
145
  LinuxParameters = Shapes::StructureShape.new(name: 'LinuxParameters')
131
146
  ListAccountSettingsRequest = Shapes::StructureShape.new(name: 'ListAccountSettingsRequest')
132
147
  ListAccountSettingsResponse = Shapes::StructureShape.new(name: 'ListAccountSettingsResponse')
@@ -152,6 +167,11 @@ module Aws::ECS
152
167
  LogConfigurationOptionsMap = Shapes::MapShape.new(name: 'LogConfigurationOptionsMap')
153
168
  LogDriver = Shapes::StringShape.new(name: 'LogDriver')
154
169
  Long = Shapes::IntegerShape.new(name: 'Long')
170
+ ManagedScaling = Shapes::StructureShape.new(name: 'ManagedScaling')
171
+ ManagedScalingStatus = Shapes::StringShape.new(name: 'ManagedScalingStatus')
172
+ ManagedScalingStepSize = Shapes::IntegerShape.new(name: 'ManagedScalingStepSize')
173
+ ManagedScalingTargetCapacity = Shapes::IntegerShape.new(name: 'ManagedScalingTargetCapacity')
174
+ ManagedTerminationProtection = Shapes::StringShape.new(name: 'ManagedTerminationProtection')
155
175
  MissingVersionException = Shapes::StructureShape.new(name: 'MissingVersionException')
156
176
  MountPoint = Shapes::StructureShape.new(name: 'MountPoint')
157
177
  MountPointList = Shapes::ListShape.new(name: 'MountPointList')
@@ -186,6 +206,8 @@ module Aws::ECS
186
206
  PutAccountSettingResponse = Shapes::StructureShape.new(name: 'PutAccountSettingResponse')
187
207
  PutAttributesRequest = Shapes::StructureShape.new(name: 'PutAttributesRequest')
188
208
  PutAttributesResponse = Shapes::StructureShape.new(name: 'PutAttributesResponse')
209
+ PutClusterCapacityProvidersRequest = Shapes::StructureShape.new(name: 'PutClusterCapacityProvidersRequest')
210
+ PutClusterCapacityProvidersResponse = Shapes::StructureShape.new(name: 'PutClusterCapacityProvidersResponse')
189
211
  RegisterContainerInstanceRequest = Shapes::StructureShape.new(name: 'RegisterContainerInstanceRequest')
190
212
  RegisterContainerInstanceResponse = Shapes::StructureShape.new(name: 'RegisterContainerInstanceResponse')
191
213
  RegisterTaskDefinitionRequest = Shapes::StructureShape.new(name: 'RegisterTaskDefinitionRequest')
@@ -193,6 +215,7 @@ module Aws::ECS
193
215
  RepositoryCredentials = Shapes::StructureShape.new(name: 'RepositoryCredentials')
194
216
  RequiresAttributes = Shapes::ListShape.new(name: 'RequiresAttributes')
195
217
  Resource = Shapes::StructureShape.new(name: 'Resource')
218
+ ResourceInUseException = Shapes::StructureShape.new(name: 'ResourceInUseException')
196
219
  ResourceNotFoundException = Shapes::StructureShape.new(name: 'ResourceNotFoundException')
197
220
  ResourceRequirement = Shapes::StructureShape.new(name: 'ResourceRequirement')
198
221
  ResourceRequirements = Shapes::ListShape.new(name: 'ResourceRequirements')
@@ -317,11 +340,34 @@ module Aws::ECS
317
340
 
318
341
  Attributes.member = Shapes::ShapeRef.new(shape: Attribute)
319
342
 
343
+ AutoScalingGroupProvider.add_member(:auto_scaling_group_arn, Shapes::ShapeRef.new(shape: String, required: true, location_name: "autoScalingGroupArn"))
344
+ AutoScalingGroupProvider.add_member(:managed_scaling, Shapes::ShapeRef.new(shape: ManagedScaling, location_name: "managedScaling"))
345
+ AutoScalingGroupProvider.add_member(:managed_termination_protection, Shapes::ShapeRef.new(shape: ManagedTerminationProtection, location_name: "managedTerminationProtection"))
346
+ AutoScalingGroupProvider.struct_class = Types::AutoScalingGroupProvider
347
+
320
348
  AwsVpcConfiguration.add_member(:subnets, Shapes::ShapeRef.new(shape: StringList, required: true, location_name: "subnets"))
321
349
  AwsVpcConfiguration.add_member(:security_groups, Shapes::ShapeRef.new(shape: StringList, location_name: "securityGroups"))
322
350
  AwsVpcConfiguration.add_member(:assign_public_ip, Shapes::ShapeRef.new(shape: AssignPublicIp, location_name: "assignPublicIp"))
323
351
  AwsVpcConfiguration.struct_class = Types::AwsVpcConfiguration
324
352
 
353
+ CapacityProvider.add_member(:capacity_provider_arn, Shapes::ShapeRef.new(shape: String, location_name: "capacityProviderArn"))
354
+ CapacityProvider.add_member(:name, Shapes::ShapeRef.new(shape: String, location_name: "name"))
355
+ CapacityProvider.add_member(:status, Shapes::ShapeRef.new(shape: CapacityProviderStatus, location_name: "status"))
356
+ CapacityProvider.add_member(:auto_scaling_group_provider, Shapes::ShapeRef.new(shape: AutoScalingGroupProvider, location_name: "autoScalingGroupProvider"))
357
+ CapacityProvider.add_member(:tags, Shapes::ShapeRef.new(shape: Tags, location_name: "tags"))
358
+ CapacityProvider.struct_class = Types::CapacityProvider
359
+
360
+ CapacityProviderFieldList.member = Shapes::ShapeRef.new(shape: CapacityProviderField)
361
+
362
+ CapacityProviderStrategy.member = Shapes::ShapeRef.new(shape: CapacityProviderStrategyItem)
363
+
364
+ CapacityProviderStrategyItem.add_member(:capacity_provider, Shapes::ShapeRef.new(shape: String, required: true, location_name: "capacityProvider"))
365
+ CapacityProviderStrategyItem.add_member(:weight, Shapes::ShapeRef.new(shape: CapacityProviderStrategyItemWeight, location_name: "weight"))
366
+ CapacityProviderStrategyItem.add_member(:base, Shapes::ShapeRef.new(shape: CapacityProviderStrategyItemBase, location_name: "base"))
367
+ CapacityProviderStrategyItem.struct_class = Types::CapacityProviderStrategyItem
368
+
369
+ CapacityProviders.member = Shapes::ShapeRef.new(shape: CapacityProvider)
370
+
325
371
  ClientException.add_member(:message, Shapes::ShapeRef.new(shape: String, location_name: "message"))
326
372
  ClientException.struct_class = Types::ClientException
327
373
 
@@ -335,6 +381,10 @@ module Aws::ECS
335
381
  Cluster.add_member(:statistics, Shapes::ShapeRef.new(shape: Statistics, location_name: "statistics"))
336
382
  Cluster.add_member(:tags, Shapes::ShapeRef.new(shape: Tags, location_name: "tags"))
337
383
  Cluster.add_member(:settings, Shapes::ShapeRef.new(shape: ClusterSettings, location_name: "settings"))
384
+ Cluster.add_member(:capacity_providers, Shapes::ShapeRef.new(shape: StringList, location_name: "capacityProviders"))
385
+ Cluster.add_member(:default_capacity_provider_strategy, Shapes::ShapeRef.new(shape: CapacityProviderStrategy, location_name: "defaultCapacityProviderStrategy"))
386
+ Cluster.add_member(:attachments, Shapes::ShapeRef.new(shape: Attachments, location_name: "attachments"))
387
+ Cluster.add_member(:attachments_status, Shapes::ShapeRef.new(shape: String, location_name: "attachmentsStatus"))
338
388
  Cluster.struct_class = Types::Cluster
339
389
 
340
390
  ClusterFieldList.member = Shapes::ShapeRef.new(shape: ClusterField)
@@ -417,6 +467,7 @@ module Aws::ECS
417
467
 
418
468
  ContainerInstance.add_member(:container_instance_arn, Shapes::ShapeRef.new(shape: String, location_name: "containerInstanceArn"))
419
469
  ContainerInstance.add_member(:ec2_instance_id, Shapes::ShapeRef.new(shape: String, location_name: "ec2InstanceId"))
470
+ ContainerInstance.add_member(:capacity_provider_name, Shapes::ShapeRef.new(shape: String, location_name: "capacityProviderName"))
420
471
  ContainerInstance.add_member(:version, Shapes::ShapeRef.new(shape: Long, location_name: "version"))
421
472
  ContainerInstance.add_member(:version_info, Shapes::ShapeRef.new(shape: VersionInfo, location_name: "versionInfo"))
422
473
  ContainerInstance.add_member(:remaining_resources, Shapes::ShapeRef.new(shape: Resources, location_name: "remainingResources"))
@@ -461,9 +512,19 @@ module Aws::ECS
461
512
 
462
513
  Containers.member = Shapes::ShapeRef.new(shape: Container)
463
514
 
515
+ CreateCapacityProviderRequest.add_member(:name, Shapes::ShapeRef.new(shape: String, required: true, location_name: "name"))
516
+ CreateCapacityProviderRequest.add_member(:auto_scaling_group_provider, Shapes::ShapeRef.new(shape: AutoScalingGroupProvider, required: true, location_name: "autoScalingGroupProvider"))
517
+ CreateCapacityProviderRequest.add_member(:tags, Shapes::ShapeRef.new(shape: Tags, location_name: "tags"))
518
+ CreateCapacityProviderRequest.struct_class = Types::CreateCapacityProviderRequest
519
+
520
+ CreateCapacityProviderResponse.add_member(:capacity_provider, Shapes::ShapeRef.new(shape: CapacityProvider, location_name: "capacityProvider"))
521
+ CreateCapacityProviderResponse.struct_class = Types::CreateCapacityProviderResponse
522
+
464
523
  CreateClusterRequest.add_member(:cluster_name, Shapes::ShapeRef.new(shape: String, location_name: "clusterName"))
465
524
  CreateClusterRequest.add_member(:tags, Shapes::ShapeRef.new(shape: Tags, location_name: "tags"))
466
525
  CreateClusterRequest.add_member(:settings, Shapes::ShapeRef.new(shape: ClusterSettings, location_name: "settings"))
526
+ CreateClusterRequest.add_member(:capacity_providers, Shapes::ShapeRef.new(shape: StringList, location_name: "capacityProviders"))
527
+ CreateClusterRequest.add_member(:default_capacity_provider_strategy, Shapes::ShapeRef.new(shape: CapacityProviderStrategy, location_name: "defaultCapacityProviderStrategy"))
467
528
  CreateClusterRequest.struct_class = Types::CreateClusterRequest
468
529
 
469
530
  CreateClusterResponse.add_member(:cluster, Shapes::ShapeRef.new(shape: Cluster, location_name: "cluster"))
@@ -477,6 +538,7 @@ module Aws::ECS
477
538
  CreateServiceRequest.add_member(:desired_count, Shapes::ShapeRef.new(shape: BoxedInteger, location_name: "desiredCount"))
478
539
  CreateServiceRequest.add_member(:client_token, Shapes::ShapeRef.new(shape: String, location_name: "clientToken"))
479
540
  CreateServiceRequest.add_member(:launch_type, Shapes::ShapeRef.new(shape: LaunchType, location_name: "launchType"))
541
+ CreateServiceRequest.add_member(:capacity_provider_strategy, Shapes::ShapeRef.new(shape: CapacityProviderStrategy, location_name: "capacityProviderStrategy"))
480
542
  CreateServiceRequest.add_member(:platform_version, Shapes::ShapeRef.new(shape: String, location_name: "platformVersion"))
481
543
  CreateServiceRequest.add_member(:role, Shapes::ShapeRef.new(shape: String, location_name: "role"))
482
544
  CreateServiceRequest.add_member(:deployment_configuration, Shapes::ShapeRef.new(shape: DeploymentConfiguration, location_name: "deploymentConfiguration"))
@@ -502,6 +564,7 @@ module Aws::ECS
502
564
  CreateTaskSetRequest.add_member(:load_balancers, Shapes::ShapeRef.new(shape: LoadBalancers, location_name: "loadBalancers"))
503
565
  CreateTaskSetRequest.add_member(:service_registries, Shapes::ShapeRef.new(shape: ServiceRegistries, location_name: "serviceRegistries"))
504
566
  CreateTaskSetRequest.add_member(:launch_type, Shapes::ShapeRef.new(shape: LaunchType, location_name: "launchType"))
567
+ CreateTaskSetRequest.add_member(:capacity_provider_strategy, Shapes::ShapeRef.new(shape: CapacityProviderStrategy, location_name: "capacityProviderStrategy"))
505
568
  CreateTaskSetRequest.add_member(:platform_version, Shapes::ShapeRef.new(shape: String, location_name: "platformVersion"))
506
569
  CreateTaskSetRequest.add_member(:scale, Shapes::ShapeRef.new(shape: Scale, location_name: "scale"))
507
570
  CreateTaskSetRequest.add_member(:client_token, Shapes::ShapeRef.new(shape: String, location_name: "clientToken"))
@@ -555,6 +618,7 @@ module Aws::ECS
555
618
  Deployment.add_member(:running_count, Shapes::ShapeRef.new(shape: Integer, location_name: "runningCount"))
556
619
  Deployment.add_member(:created_at, Shapes::ShapeRef.new(shape: Timestamp, location_name: "createdAt"))
557
620
  Deployment.add_member(:updated_at, Shapes::ShapeRef.new(shape: Timestamp, location_name: "updatedAt"))
621
+ Deployment.add_member(:capacity_provider_strategy, Shapes::ShapeRef.new(shape: CapacityProviderStrategy, location_name: "capacityProviderStrategy"))
558
622
  Deployment.add_member(:launch_type, Shapes::ShapeRef.new(shape: LaunchType, location_name: "launchType"))
559
623
  Deployment.add_member(:platform_version, Shapes::ShapeRef.new(shape: String, location_name: "platformVersion"))
560
624
  Deployment.add_member(:network_configuration, Shapes::ShapeRef.new(shape: NetworkConfiguration, location_name: "networkConfiguration"))
@@ -583,6 +647,17 @@ module Aws::ECS
583
647
  DeregisterTaskDefinitionResponse.add_member(:task_definition, Shapes::ShapeRef.new(shape: TaskDefinition, location_name: "taskDefinition"))
584
648
  DeregisterTaskDefinitionResponse.struct_class = Types::DeregisterTaskDefinitionResponse
585
649
 
650
+ DescribeCapacityProvidersRequest.add_member(:capacity_providers, Shapes::ShapeRef.new(shape: StringList, location_name: "capacityProviders"))
651
+ DescribeCapacityProvidersRequest.add_member(:include, Shapes::ShapeRef.new(shape: CapacityProviderFieldList, location_name: "include"))
652
+ DescribeCapacityProvidersRequest.add_member(:max_results, Shapes::ShapeRef.new(shape: BoxedInteger, location_name: "maxResults"))
653
+ DescribeCapacityProvidersRequest.add_member(:next_token, Shapes::ShapeRef.new(shape: String, location_name: "nextToken"))
654
+ DescribeCapacityProvidersRequest.struct_class = Types::DescribeCapacityProvidersRequest
655
+
656
+ DescribeCapacityProvidersResponse.add_member(:capacity_providers, Shapes::ShapeRef.new(shape: CapacityProviders, location_name: "capacityProviders"))
657
+ DescribeCapacityProvidersResponse.add_member(:failures, Shapes::ShapeRef.new(shape: Failures, location_name: "failures"))
658
+ DescribeCapacityProvidersResponse.add_member(:next_token, Shapes::ShapeRef.new(shape: String, location_name: "nextToken"))
659
+ DescribeCapacityProvidersResponse.struct_class = Types::DescribeCapacityProvidersResponse
660
+
586
661
  DescribeClustersRequest.add_member(:clusters, Shapes::ShapeRef.new(shape: StringList, location_name: "clusters"))
587
662
  DescribeClustersRequest.add_member(:include, Shapes::ShapeRef.new(shape: ClusterFieldList, location_name: "include"))
588
663
  DescribeClustersRequest.struct_class = Types::DescribeClustersRequest
@@ -837,6 +912,12 @@ module Aws::ECS
837
912
  LogConfigurationOptionsMap.key = Shapes::ShapeRef.new(shape: String)
838
913
  LogConfigurationOptionsMap.value = Shapes::ShapeRef.new(shape: String)
839
914
 
915
+ ManagedScaling.add_member(:status, Shapes::ShapeRef.new(shape: ManagedScalingStatus, location_name: "status"))
916
+ ManagedScaling.add_member(:target_capacity, Shapes::ShapeRef.new(shape: ManagedScalingTargetCapacity, location_name: "targetCapacity"))
917
+ ManagedScaling.add_member(:minimum_scaling_step_size, Shapes::ShapeRef.new(shape: ManagedScalingStepSize, location_name: "minimumScalingStepSize"))
918
+ ManagedScaling.add_member(:maximum_scaling_step_size, Shapes::ShapeRef.new(shape: ManagedScalingStepSize, location_name: "maximumScalingStepSize"))
919
+ ManagedScaling.struct_class = Types::ManagedScaling
920
+
840
921
  MountPoint.add_member(:source_volume, Shapes::ShapeRef.new(shape: String, location_name: "sourceVolume"))
841
922
  MountPoint.add_member(:container_path, Shapes::ShapeRef.new(shape: String, location_name: "containerPath"))
842
923
  MountPoint.add_member(:read_only, Shapes::ShapeRef.new(shape: BoxedBoolean, location_name: "readOnly"))
@@ -916,6 +997,14 @@ module Aws::ECS
916
997
  PutAttributesResponse.add_member(:attributes, Shapes::ShapeRef.new(shape: Attributes, location_name: "attributes"))
917
998
  PutAttributesResponse.struct_class = Types::PutAttributesResponse
918
999
 
1000
+ PutClusterCapacityProvidersRequest.add_member(:cluster, Shapes::ShapeRef.new(shape: String, required: true, location_name: "cluster"))
1001
+ PutClusterCapacityProvidersRequest.add_member(:capacity_providers, Shapes::ShapeRef.new(shape: StringList, required: true, location_name: "capacityProviders"))
1002
+ PutClusterCapacityProvidersRequest.add_member(:default_capacity_provider_strategy, Shapes::ShapeRef.new(shape: CapacityProviderStrategy, required: true, location_name: "defaultCapacityProviderStrategy"))
1003
+ PutClusterCapacityProvidersRequest.struct_class = Types::PutClusterCapacityProvidersRequest
1004
+
1005
+ PutClusterCapacityProvidersResponse.add_member(:cluster, Shapes::ShapeRef.new(shape: Cluster, location_name: "cluster"))
1006
+ PutClusterCapacityProvidersResponse.struct_class = Types::PutClusterCapacityProvidersResponse
1007
+
919
1008
  RegisterContainerInstanceRequest.add_member(:cluster, Shapes::ShapeRef.new(shape: String, location_name: "cluster"))
920
1009
  RegisterContainerInstanceRequest.add_member(:instance_identity_document, Shapes::ShapeRef.new(shape: String, location_name: "instanceIdentityDocument"))
921
1010
  RegisterContainerInstanceRequest.add_member(:instance_identity_document_signature, Shapes::ShapeRef.new(shape: String, location_name: "instanceIdentityDocumentSignature"))
@@ -972,6 +1061,7 @@ module Aws::ECS
972
1061
 
973
1062
  Resources.member = Shapes::ShapeRef.new(shape: Resource)
974
1063
 
1064
+ RunTaskRequest.add_member(:capacity_provider_strategy, Shapes::ShapeRef.new(shape: CapacityProviderStrategy, location_name: "capacityProviderStrategy"))
975
1065
  RunTaskRequest.add_member(:cluster, Shapes::ShapeRef.new(shape: String, location_name: "cluster"))
976
1066
  RunTaskRequest.add_member(:count, Shapes::ShapeRef.new(shape: BoxedInteger, location_name: "count"))
977
1067
  RunTaskRequest.add_member(:enable_ecs_managed_tags, Shapes::ShapeRef.new(shape: Boolean, location_name: "enableECSManagedTags"))
@@ -1016,6 +1106,7 @@ module Aws::ECS
1016
1106
  Service.add_member(:running_count, Shapes::ShapeRef.new(shape: Integer, location_name: "runningCount"))
1017
1107
  Service.add_member(:pending_count, Shapes::ShapeRef.new(shape: Integer, location_name: "pendingCount"))
1018
1108
  Service.add_member(:launch_type, Shapes::ShapeRef.new(shape: LaunchType, location_name: "launchType"))
1109
+ Service.add_member(:capacity_provider_strategy, Shapes::ShapeRef.new(shape: CapacityProviderStrategy, location_name: "capacityProviderStrategy"))
1019
1110
  Service.add_member(:platform_version, Shapes::ShapeRef.new(shape: String, location_name: "platformVersion"))
1020
1111
  Service.add_member(:task_definition, Shapes::ShapeRef.new(shape: String, location_name: "taskDefinition"))
1021
1112
  Service.add_member(:deployment_configuration, Shapes::ShapeRef.new(shape: DeploymentConfiguration, location_name: "deploymentConfiguration"))
@@ -1151,6 +1242,7 @@ module Aws::ECS
1151
1242
  Task.add_member(:attachments, Shapes::ShapeRef.new(shape: Attachments, location_name: "attachments"))
1152
1243
  Task.add_member(:attributes, Shapes::ShapeRef.new(shape: Attributes, location_name: "attributes"))
1153
1244
  Task.add_member(:availability_zone, Shapes::ShapeRef.new(shape: String, location_name: "availabilityZone"))
1245
+ Task.add_member(:capacity_provider_name, Shapes::ShapeRef.new(shape: String, location_name: "capacityProviderName"))
1154
1246
  Task.add_member(:cluster_arn, Shapes::ShapeRef.new(shape: String, location_name: "clusterArn"))
1155
1247
  Task.add_member(:connectivity, Shapes::ShapeRef.new(shape: Connectivity, location_name: "connectivity"))
1156
1248
  Task.add_member(:connectivity_at, Shapes::ShapeRef.new(shape: Timestamp, location_name: "connectivityAt"))
@@ -1235,6 +1327,7 @@ module Aws::ECS
1235
1327
  TaskSet.add_member(:created_at, Shapes::ShapeRef.new(shape: Timestamp, location_name: "createdAt"))
1236
1328
  TaskSet.add_member(:updated_at, Shapes::ShapeRef.new(shape: Timestamp, location_name: "updatedAt"))
1237
1329
  TaskSet.add_member(:launch_type, Shapes::ShapeRef.new(shape: LaunchType, location_name: "launchType"))
1330
+ TaskSet.add_member(:capacity_provider_strategy, Shapes::ShapeRef.new(shape: CapacityProviderStrategy, location_name: "capacityProviderStrategy"))
1238
1331
  TaskSet.add_member(:platform_version, Shapes::ShapeRef.new(shape: String, location_name: "platformVersion"))
1239
1332
  TaskSet.add_member(:network_configuration, Shapes::ShapeRef.new(shape: NetworkConfiguration, location_name: "networkConfiguration"))
1240
1333
  TaskSet.add_member(:load_balancers, Shapes::ShapeRef.new(shape: LoadBalancers, location_name: "loadBalancers"))
@@ -1303,6 +1396,7 @@ module Aws::ECS
1303
1396
  UpdateServiceRequest.add_member(:service, Shapes::ShapeRef.new(shape: String, required: true, location_name: "service"))
1304
1397
  UpdateServiceRequest.add_member(:desired_count, Shapes::ShapeRef.new(shape: BoxedInteger, location_name: "desiredCount"))
1305
1398
  UpdateServiceRequest.add_member(:task_definition, Shapes::ShapeRef.new(shape: String, location_name: "taskDefinition"))
1399
+ UpdateServiceRequest.add_member(:capacity_provider_strategy, Shapes::ShapeRef.new(shape: CapacityProviderStrategy, location_name: "capacityProviderStrategy"))
1306
1400
  UpdateServiceRequest.add_member(:deployment_configuration, Shapes::ShapeRef.new(shape: DeploymentConfiguration, location_name: "deploymentConfiguration"))
1307
1401
  UpdateServiceRequest.add_member(:network_configuration, Shapes::ShapeRef.new(shape: NetworkConfiguration, location_name: "networkConfiguration"))
1308
1402
  UpdateServiceRequest.add_member(:platform_version, Shapes::ShapeRef.new(shape: String, location_name: "platformVersion"))
@@ -1359,6 +1453,18 @@ module Aws::ECS
1359
1453
  "uid" => "ecs-2014-11-13",
1360
1454
  }
1361
1455
 
1456
+ api.add_operation(:create_capacity_provider, Seahorse::Model::Operation.new.tap do |o|
1457
+ o.name = "CreateCapacityProvider"
1458
+ o.http_method = "POST"
1459
+ o.http_request_uri = "/"
1460
+ o.input = Shapes::ShapeRef.new(shape: CreateCapacityProviderRequest)
1461
+ o.output = Shapes::ShapeRef.new(shape: CreateCapacityProviderResponse)
1462
+ o.errors << Shapes::ShapeRef.new(shape: ServerException)
1463
+ o.errors << Shapes::ShapeRef.new(shape: ClientException)
1464
+ o.errors << Shapes::ShapeRef.new(shape: InvalidParameterException)
1465
+ o.errors << Shapes::ShapeRef.new(shape: LimitExceededException)
1466
+ end)
1467
+
1362
1468
  api.add_operation(:create_cluster, Seahorse::Model::Operation.new.tap do |o|
1363
1469
  o.name = "CreateCluster"
1364
1470
  o.http_method = "POST"
@@ -1439,6 +1545,7 @@ module Aws::ECS
1439
1545
  o.errors << Shapes::ShapeRef.new(shape: ClusterContainsContainerInstancesException)
1440
1546
  o.errors << Shapes::ShapeRef.new(shape: ClusterContainsServicesException)
1441
1547
  o.errors << Shapes::ShapeRef.new(shape: ClusterContainsTasksException)
1548
+ o.errors << Shapes::ShapeRef.new(shape: UpdateInProgressException)
1442
1549
  end)
1443
1550
 
1444
1551
  api.add_operation(:delete_service, Seahorse::Model::Operation.new.tap do |o|
@@ -1494,6 +1601,17 @@ module Aws::ECS
1494
1601
  o.errors << Shapes::ShapeRef.new(shape: InvalidParameterException)
1495
1602
  end)
1496
1603
 
1604
+ api.add_operation(:describe_capacity_providers, Seahorse::Model::Operation.new.tap do |o|
1605
+ o.name = "DescribeCapacityProviders"
1606
+ o.http_method = "POST"
1607
+ o.http_request_uri = "/"
1608
+ o.input = Shapes::ShapeRef.new(shape: DescribeCapacityProvidersRequest)
1609
+ o.output = Shapes::ShapeRef.new(shape: DescribeCapacityProvidersResponse)
1610
+ o.errors << Shapes::ShapeRef.new(shape: ServerException)
1611
+ o.errors << Shapes::ShapeRef.new(shape: ClientException)
1612
+ o.errors << Shapes::ShapeRef.new(shape: InvalidParameterException)
1613
+ end)
1614
+
1497
1615
  api.add_operation(:describe_clusters, Seahorse::Model::Operation.new.tap do |o|
1498
1616
  o.name = "DescribeClusters"
1499
1617
  o.http_method = "POST"
@@ -1597,6 +1715,12 @@ module Aws::ECS
1597
1715
  o.output = Shapes::ShapeRef.new(shape: ListAttributesResponse)
1598
1716
  o.errors << Shapes::ShapeRef.new(shape: ClusterNotFoundException)
1599
1717
  o.errors << Shapes::ShapeRef.new(shape: InvalidParameterException)
1718
+ o[:pager] = Aws::Pager.new(
1719
+ limit_key: "max_results",
1720
+ tokens: {
1721
+ "next_token" => "next_token"
1722
+ }
1723
+ )
1600
1724
  end)
1601
1725
 
1602
1726
  api.add_operation(:list_clusters, Seahorse::Model::Operation.new.tap do |o|
@@ -1751,6 +1875,20 @@ module Aws::ECS
1751
1875
  o.errors << Shapes::ShapeRef.new(shape: InvalidParameterException)
1752
1876
  end)
1753
1877
 
1878
+ api.add_operation(:put_cluster_capacity_providers, Seahorse::Model::Operation.new.tap do |o|
1879
+ o.name = "PutClusterCapacityProviders"
1880
+ o.http_method = "POST"
1881
+ o.http_request_uri = "/"
1882
+ o.input = Shapes::ShapeRef.new(shape: PutClusterCapacityProvidersRequest)
1883
+ o.output = Shapes::ShapeRef.new(shape: PutClusterCapacityProvidersResponse)
1884
+ o.errors << Shapes::ShapeRef.new(shape: ServerException)
1885
+ o.errors << Shapes::ShapeRef.new(shape: ClientException)
1886
+ o.errors << Shapes::ShapeRef.new(shape: InvalidParameterException)
1887
+ o.errors << Shapes::ShapeRef.new(shape: ClusterNotFoundException)
1888
+ o.errors << Shapes::ShapeRef.new(shape: ResourceInUseException)
1889
+ o.errors << Shapes::ShapeRef.new(shape: UpdateInProgressException)
1890
+ end)
1891
+
1754
1892
  api.add_operation(:register_container_instance, Seahorse::Model::Operation.new.tap do |o|
1755
1893
  o.name = "RegisterContainerInstance"
1756
1894
  o.http_method = "POST"
@@ -1942,7 +2080,6 @@ module Aws::ECS
1942
2080
  o.errors << Shapes::ShapeRef.new(shape: InvalidParameterException)
1943
2081
  o.errors << Shapes::ShapeRef.new(shape: ClusterNotFoundException)
1944
2082
  o.errors << Shapes::ShapeRef.new(shape: UnsupportedFeatureException)
1945
- o.errors << Shapes::ShapeRef.new(shape: AccessDeniedException)
1946
2083
  o.errors << Shapes::ShapeRef.new(shape: ServiceNotFoundException)
1947
2084
  o.errors << Shapes::ShapeRef.new(shape: ServiceNotActiveException)
1948
2085
  o.errors << Shapes::ShapeRef.new(shape: TaskSetNotFoundException)
@@ -118,6 +118,63 @@ module Aws::ECS
118
118
  include Aws::Structure
119
119
  end
120
120
 
121
+ # The details of the Auto Scaling group for the capacity provider.
122
+ #
123
+ # @note When making an API call, you may pass AutoScalingGroupProvider
124
+ # data as a hash:
125
+ #
126
+ # {
127
+ # auto_scaling_group_arn: "String", # required
128
+ # managed_scaling: {
129
+ # status: "ENABLED", # accepts ENABLED, DISABLED
130
+ # target_capacity: 1,
131
+ # minimum_scaling_step_size: 1,
132
+ # maximum_scaling_step_size: 1,
133
+ # },
134
+ # managed_termination_protection: "ENABLED", # accepts ENABLED, DISABLED
135
+ # }
136
+ #
137
+ # @!attribute [rw] auto_scaling_group_arn
138
+ # The Amazon Resource Name (ARN) that identifies the Auto Scaling
139
+ # group.
140
+ # @return [String]
141
+ #
142
+ # @!attribute [rw] managed_scaling
143
+ # The managed scaling settings for the Auto Scaling group capacity
144
+ # provider.
145
+ # @return [Types::ManagedScaling]
146
+ #
147
+ # @!attribute [rw] managed_termination_protection
148
+ # The managed termination protection setting to use for the Auto
149
+ # Scaling group capacity provider. This determines whether the Auto
150
+ # Scaling group has managed termination protection.
151
+ #
152
+ # When managed termination protection is enabled, Amazon ECS prevents
153
+ # the Amazon EC2 instances in an Auto Scaling group that contain tasks
154
+ # from being terminated during a scale-in action. The Auto Scaling
155
+ # group and each instance in the Auto Scaling group must have instance
156
+ # protection from scale-in actions enabled as well. For more
157
+ # information, see [Instance Protection][1] in the *AWS Auto Scaling
158
+ # User Guide*.
159
+ #
160
+ # When managed termination protection is disabled, your Amazon EC2
161
+ # instances are not protected from termination when the Auto Scaling
162
+ # group scales in.
163
+ #
164
+ #
165
+ #
166
+ # [1]: https://docs.aws.amazon.com/autoscaling/ec2/userguide/as-instance-termination.html#instance-protection
167
+ # @return [String]
168
+ #
169
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/AutoScalingGroupProvider AWS API Documentation
170
+ #
171
+ class AutoScalingGroupProvider < Struct.new(
172
+ :auto_scaling_group_arn,
173
+ :managed_scaling,
174
+ :managed_termination_protection)
175
+ include Aws::Structure
176
+ end
177
+
121
178
  # An object representing the networking details for a task or service.
122
179
  #
123
180
  # @note When making an API call, you may pass AwsVpcConfiguration
@@ -163,6 +220,113 @@ module Aws::ECS
163
220
  include Aws::Structure
164
221
  end
165
222
 
223
+ # The details of a capacity provider.
224
+ #
225
+ # @!attribute [rw] capacity_provider_arn
226
+ # The Amazon Resource Name (ARN) that identifies the capacity
227
+ # provider.
228
+ # @return [String]
229
+ #
230
+ # @!attribute [rw] name
231
+ # The name of the capacity provider.
232
+ # @return [String]
233
+ #
234
+ # @!attribute [rw] status
235
+ # The current status of the capacity provider. Only capacity providers
236
+ # in an `ACTIVE` state can be used in a cluster.
237
+ # @return [String]
238
+ #
239
+ # @!attribute [rw] auto_scaling_group_provider
240
+ # The Auto Scaling group settings for the capacity provider.
241
+ # @return [Types::AutoScalingGroupProvider]
242
+ #
243
+ # @!attribute [rw] tags
244
+ # The metadata that you apply to the capacity provider to help you
245
+ # categorize and organize it. Each tag consists of a key and an
246
+ # optional value, both of which you define.
247
+ #
248
+ # The following basic restrictions apply to tags:
249
+ #
250
+ # * Maximum number of tags per resource - 50
251
+ #
252
+ # * For each resource, each tag key must be unique, and each tag key
253
+ # can have only one value.
254
+ #
255
+ # * Maximum key length - 128 Unicode characters in UTF-8
256
+ #
257
+ # * Maximum value length - 256 Unicode characters in UTF-8
258
+ #
259
+ # * If your tagging schema is used across multiple services and
260
+ # resources, remember that other services may have restrictions on
261
+ # allowed characters. Generally allowed characters are: letters,
262
+ # numbers, and spaces representable in UTF-8, and the following
263
+ # characters: + - = . \_ : / @.
264
+ #
265
+ # * Tag keys and values are case-sensitive.
266
+ #
267
+ # * Do not use `aws:`, `AWS:`, or any upper or lowercase combination
268
+ # of such as a prefix for either keys or values as it is reserved
269
+ # for AWS use. You cannot edit or delete tag keys or values with
270
+ # this prefix. Tags with this prefix do not count against your tags
271
+ # per resource limit.
272
+ # @return [Array<Types::Tag>]
273
+ #
274
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/CapacityProvider AWS API Documentation
275
+ #
276
+ class CapacityProvider < Struct.new(
277
+ :capacity_provider_arn,
278
+ :name,
279
+ :status,
280
+ :auto_scaling_group_provider,
281
+ :tags)
282
+ include Aws::Structure
283
+ end
284
+
285
+ # The details of a capacity provider strategy.
286
+ #
287
+ # @note When making an API call, you may pass CapacityProviderStrategyItem
288
+ # data as a hash:
289
+ #
290
+ # {
291
+ # capacity_provider: "String", # required
292
+ # weight: 1,
293
+ # base: 1,
294
+ # }
295
+ #
296
+ # @!attribute [rw] capacity_provider
297
+ # The short name or full Amazon Resource Name (ARN) of the capacity
298
+ # provider.
299
+ # @return [String]
300
+ #
301
+ # @!attribute [rw] weight
302
+ # The *weight* value designates the relative percentage of the total
303
+ # number of tasks launched that should use the specified capacity
304
+ # provider.
305
+ #
306
+ # For example, if you have a strategy that contains two capacity
307
+ # providers and both have a weight of `1`, then when the `base` is
308
+ # satisfied, the tasks will be split evenly across the two capacity
309
+ # providers. Using that same logic, if you specify a weight of `1` for
310
+ # *capacityProviderA* and a weight of `4` for *capacityProviderB*,
311
+ # then for every one task that is run using *capacityProviderA*, four
312
+ # tasks would use *capacityProviderB*.
313
+ # @return [Integer]
314
+ #
315
+ # @!attribute [rw] base
316
+ # The *base* value designates how many tasks, at a minimum, to run on
317
+ # the specified capacity provider. Only one capacity provider in a
318
+ # capacity provider strategy can have a *base* defined.
319
+ # @return [Integer]
320
+ #
321
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/CapacityProviderStrategyItem AWS API Documentation
322
+ #
323
+ class CapacityProviderStrategyItem < Struct.new(
324
+ :capacity_provider,
325
+ :weight,
326
+ :base)
327
+ include Aws::Structure
328
+ end
329
+
166
330
  # These errors are usually caused by a client action, such as using an
167
331
  # action or resource on behalf of a user that doesn't have permissions
168
332
  # to use the action or resource, or specifying an identifier that is not
@@ -278,6 +442,42 @@ module Aws::ECS
278
442
  # CloudWatch Container Insights is enabled or disabled for a cluster.
279
443
  # @return [Array<Types::ClusterSetting>]
280
444
  #
445
+ # @!attribute [rw] capacity_providers
446
+ # The capacity providers associated with the cluster.
447
+ # @return [Array<String>]
448
+ #
449
+ # @!attribute [rw] default_capacity_provider_strategy
450
+ # The default capacity provider strategy for the cluster. When
451
+ # services or tasks are run in the cluster with no launch type or
452
+ # capacity provider strategy specified, the default capacity provider
453
+ # strategy is used.
454
+ # @return [Array<Types::CapacityProviderStrategyItem>]
455
+ #
456
+ # @!attribute [rw] attachments
457
+ # The resources attached to a cluster. When using a capacity provider
458
+ # with a cluster, the Auto Scaling plan that is created will be
459
+ # returned as a cluster attachment.
460
+ # @return [Array<Types::Attachment>]
461
+ #
462
+ # @!attribute [rw] attachments_status
463
+ # The status of the capacity providers associated with the cluster.
464
+ # The following are the states that will be returned:
465
+ #
466
+ # UPDATE\_IN\_PROGRESS
467
+ #
468
+ # : The available capacity providers for the cluster are updating.
469
+ # This occurs when the Auto Scaling plan is provisioning or
470
+ # deprovisioning.
471
+ #
472
+ # UPDATE\_COMPLETE
473
+ #
474
+ # : The capacity providers have successfully updated.
475
+ #
476
+ # UPDATE\_FAILED
477
+ #
478
+ # : The capacity provider updates failed.
479
+ # @return [String]
480
+ #
281
481
  # @see http://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/Cluster AWS API Documentation
282
482
  #
283
483
  class Cluster < Struct.new(
@@ -290,7 +490,11 @@ module Aws::ECS
290
490
  :active_services_count,
291
491
  :statistics,
292
492
  :tags,
293
- :settings)
493
+ :settings,
494
+ :capacity_providers,
495
+ :default_capacity_provider_strategy,
496
+ :attachments,
497
+ :attachments_status)
294
498
  include Aws::Structure
295
499
  end
296
500
 
@@ -1544,6 +1748,10 @@ module Aws::ECS
1544
1748
  # The EC2 instance ID of the container instance.
1545
1749
  # @return [String]
1546
1750
  #
1751
+ # @!attribute [rw] capacity_provider_name
1752
+ # The capacity provider associated with the container instance.
1753
+ # @return [String]
1754
+ #
1547
1755
  # @!attribute [rw] version
1548
1756
  # The version counter for the container instance. Every time a
1549
1757
  # container instance experiences a change that triggers a CloudWatch
@@ -1688,6 +1896,7 @@ module Aws::ECS
1688
1896
  class ContainerInstance < Struct.new(
1689
1897
  :container_instance_arn,
1690
1898
  :ec2_instance_id,
1899
+ :capacity_provider_name,
1691
1900
  :version,
1692
1901
  :version_info,
1693
1902
  :remaining_resources,
@@ -1854,6 +2063,91 @@ module Aws::ECS
1854
2063
  include Aws::Structure
1855
2064
  end
1856
2065
 
2066
+ # @note When making an API call, you may pass CreateCapacityProviderRequest
2067
+ # data as a hash:
2068
+ #
2069
+ # {
2070
+ # name: "String", # required
2071
+ # auto_scaling_group_provider: { # required
2072
+ # auto_scaling_group_arn: "String", # required
2073
+ # managed_scaling: {
2074
+ # status: "ENABLED", # accepts ENABLED, DISABLED
2075
+ # target_capacity: 1,
2076
+ # minimum_scaling_step_size: 1,
2077
+ # maximum_scaling_step_size: 1,
2078
+ # },
2079
+ # managed_termination_protection: "ENABLED", # accepts ENABLED, DISABLED
2080
+ # },
2081
+ # tags: [
2082
+ # {
2083
+ # key: "TagKey",
2084
+ # value: "TagValue",
2085
+ # },
2086
+ # ],
2087
+ # }
2088
+ #
2089
+ # @!attribute [rw] name
2090
+ # The name of the capacity provider. Up to 255 characters are allowed,
2091
+ # including letters (upper and lowercase), numbers, underscores, and
2092
+ # hyphens. The name cannot be prefixed with "`aws`", "`ecs`", or
2093
+ # "`fargate`".
2094
+ # @return [String]
2095
+ #
2096
+ # @!attribute [rw] auto_scaling_group_provider
2097
+ # The details of the Auto Scaling group for the capacity provider.
2098
+ # @return [Types::AutoScalingGroupProvider]
2099
+ #
2100
+ # @!attribute [rw] tags
2101
+ # The metadata that you apply to the capacity provider to help you
2102
+ # categorize and organize them. Each tag consists of a key and an
2103
+ # optional value, both of which you define.
2104
+ #
2105
+ # The following basic restrictions apply to tags:
2106
+ #
2107
+ # * Maximum number of tags per resource - 50
2108
+ #
2109
+ # * For each resource, each tag key must be unique, and each tag key
2110
+ # can have only one value.
2111
+ #
2112
+ # * Maximum key length - 128 Unicode characters in UTF-8
2113
+ #
2114
+ # * Maximum value length - 256 Unicode characters in UTF-8
2115
+ #
2116
+ # * If your tagging schema is used across multiple services and
2117
+ # resources, remember that other services may have restrictions on
2118
+ # allowed characters. Generally allowed characters are: letters,
2119
+ # numbers, and spaces representable in UTF-8, and the following
2120
+ # characters: + - = . \_ : / @.
2121
+ #
2122
+ # * Tag keys and values are case-sensitive.
2123
+ #
2124
+ # * Do not use `aws:`, `AWS:`, or any upper or lowercase combination
2125
+ # of such as a prefix for either keys or values as it is reserved
2126
+ # for AWS use. You cannot edit or delete tag keys or values with
2127
+ # this prefix. Tags with this prefix do not count against your tags
2128
+ # per resource limit.
2129
+ # @return [Array<Types::Tag>]
2130
+ #
2131
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/CreateCapacityProviderRequest AWS API Documentation
2132
+ #
2133
+ class CreateCapacityProviderRequest < Struct.new(
2134
+ :name,
2135
+ :auto_scaling_group_provider,
2136
+ :tags)
2137
+ include Aws::Structure
2138
+ end
2139
+
2140
+ # @!attribute [rw] capacity_provider
2141
+ # The full description of the new capacity provider.
2142
+ # @return [Types::CapacityProvider]
2143
+ #
2144
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/CreateCapacityProviderResponse AWS API Documentation
2145
+ #
2146
+ class CreateCapacityProviderResponse < Struct.new(
2147
+ :capacity_provider)
2148
+ include Aws::Structure
2149
+ end
2150
+
1857
2151
  # @note When making an API call, you may pass CreateClusterRequest
1858
2152
  # data as a hash:
1859
2153
  #
@@ -1871,6 +2165,14 @@ module Aws::ECS
1871
2165
  # value: "String",
1872
2166
  # },
1873
2167
  # ],
2168
+ # capacity_providers: ["String"],
2169
+ # default_capacity_provider_strategy: [
2170
+ # {
2171
+ # capacity_provider: "String", # required
2172
+ # weight: 1,
2173
+ # base: 1,
2174
+ # },
2175
+ # ],
1874
2176
  # }
1875
2177
  #
1876
2178
  # @!attribute [rw] cluster_name
@@ -1917,12 +2219,62 @@ module Aws::ECS
1917
2219
  # with PutAccountSetting or PutAccountSettingDefault.
1918
2220
  # @return [Array<Types::ClusterSetting>]
1919
2221
  #
2222
+ # @!attribute [rw] capacity_providers
2223
+ # The short name or full Amazon Resource Name (ARN) of one or more
2224
+ # capacity providers to associate with the cluster.
2225
+ #
2226
+ # If specifying a capacity provider that uses an Auto Scaling group,
2227
+ # the capacity provider must already be created and not already
2228
+ # associated with another cluster. New capacity providers can be
2229
+ # created with the CreateCapacityProvider API operation.
2230
+ #
2231
+ # To use a AWS Fargate capacity provider, specify either the `FARGATE`
2232
+ # or `FARGATE_SPOT` capacity providers. The AWS Fargate capacity
2233
+ # providers are available to all accounts and only need to be
2234
+ # associated with a cluster to be used.
2235
+ #
2236
+ # The PutClusterCapacityProviders API operation is used to update the
2237
+ # list of available capacity providers for a cluster after the cluster
2238
+ # is created.
2239
+ # @return [Array<String>]
2240
+ #
2241
+ # @!attribute [rw] default_capacity_provider_strategy
2242
+ # The capacity provider strategy to use by default for the cluster.
2243
+ #
2244
+ # When creating a service or running a task on a cluster, if no
2245
+ # capacity provider or launch type is specified then the default
2246
+ # capacity provider strategy for the cluster is used.
2247
+ #
2248
+ # A capacity provider strategy consists of one or more capacity
2249
+ # providers along with the `base` and `weight` to assign to them. A
2250
+ # capacity provider must be associated with the cluster to be used in
2251
+ # a capacity provider strategy. The PutClusterCapacityProviders API is
2252
+ # used to associate a capacity provider with a cluster. Only capacity
2253
+ # providers with an `ACTIVE` or `UPDATING` status can be used.
2254
+ #
2255
+ # If specifying a capacity provider that uses an Auto Scaling group,
2256
+ # the capacity provider must already be created. New capacity
2257
+ # providers can be created with the CreateCapacityProvider API
2258
+ # operation.
2259
+ #
2260
+ # To use a AWS Fargate capacity provider, specify either the `FARGATE`
2261
+ # or `FARGATE_SPOT` capacity providers. The AWS Fargate capacity
2262
+ # providers are available to all accounts and only need to be
2263
+ # associated with a cluster to be used.
2264
+ #
2265
+ # If a default capacity provider strategy is not defined for a cluster
2266
+ # during creation, it can be defined later with the
2267
+ # PutClusterCapacityProviders API operation.
2268
+ # @return [Array<Types::CapacityProviderStrategyItem>]
2269
+ #
1920
2270
  # @see http://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/CreateClusterRequest AWS API Documentation
1921
2271
  #
1922
2272
  class CreateClusterRequest < Struct.new(
1923
2273
  :cluster_name,
1924
2274
  :tags,
1925
- :settings)
2275
+ :settings,
2276
+ :capacity_providers,
2277
+ :default_capacity_provider_strategy)
1926
2278
  include Aws::Structure
1927
2279
  end
1928
2280
 
@@ -1963,6 +2315,13 @@ module Aws::ECS
1963
2315
  # desired_count: 1,
1964
2316
  # client_token: "String",
1965
2317
  # launch_type: "EC2", # accepts EC2, FARGATE
2318
+ # capacity_provider_strategy: [
2319
+ # {
2320
+ # capacity_provider: "String", # required
2321
+ # weight: 1,
2322
+ # base: 1,
2323
+ # },
2324
+ # ],
1966
2325
  # platform_version: "String",
1967
2326
  # role: "String",
1968
2327
  # deployment_configuration: {
@@ -2120,11 +2479,44 @@ module Aws::ECS
2120
2479
  # see [Amazon ECS Launch Types][1] in the *Amazon Elastic Container
2121
2480
  # Service Developer Guide*.
2122
2481
  #
2482
+ # If a `launchType` is specified, the `capacityProviderStrategy`
2483
+ # parameter must be omitted.
2484
+ #
2123
2485
  #
2124
2486
  #
2125
2487
  # [1]: https://docs.aws.amazon.com/AmazonECS/latest/developerguide/launch_types.html
2126
2488
  # @return [String]
2127
2489
  #
2490
+ # @!attribute [rw] capacity_provider_strategy
2491
+ # The capacity provider strategy to use for the service.
2492
+ #
2493
+ # A capacity provider strategy consists of one or more capacity
2494
+ # providers along with the `base` and `weight` to assign to them. A
2495
+ # capacity provider must be associated with the cluster to be used in
2496
+ # a capacity provider strategy. The PutClusterCapacityProviders API is
2497
+ # used to associate a capacity provider with a cluster. Only capacity
2498
+ # providers with an `ACTIVE` or `UPDATING` status can be used.
2499
+ #
2500
+ # If a `capacityProviderStrategy` is specified, the `launchType`
2501
+ # parameter must be omitted. If no `capacityProviderStrategy` or
2502
+ # `launchType` is specified, the `defaultCapacityProviderStrategy` for
2503
+ # the cluster is used.
2504
+ #
2505
+ # If specifying a capacity provider that uses an Auto Scaling group,
2506
+ # the capacity provider must already be created. New capacity
2507
+ # providers can be created with the CreateCapacityProvider API
2508
+ # operation.
2509
+ #
2510
+ # To use a AWS Fargate capacity provider, specify either the `FARGATE`
2511
+ # or `FARGATE_SPOT` capacity providers. The AWS Fargate capacity
2512
+ # providers are available to all accounts and only need to be
2513
+ # associated with a cluster to be used.
2514
+ #
2515
+ # The PutClusterCapacityProviders API operation is used to update the
2516
+ # list of available capacity providers for a cluster after the cluster
2517
+ # is created.
2518
+ # @return [Array<Types::CapacityProviderStrategyItem>]
2519
+ #
2128
2520
  # @!attribute [rw] platform_version
2129
2521
  # The platform version that your tasks in the service are running on.
2130
2522
  # A platform version is specified only for tasks using the Fargate
@@ -2152,10 +2544,10 @@ module Aws::ECS
2152
2544
  # specify a role here. The service-linked role is required if your
2153
2545
  # task definition uses the `awsvpc` network mode or if the service is
2154
2546
  # configured to use service discovery, an external deployment
2155
- # controller, or multiple target groups in which case you should not
2156
- # specify a role here. For more information, see [Using Service-Linked
2157
- # Roles for Amazon ECS][1] in the *Amazon Elastic Container Service
2158
- # Developer Guide*.
2547
+ # controller, multiple target groups, or Elastic Inference
2548
+ # accelerators in which case you should not specify a role here. For
2549
+ # more information, see [Using Service-Linked Roles for Amazon ECS][1]
2550
+ # in the *Amazon Elastic Container Service Developer Guide*.
2159
2551
  #
2160
2552
  # If your specified role has a path other than `/`, then you must
2161
2553
  # either specify the full role ARN (this is recommended) or prefix the
@@ -2312,6 +2704,7 @@ module Aws::ECS
2312
2704
  :desired_count,
2313
2705
  :client_token,
2314
2706
  :launch_type,
2707
+ :capacity_provider_strategy,
2315
2708
  :platform_version,
2316
2709
  :role,
2317
2710
  :deployment_configuration,
@@ -2379,6 +2772,13 @@ module Aws::ECS
2379
2772
  # },
2380
2773
  # ],
2381
2774
  # launch_type: "EC2", # accepts EC2, FARGATE
2775
+ # capacity_provider_strategy: [
2776
+ # {
2777
+ # capacity_provider: "String", # required
2778
+ # weight: 1,
2779
+ # base: 1,
2780
+ # },
2781
+ # ],
2382
2782
  # platform_version: "String",
2383
2783
  # scale: {
2384
2784
  # value: 1.0,
@@ -2434,11 +2834,44 @@ module Aws::ECS
2434
2834
  # information, see [Amazon ECS Launch Types][1] in the *Amazon Elastic
2435
2835
  # Container Service Developer Guide*.
2436
2836
  #
2837
+ # If a `launchType` is specified, the `capacityProviderStrategy`
2838
+ # parameter must be omitted.
2839
+ #
2437
2840
  #
2438
2841
  #
2439
2842
  # [1]: https://docs.aws.amazon.com/AmazonECS/latest/developerguide/launch_types.html
2440
2843
  # @return [String]
2441
2844
  #
2845
+ # @!attribute [rw] capacity_provider_strategy
2846
+ # The capacity provider strategy to use for the task set.
2847
+ #
2848
+ # A capacity provider strategy consists of one or more capacity
2849
+ # providers along with the `base` and `weight` to assign to them. A
2850
+ # capacity provider must be associated with the cluster to be used in
2851
+ # a capacity provider strategy. The PutClusterCapacityProviders API is
2852
+ # used to associate a capacity provider with a cluster. Only capacity
2853
+ # providers with an `ACTIVE` or `UPDATING` status can be used.
2854
+ #
2855
+ # If a `capacityProviderStrategy` is specified, the `launchType`
2856
+ # parameter must be omitted. If no `capacityProviderStrategy` or
2857
+ # `launchType` is specified, the `defaultCapacityProviderStrategy` for
2858
+ # the cluster is used.
2859
+ #
2860
+ # If specifying a capacity provider that uses an Auto Scaling group,
2861
+ # the capacity provider must already be created. New capacity
2862
+ # providers can be created with the CreateCapacityProvider API
2863
+ # operation.
2864
+ #
2865
+ # To use a AWS Fargate capacity provider, specify either the `FARGATE`
2866
+ # or `FARGATE_SPOT` capacity providers. The AWS Fargate capacity
2867
+ # providers are available to all accounts and only need to be
2868
+ # associated with a cluster to be used.
2869
+ #
2870
+ # The PutClusterCapacityProviders API operation is used to update the
2871
+ # list of available capacity providers for a cluster after the cluster
2872
+ # is created.
2873
+ # @return [Array<Types::CapacityProviderStrategyItem>]
2874
+ #
2442
2875
  # @!attribute [rw] platform_version
2443
2876
  # The platform version that the tasks in the task set should use. A
2444
2877
  # platform version is specified only for tasks using the Fargate
@@ -2467,6 +2900,7 @@ module Aws::ECS
2467
2900
  :load_balancers,
2468
2901
  :service_registries,
2469
2902
  :launch_type,
2903
+ :capacity_provider_strategy,
2470
2904
  :platform_version,
2471
2905
  :scale,
2472
2906
  :client_token)
@@ -2764,6 +3198,10 @@ module Aws::ECS
2764
3198
  # The Unix timestamp for when the service deployment was last updated.
2765
3199
  # @return [Time]
2766
3200
  #
3201
+ # @!attribute [rw] capacity_provider_strategy
3202
+ # The capacity provider strategy that the deployment is using.
3203
+ # @return [Array<Types::CapacityProviderStrategyItem>]
3204
+ #
2767
3205
  # @!attribute [rw] launch_type
2768
3206
  # The launch type the tasks in the service are using. For more
2769
3207
  # information, see [Amazon ECS Launch Types][1] in the *Amazon Elastic
@@ -2804,6 +3242,7 @@ module Aws::ECS
2804
3242
  :running_count,
2805
3243
  :created_at,
2806
3244
  :updated_at,
3245
+ :capacity_provider_strategy,
2807
3246
  :launch_type,
2808
3247
  :platform_version,
2809
3248
  :network_configuration)
@@ -3022,12 +3461,96 @@ module Aws::ECS
3022
3461
  include Aws::Structure
3023
3462
  end
3024
3463
 
3464
+ # @note When making an API call, you may pass DescribeCapacityProvidersRequest
3465
+ # data as a hash:
3466
+ #
3467
+ # {
3468
+ # capacity_providers: ["String"],
3469
+ # include: ["TAGS"], # accepts TAGS
3470
+ # max_results: 1,
3471
+ # next_token: "String",
3472
+ # }
3473
+ #
3474
+ # @!attribute [rw] capacity_providers
3475
+ # The short name or full Amazon Resource Name (ARN) of one or more
3476
+ # capacity providers. Up to `100` capacity providers can be described
3477
+ # in an action.
3478
+ # @return [Array<String>]
3479
+ #
3480
+ # @!attribute [rw] include
3481
+ # Specifies whether or not you want to see the resource tags for the
3482
+ # capacity provider. If `TAGS` is specified, the tags are included in
3483
+ # the response. If this field is omitted, tags are not included in the
3484
+ # response.
3485
+ # @return [Array<String>]
3486
+ #
3487
+ # @!attribute [rw] max_results
3488
+ # The maximum number of account setting results returned by
3489
+ # `DescribeCapacityProviders` in paginated output. When this parameter
3490
+ # is used, `DescribeCapacityProviders` only returns `maxResults`
3491
+ # results in a single page along with a `nextToken` response element.
3492
+ # The remaining results of the initial request can be seen by sending
3493
+ # another `DescribeCapacityProviders` request with the returned
3494
+ # `nextToken` value. This value can be between 1 and 10. If this
3495
+ # parameter is not used, then `DescribeCapacityProviders` returns up
3496
+ # to 10 results and a `nextToken` value if applicable.
3497
+ # @return [Integer]
3498
+ #
3499
+ # @!attribute [rw] next_token
3500
+ # The `nextToken` value returned from a previous paginated
3501
+ # `DescribeCapacityProviders` request where `maxResults` was used and
3502
+ # the results exceeded the value of that parameter. Pagination
3503
+ # continues from the end of the previous results that returned the
3504
+ # `nextToken` value.
3505
+ #
3506
+ # <note markdown="1"> This token should be treated as an opaque identifier that is only
3507
+ # used to retrieve the next items in a list and not for other
3508
+ # programmatic purposes.
3509
+ #
3510
+ # </note>
3511
+ # @return [String]
3512
+ #
3513
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/DescribeCapacityProvidersRequest AWS API Documentation
3514
+ #
3515
+ class DescribeCapacityProvidersRequest < Struct.new(
3516
+ :capacity_providers,
3517
+ :include,
3518
+ :max_results,
3519
+ :next_token)
3520
+ include Aws::Structure
3521
+ end
3522
+
3523
+ # @!attribute [rw] capacity_providers
3524
+ # The list of capacity providers.
3525
+ # @return [Array<Types::CapacityProvider>]
3526
+ #
3527
+ # @!attribute [rw] failures
3528
+ # Any failures associated with the call.
3529
+ # @return [Array<Types::Failure>]
3530
+ #
3531
+ # @!attribute [rw] next_token
3532
+ # The `nextToken` value to include in a future
3533
+ # `DescribeCapacityProviders` request. When the results of a
3534
+ # `DescribeCapacityProviders` request exceed `maxResults`, this value
3535
+ # can be used to retrieve the next page of results. This value is
3536
+ # `null` when there are no more results to return.
3537
+ # @return [String]
3538
+ #
3539
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/DescribeCapacityProvidersResponse AWS API Documentation
3540
+ #
3541
+ class DescribeCapacityProvidersResponse < Struct.new(
3542
+ :capacity_providers,
3543
+ :failures,
3544
+ :next_token)
3545
+ include Aws::Structure
3546
+ end
3547
+
3025
3548
  # @note When making an API call, you may pass DescribeClustersRequest
3026
3549
  # data as a hash:
3027
3550
  #
3028
3551
  # {
3029
3552
  # clusters: ["String"],
3030
- # include: ["STATISTICS"], # accepts STATISTICS, TAGS
3553
+ # include: ["ATTACHMENTS"], # accepts ATTACHMENTS, SETTINGS, STATISTICS, TAGS
3031
3554
  # }
3032
3555
  #
3033
3556
  # @!attribute [rw] clusters
@@ -3037,8 +3560,18 @@ module Aws::ECS
3037
3560
  # @return [Array<String>]
3038
3561
  #
3039
3562
  # @!attribute [rw] include
3040
- # Additional information about your clusters to be separated by launch
3041
- # type, including:
3563
+ # Whether to include additional information about your clusters in the
3564
+ # response. If this field is omitted, the attachments, statistics, and
3565
+ # tags are not included.
3566
+ #
3567
+ # If `ATTACHMENTS` is specified, the attachments for the container
3568
+ # instances or tasks within the cluster are included.
3569
+ #
3570
+ # If `SETTINGS` is specified, the settings for the cluster are
3571
+ # included.
3572
+ #
3573
+ # If `STATISTICS` is specified, the following additional information,
3574
+ # separated by launch type, is included:
3042
3575
  #
3043
3576
  # * runningEC2TasksCount
3044
3577
  #
@@ -3055,6 +3588,9 @@ module Aws::ECS
3055
3588
  # * drainingEC2ServiceCount
3056
3589
  #
3057
3590
  # * drainingFargateServiceCount
3591
+ #
3592
+ # If `TAGS` is specified, the metadata tags associated with the
3593
+ # cluster are included.
3058
3594
  # @return [Array<String>]
3059
3595
  #
3060
3596
  # @see http://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/DescribeClustersRequest AWS API Documentation
@@ -3583,10 +4119,18 @@ module Aws::ECS
3583
4119
  #
3584
4120
  # @!attribute [rw] options
3585
4121
  # The options to use when configuring the log router. This field is
3586
- # optional and can be used to add additional metadata, such as the
3587
- # task, task definition, cluster, and container instance details to
3588
- # the log event. If specified, the syntax to use is
3589
- # `"options":\{"enable-ecs-log-metadata":"true|false"\}`.
4122
+ # optional and can be used to specify a custom configuration file or
4123
+ # to add additional metadata, such as the task, task definition,
4124
+ # cluster, and container instance details to the log event. If
4125
+ # specified, the syntax to use is
4126
+ # `"options":\{"enable-ecs-log-metadata":"true|false","config-file-type:"s3|file","config-file-value":"arn:aws:s3:::mybucket/fluent.conf|filepath"\}`.
4127
+ # For more information, see [Creating a Task Definition that Uses a
4128
+ # FireLens Configuration][1] in the *Amazon Elastic Container Service
4129
+ # Developer Guide*.
4130
+ #
4131
+ #
4132
+ #
4133
+ # [1]: https://docs.aws.amazon.com/AmazonECS/latest/developerguide/using_firelens.html#firelens-taskdef
3590
4134
  # @return [Hash<String,String>]
3591
4135
  #
3592
4136
  # @see http://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/FirelensConfiguration AWS API Documentation
@@ -4998,6 +5542,66 @@ module Aws::ECS
4998
5542
  include Aws::Structure
4999
5543
  end
5000
5544
 
5545
+ # The managed scaling settings for the Auto Scaling group capacity
5546
+ # provider.
5547
+ #
5548
+ # When managed scaling is enabled, Amazon ECS manages the scale-in and
5549
+ # scale-out actions of the Auto Scaling group. Amazon ECS manages a
5550
+ # target tracking scaling policy using an Amazon ECS-managed CloudWatch
5551
+ # metric with the specified `targetCapacity` value as the target value
5552
+ # for the metric. For more information, see [Using Managed Scaling][1]
5553
+ # in the *Amazon Elastic Container Service Developer Guide*.
5554
+ #
5555
+ # If managed scaling is disabled, the user must manage the scaling of
5556
+ # the Auto Scaling group.
5557
+ #
5558
+ #
5559
+ #
5560
+ # [1]: https://docs.aws.amazon.com/AmazonECS/latest/developerguide/asg-capacity-providers.html#asg-capacity-providers-managed-scaling
5561
+ #
5562
+ # @note When making an API call, you may pass ManagedScaling
5563
+ # data as a hash:
5564
+ #
5565
+ # {
5566
+ # status: "ENABLED", # accepts ENABLED, DISABLED
5567
+ # target_capacity: 1,
5568
+ # minimum_scaling_step_size: 1,
5569
+ # maximum_scaling_step_size: 1,
5570
+ # }
5571
+ #
5572
+ # @!attribute [rw] status
5573
+ # Whether or not to enable managed scaling for the capacity provider.
5574
+ # @return [String]
5575
+ #
5576
+ # @!attribute [rw] target_capacity
5577
+ # The target capacity value for the capacity provider. The specified
5578
+ # value must be greater than `0` and less than or equal to `100`. A
5579
+ # value of `100` will result in the Amazon EC2 instances in your Auto
5580
+ # Scaling group being completely utilized.
5581
+ # @return [Integer]
5582
+ #
5583
+ # @!attribute [rw] minimum_scaling_step_size
5584
+ # The minimum number of container instances that Amazon ECS will scale
5585
+ # in or scale out at one time. If this parameter is omitted, the
5586
+ # default value of `1` is used.
5587
+ # @return [Integer]
5588
+ #
5589
+ # @!attribute [rw] maximum_scaling_step_size
5590
+ # The maximum number of container instances that Amazon ECS will scale
5591
+ # in or scale out at one time. If this parameter is omitted, the
5592
+ # default value of `10000` is used.
5593
+ # @return [Integer]
5594
+ #
5595
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/ManagedScaling AWS API Documentation
5596
+ #
5597
+ class ManagedScaling < Struct.new(
5598
+ :status,
5599
+ :target_capacity,
5600
+ :minimum_scaling_step_size,
5601
+ :maximum_scaling_step_size)
5602
+ include Aws::Structure
5603
+ end
5604
+
5001
5605
  # Details on a volume mount point that is used in a container
5002
5606
  # definition.
5003
5607
  #
@@ -5578,6 +6182,91 @@ module Aws::ECS
5578
6182
  include Aws::Structure
5579
6183
  end
5580
6184
 
6185
+ # @note When making an API call, you may pass PutClusterCapacityProvidersRequest
6186
+ # data as a hash:
6187
+ #
6188
+ # {
6189
+ # cluster: "String", # required
6190
+ # capacity_providers: ["String"], # required
6191
+ # default_capacity_provider_strategy: [ # required
6192
+ # {
6193
+ # capacity_provider: "String", # required
6194
+ # weight: 1,
6195
+ # base: 1,
6196
+ # },
6197
+ # ],
6198
+ # }
6199
+ #
6200
+ # @!attribute [rw] cluster
6201
+ # The short name or full Amazon Resource Name (ARN) of the cluster to
6202
+ # modify the capacity provider settings for. If you do not specify a
6203
+ # cluster, the default cluster is assumed.
6204
+ # @return [String]
6205
+ #
6206
+ # @!attribute [rw] capacity_providers
6207
+ # The short name or full Amazon Resource Name (ARN) of one or more
6208
+ # capacity providers to associate with the cluster.
6209
+ #
6210
+ # If specifying a capacity provider that uses an Auto Scaling group,
6211
+ # the capacity provider must already be created. New capacity
6212
+ # providers can be created with the CreateCapacityProvider API
6213
+ # operation.
6214
+ #
6215
+ # To use a AWS Fargate capacity provider, specify either the `FARGATE`
6216
+ # or `FARGATE_SPOT` capacity providers. The AWS Fargate capacity
6217
+ # providers are available to all accounts and only need to be
6218
+ # associated with a cluster to be used.
6219
+ # @return [Array<String>]
6220
+ #
6221
+ # @!attribute [rw] default_capacity_provider_strategy
6222
+ # The capacity provider strategy to use by default for the cluster.
6223
+ #
6224
+ # When creating a service or running a task on a cluster, if no
6225
+ # capacity provider or launch type is specified then the default
6226
+ # capacity provider strategy for the cluster is used.
6227
+ #
6228
+ # A capacity provider strategy consists of one or more capacity
6229
+ # providers along with the `base` and `weight` to assign to them. A
6230
+ # capacity provider must be associated with the cluster to be used in
6231
+ # a capacity provider strategy. The PutClusterCapacityProviders API is
6232
+ # used to associate a capacity provider with a cluster. Only capacity
6233
+ # providers with an `ACTIVE` or `UPDATING` status can be used.
6234
+ #
6235
+ # If specifying a capacity provider that uses an Auto Scaling group,
6236
+ # the capacity provider must already be created. New capacity
6237
+ # providers can be created with the CreateCapacityProvider API
6238
+ # operation.
6239
+ #
6240
+ # To use a AWS Fargate capacity provider, specify either the `FARGATE`
6241
+ # or `FARGATE_SPOT` capacity providers. The AWS Fargate capacity
6242
+ # providers are available to all accounts and only need to be
6243
+ # associated with a cluster to be used.
6244
+ # @return [Array<Types::CapacityProviderStrategyItem>]
6245
+ #
6246
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/PutClusterCapacityProvidersRequest AWS API Documentation
6247
+ #
6248
+ class PutClusterCapacityProvidersRequest < Struct.new(
6249
+ :cluster,
6250
+ :capacity_providers,
6251
+ :default_capacity_provider_strategy)
6252
+ include Aws::Structure
6253
+ end
6254
+
6255
+ # @!attribute [rw] cluster
6256
+ # A regional grouping of one or more container instances on which you
6257
+ # can run task requests. Each account receives a default cluster the
6258
+ # first time you use the Amazon ECS service, but you may also create
6259
+ # other clusters. Clusters may contain more than one instance type
6260
+ # simultaneously.
6261
+ # @return [Types::Cluster]
6262
+ #
6263
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/PutClusterCapacityProvidersResponse AWS API Documentation
6264
+ #
6265
+ class PutClusterCapacityProvidersResponse < Struct.new(
6266
+ :cluster)
6267
+ include Aws::Structure
6268
+ end
6269
+
5581
6270
  # @note When making an API call, you may pass RegisterContainerInstanceRequest
5582
6271
  # data as a hash:
5583
6272
  #
@@ -6393,6 +7082,13 @@ module Aws::ECS
6393
7082
  # data as a hash:
6394
7083
  #
6395
7084
  # {
7085
+ # capacity_provider_strategy: [
7086
+ # {
7087
+ # capacity_provider: "String", # required
7088
+ # weight: 1,
7089
+ # base: 1,
7090
+ # },
7091
+ # ],
6396
7092
  # cluster: "String",
6397
7093
  # count: 1,
6398
7094
  # enable_ecs_managed_tags: false,
@@ -6463,6 +7159,36 @@ module Aws::ECS
6463
7159
  # task_definition: "String", # required
6464
7160
  # }
6465
7161
  #
7162
+ # @!attribute [rw] capacity_provider_strategy
7163
+ # The capacity provider strategy to use for the task.
7164
+ #
7165
+ # A capacity provider strategy consists of one or more capacity
7166
+ # providers along with the `base` and `weight` to assign to them. A
7167
+ # capacity provider must be associated with the cluster to be used in
7168
+ # a capacity provider strategy. The PutClusterCapacityProviders API is
7169
+ # used to associate a capacity provider with a cluster. Only capacity
7170
+ # providers with an `ACTIVE` or `UPDATING` status can be used.
7171
+ #
7172
+ # If a `capacityProviderStrategy` is specified, the `launchType`
7173
+ # parameter must be omitted. If no `capacityProviderStrategy` or
7174
+ # `launchType` is specified, the `defaultCapacityProviderStrategy` for
7175
+ # the cluster is used.
7176
+ #
7177
+ # If specifying a capacity provider that uses an Auto Scaling group,
7178
+ # the capacity provider must already be created. New capacity
7179
+ # providers can be created with the CreateCapacityProvider API
7180
+ # operation.
7181
+ #
7182
+ # To use a AWS Fargate capacity provider, specify either the `FARGATE`
7183
+ # or `FARGATE_SPOT` capacity providers. The AWS Fargate capacity
7184
+ # providers are available to all accounts and only need to be
7185
+ # associated with a cluster to be used.
7186
+ #
7187
+ # The PutClusterCapacityProviders API operation is used to update the
7188
+ # list of available capacity providers for a cluster after the cluster
7189
+ # is created.
7190
+ # @return [Array<Types::CapacityProviderStrategyItem>]
7191
+ #
6466
7192
  # @!attribute [rw] cluster
6467
7193
  # The short name or full Amazon Resource Name (ARN) of the cluster on
6468
7194
  # which to run your task. If you do not specify a cluster, the default
@@ -6495,6 +7221,9 @@ module Aws::ECS
6495
7221
  # [Amazon ECS Launch Types][1] in the *Amazon Elastic Container
6496
7222
  # Service Developer Guide*.
6497
7223
  #
7224
+ # If a `launchType` is specified, the `capacityProviderStrategy`
7225
+ # parameter must be omitted.
7226
+ #
6498
7227
  #
6499
7228
  #
6500
7229
  # [1]: https://docs.aws.amazon.com/AmazonECS/latest/developerguide/launch_types.html
@@ -6620,6 +7349,7 @@ module Aws::ECS
6620
7349
  # @see http://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/RunTaskRequest AWS API Documentation
6621
7350
  #
6622
7351
  class RunTaskRequest < Struct.new(
7352
+ :capacity_provider_strategy,
6623
7353
  :cluster,
6624
7354
  :count,
6625
7355
  :enable_ecs_managed_tags,
@@ -6814,6 +7544,10 @@ module Aws::ECS
6814
7544
  # [1]: https://docs.aws.amazon.com/AmazonECS/latest/developerguide/launch_types.html
6815
7545
  # @return [String]
6816
7546
  #
7547
+ # @!attribute [rw] capacity_provider_strategy
7548
+ # The capacity provider strategy associated with the service.
7549
+ # @return [Array<Types::CapacityProviderStrategyItem>]
7550
+ #
6817
7551
  # @!attribute [rw] platform_version
6818
7552
  # The platform version on which to run your service. A platform
6819
7553
  # version is only specified for tasks using the Fargate launch type.
@@ -6983,6 +7717,7 @@ module Aws::ECS
6983
7717
  :running_count,
6984
7718
  :pending_count,
6985
7719
  :launch_type,
7720
+ :capacity_provider_strategy,
6986
7721
  :platform_version,
6987
7722
  :task_definition,
6988
7723
  :deployment_configuration,
@@ -7708,8 +8443,9 @@ module Aws::ECS
7708
8443
  #
7709
8444
  # @!attribute [rw] resource_arn
7710
8445
  # The Amazon Resource Name (ARN) of the resource to which to add tags.
7711
- # Currently, the supported resources are Amazon ECS tasks, services,
7712
- # task definitions, clusters, and container instances.
8446
+ # Currently, the supported resources are Amazon ECS capacity
8447
+ # providers, tasks, services, task definitions, clusters, and
8448
+ # container instances.
7713
8449
  # @return [String]
7714
8450
  #
7715
8451
  # @!attribute [rw] tags
@@ -7769,6 +8505,10 @@ module Aws::ECS
7769
8505
  # The availability zone of the task.
7770
8506
  # @return [String]
7771
8507
  #
8508
+ # @!attribute [rw] capacity_provider_name
8509
+ # The capacity provider associated with the task.
8510
+ # @return [String]
8511
+ #
7772
8512
  # @!attribute [rw] cluster_arn
7773
8513
  # The ARN of the cluster that hosts the task.
7774
8514
  # @return [String]
@@ -8025,6 +8765,7 @@ module Aws::ECS
8025
8765
  :attachments,
8026
8766
  :attributes,
8027
8767
  :availability_zone,
8768
+ :capacity_provider_name,
8028
8769
  :cluster_arn,
8029
8770
  :connectivity,
8030
8771
  :connectivity_at,
@@ -8606,6 +9347,10 @@ module Aws::ECS
8606
9347
  # [1]: https://docs.aws.amazon.com/AmazonECS/latest/developerguide/launch_types.html
8607
9348
  # @return [String]
8608
9349
  #
9350
+ # @!attribute [rw] capacity_provider_strategy
9351
+ # The capacity provider strategy associated with the task set.
9352
+ # @return [Array<Types::CapacityProviderStrategyItem>]
9353
+ #
8609
9354
  # @!attribute [rw] platform_version
8610
9355
  # The platform version on which the tasks in the task set are running.
8611
9356
  # A platform version is only specified for tasks using the Fargate
@@ -8682,6 +9427,7 @@ module Aws::ECS
8682
9427
  :created_at,
8683
9428
  :updated_at,
8684
9429
  :launch_type,
9430
+ :capacity_provider_strategy,
8685
9431
  :platform_version,
8686
9432
  :network_configuration,
8687
9433
  :load_balancers,
@@ -8774,8 +9520,9 @@ module Aws::ECS
8774
9520
  #
8775
9521
  # @!attribute [rw] resource_arn
8776
9522
  # The Amazon Resource Name (ARN) of the resource from which to delete
8777
- # tags. Currently, the supported resources are Amazon ECS tasks,
8778
- # services, task definitions, clusters, and container instances.
9523
+ # tags. Currently, the supported resources are Amazon ECS capacity
9524
+ # providers, tasks, services, task definitions, clusters, and
9525
+ # container instances.
8779
9526
  # @return [String]
8780
9527
  #
8781
9528
  # @!attribute [rw] tag_keys
@@ -8989,6 +9736,13 @@ module Aws::ECS
8989
9736
  # service: "String", # required
8990
9737
  # desired_count: 1,
8991
9738
  # task_definition: "String",
9739
+ # capacity_provider_strategy: [
9740
+ # {
9741
+ # capacity_provider: "String", # required
9742
+ # weight: 1,
9743
+ # base: 1,
9744
+ # },
9745
+ # ],
8992
9746
  # deployment_configuration: {
8993
9747
  # maximum_percent: 1,
8994
9748
  # minimum_healthy_percent: 1,
@@ -9029,6 +9783,16 @@ module Aws::ECS
9029
9783
  # after the new version is running.
9030
9784
  # @return [String]
9031
9785
  #
9786
+ # @!attribute [rw] capacity_provider_strategy
9787
+ # The capacity provider strategy to update the service to use.
9788
+ #
9789
+ # If the service is using the default capacity provider strategy for
9790
+ # the cluster, the service can be updated to use one or more capacity
9791
+ # providers. However, when a service is using a non-default capacity
9792
+ # provider strategy, the service cannot be updated to use the
9793
+ # cluster's default capacity provider strategy.
9794
+ # @return [Array<Types::CapacityProviderStrategyItem>]
9795
+ #
9032
9796
  # @!attribute [rw] deployment_configuration
9033
9797
  # Optional deployment parameters that control how many tasks run
9034
9798
  # during the deployment and the ordering of stopping and starting
@@ -9036,33 +9800,17 @@ module Aws::ECS
9036
9800
  # @return [Types::DeploymentConfiguration]
9037
9801
  #
9038
9802
  # @!attribute [rw] network_configuration
9039
- # The network configuration for the service. This parameter is
9040
- # required for task definitions that use the `awsvpc` network mode to
9041
- # receive their own elastic network interface, and it is not supported
9042
- # for other network modes. For more information, see [Task
9043
- # Networking][1] in the *Amazon Elastic Container Service Developer
9044
- # Guide*.
9045
- #
9046
- # <note markdown="1"> Updating a service to add a subnet to a list of existing subnets
9047
- # does not trigger a service deployment. For example, if your network
9048
- # configuration change is to keep the existing subnets and simply add
9049
- # another subnet to the network configuration, this does not trigger a
9050
- # new service deployment.
9051
- #
9052
- # </note>
9053
- #
9054
- #
9055
- #
9056
- # [1]: https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-networking.html
9803
+ # An object representing the network configuration for a task or
9804
+ # service.
9057
9805
  # @return [Types::NetworkConfiguration]
9058
9806
  #
9059
9807
  # @!attribute [rw] platform_version
9060
9808
  # The platform version on which your tasks in the service are running.
9061
9809
  # A platform version is only specified for tasks using the Fargate
9062
- # launch type. If one is not specified, the `LATEST` platform version
9063
- # is used by default. For more information, see [AWS Fargate Platform
9064
- # Versions][1] in the *Amazon Elastic Container Service Developer
9065
- # Guide*.
9810
+ # launch type. If a platform version is not specified, the `LATEST`
9811
+ # platform version is used by default. For more information, see [AWS
9812
+ # Fargate Platform Versions][1] in the *Amazon Elastic Container
9813
+ # Service Developer Guide*.
9066
9814
  #
9067
9815
  #
9068
9816
  #
@@ -9085,11 +9833,11 @@ module Aws::ECS
9085
9833
  # your service is configured to use a load balancer. If your
9086
9834
  # service's tasks take a while to start and respond to Elastic Load
9087
9835
  # Balancing health checks, you can specify a health check grace period
9088
- # of up to 2,147,483,647 seconds. During that time, the ECS service
9089
- # scheduler ignores the Elastic Load Balancing health check status.
9090
- # This grace period can prevent the ECS service scheduler from marking
9091
- # tasks as unhealthy and stopping them before they have time to come
9092
- # up.
9836
+ # of up to 2,147,483,647 seconds. During that time, the Amazon ECS
9837
+ # service scheduler ignores the Elastic Load Balancing health check
9838
+ # status. This grace period can prevent the ECS service scheduler from
9839
+ # marking tasks as unhealthy and stopping them before they have time
9840
+ # to come up.
9093
9841
  # @return [Integer]
9094
9842
  #
9095
9843
  # @see http://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/UpdateServiceRequest AWS API Documentation
@@ -9099,6 +9847,7 @@ module Aws::ECS
9099
9847
  :service,
9100
9848
  :desired_count,
9101
9849
  :task_definition,
9850
+ :capacity_provider_strategy,
9102
9851
  :deployment_configuration,
9103
9852
  :network_configuration,
9104
9853
  :platform_version,