aws-sdk-ecs 1.99.0 → 1.110.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -30,7 +30,7 @@ require 'aws-sdk-core/plugins/http_checksum.rb'
30
30
  require 'aws-sdk-core/plugins/checksum_algorithm.rb'
31
31
  require 'aws-sdk-core/plugins/defaults_mode.rb'
32
32
  require 'aws-sdk-core/plugins/recursion_detection.rb'
33
- require 'aws-sdk-core/plugins/signature_v4.rb'
33
+ require 'aws-sdk-core/plugins/sign.rb'
34
34
  require 'aws-sdk-core/plugins/protocols/json_rpc.rb'
35
35
 
36
36
  Aws::Plugins::GlobalConfiguration.add_identifier(:ecs)
@@ -79,8 +79,9 @@ module Aws::ECS
79
79
  add_plugin(Aws::Plugins::ChecksumAlgorithm)
80
80
  add_plugin(Aws::Plugins::DefaultsMode)
81
81
  add_plugin(Aws::Plugins::RecursionDetection)
82
- add_plugin(Aws::Plugins::SignatureV4)
82
+ add_plugin(Aws::Plugins::Sign)
83
83
  add_plugin(Aws::Plugins::Protocols::JsonRpc)
84
+ add_plugin(Aws::ECS::Plugins::Endpoints)
84
85
 
85
86
  # @overload initialize(options)
86
87
  # @param [Hash] options
@@ -297,6 +298,19 @@ module Aws::ECS
297
298
  # ** Please note ** When response stubbing is enabled, no HTTP
298
299
  # requests are made, and retries are disabled.
299
300
  #
301
+ # @option options [Aws::TokenProvider] :token_provider
302
+ # A Bearer Token Provider. This can be an instance of any one of the
303
+ # following classes:
304
+ #
305
+ # * `Aws::StaticTokenProvider` - Used for configuring static, non-refreshing
306
+ # tokens.
307
+ #
308
+ # * `Aws::SSOTokenProvider` - Used for loading tokens from AWS SSO using an
309
+ # access token generated from `aws login`.
310
+ #
311
+ # When `:token_provider` is not configured directly, the `Aws::TokenProviderChain`
312
+ # will be used to search for tokens configured for your profile in shared configuration files.
313
+ #
300
314
  # @option options [Boolean] :use_dualstack_endpoint
301
315
  # When set to `true`, dualstack enabled endpoints (with `.aws` TLD)
302
316
  # will be used if available.
@@ -310,6 +324,9 @@ module Aws::ECS
310
324
  # When `true`, request parameters are validated before
311
325
  # sending the request.
312
326
  #
327
+ # @option options [Aws::ECS::EndpointProvider] :endpoint_provider
328
+ # The endpoint provider used to resolve endpoints. Any object that responds to `#resolve_endpoint(parameters)` where `parameters` is a Struct similar to `Aws::ECS::EndpointParameters`
329
+ #
313
330
  # @option options [URI::HTTP,String] :http_proxy A proxy to send
314
331
  # requests through. Formatted like 'http://proxy.com:123'.
315
332
  #
@@ -473,7 +490,7 @@ module Aws::ECS
473
490
  # that it can manage required resources in other Amazon Web Services
474
491
  # services on your behalf. However, if the IAM user that makes the call
475
492
  # doesn't have permissions to create the service-linked role, it isn't
476
- # created. For more information, see [Using Service-Linked Roles for
493
+ # created. For more information, see [Using service-linked roles for
477
494
  # Amazon ECS][1] in the *Amazon Elastic Container Service Developer
478
495
  # Guide*.
479
496
  #
@@ -560,6 +577,28 @@ module Aws::ECS
560
577
  # when it was created, it can be defined later with the
561
578
  # PutClusterCapacityProviders API operation.
562
579
  #
580
+ # @option params [Types::ClusterServiceConnectDefaultsRequest] :service_connect_defaults
581
+ # Use this parameter to set a default Service Connect namespace. After
582
+ # you set a default Service Connect namespace, any new services with
583
+ # Service Connect turned on that are created in the cluster are added as
584
+ # client services in the namespace. This setting only applies to new
585
+ # services that set the `enabled` parameter to `true` in the
586
+ # `ServiceConnectConfiguration`. You can set the namespace of each
587
+ # service individually in the `ServiceConnectConfiguration` to override
588
+ # this default parameter.
589
+ #
590
+ # Tasks that run in a namespace can use short names to connect to
591
+ # services in the namespace. Tasks can connect to services across all of
592
+ # the clusters in the namespace. Tasks connect through a managed proxy
593
+ # container that collects logs and metrics for increased visibility.
594
+ # Only the tasks that Amazon ECS services create are supported with
595
+ # Service Connect. For more information, see [Service Connect][1] in the
596
+ # *Amazon Elastic Container Service Developer Guide*.
597
+ #
598
+ #
599
+ #
600
+ # [1]: https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-connect.html
601
+ #
563
602
  # @return [Types::CreateClusterResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
564
603
  #
565
604
  # * {Types::CreateClusterResponse#cluster #cluster} => Types::Cluster
@@ -623,6 +662,9 @@ module Aws::ECS
623
662
  # base: 1,
624
663
  # },
625
664
  # ],
665
+ # service_connect_defaults: {
666
+ # namespace: "String", # required
667
+ # },
626
668
  # })
627
669
  #
628
670
  # @example Response structure
@@ -664,6 +706,7 @@ module Aws::ECS
664
706
  # resp.cluster.attachments[0].details[0].name #=> String
665
707
  # resp.cluster.attachments[0].details[0].value #=> String
666
708
  # resp.cluster.attachments_status #=> String
709
+ # resp.cluster.service_connect_defaults.namespace #=> String
667
710
  #
668
711
  # @see http://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/CreateCluster AWS API Documentation
669
712
  #
@@ -683,8 +726,8 @@ module Aws::ECS
683
726
  # In addition to maintaining the desired count of tasks in your service,
684
727
  # you can optionally run your service behind one or more load balancers.
685
728
  # The load balancers distribute traffic across the tasks that are
686
- # associated with the service. For more information, see [Service Load
687
- # Balancing][1] in the *Amazon Elastic Container Service Developer
729
+ # associated with the service. For more information, see [Service load
730
+ # balancing][1] in the *Amazon Elastic Container Service Developer
688
731
  # Guide*.
689
732
  #
690
733
  # Tasks for services that don't use a load balancer are considered
@@ -698,8 +741,8 @@ module Aws::ECS
698
741
  # your desired number of tasks across your cluster. By default, the
699
742
  # service scheduler spreads tasks across Availability Zones. You can
700
743
  # use task placement strategies and constraints to customize task
701
- # placement decisions. For more information, see [Service Scheduler
702
- # Concepts][2] in the *Amazon Elastic Container Service Developer
744
+ # placement decisions. For more information, see [Service scheduler
745
+ # concepts][2] in the *Amazon Elastic Container Service Developer
703
746
  # Guide*.
704
747
  #
705
748
  # * `DAEMON` - The daemon scheduling strategy deploys exactly one task
@@ -709,8 +752,8 @@ module Aws::ECS
709
752
  # tasks. It also stops tasks that don't meet the placement
710
753
  # constraints. When using this strategy, you don't need to specify a
711
754
  # desired number of tasks, a task placement strategy, or use Service
712
- # Auto Scaling policies. For more information, see [Service Scheduler
713
- # Concepts][2] in the *Amazon Elastic Container Service Developer
755
+ # Auto Scaling policies. For more information, see [Service scheduler
756
+ # concepts][2] in the *Amazon Elastic Container Service Developer
714
757
  # Guide*.
715
758
  #
716
759
  # You can optionally specify a deployment configuration for your
@@ -766,38 +809,20 @@ module Aws::ECS
766
809
  # controller, you can specify only parameters that aren't controlled at
767
810
  # the task set level. The only required parameter is the service name.
768
811
  # You control your services using the CreateTaskSet operation. For more
769
- # information, see [Amazon ECS Deployment Types][3] in the *Amazon
812
+ # information, see [Amazon ECS deployment types][3] in the *Amazon
770
813
  # Elastic Container Service Developer Guide*.
771
814
  #
772
815
  # When the service scheduler launches new tasks, it determines task
773
- # placement in your cluster using the following logic:
774
- #
775
- # * Determine which of the container instances in your cluster can
776
- # support the task definition of your service. For example, they have
777
- # the required CPU, memory, ports, and container instance attributes.
778
- #
779
- # * By default, the service scheduler attempts to balance tasks across
780
- # Availability Zones in this manner. This is the case even if you can
781
- # choose a different placement strategy with the `placementStrategy`
782
- # parameter.
783
- #
784
- # * Sort the valid container instances, giving priority to instances
785
- # that have the fewest number of running tasks for this service in
786
- # their respective Availability Zone. For example, if zone A has one
787
- # running service task and zones B and C each have zero, valid
788
- # container instances in either zone B or C are considered optimal
789
- # for placement.
790
- #
791
- # * Place the new service task on a valid container instance in an
792
- # optimal Availability Zone based on the previous steps, favoring
793
- # container instances with the fewest number of running tasks for
794
- # this service.
816
+ # placement. For information about task placement and task placement
817
+ # strategies, see [Amazon ECS task placement][4] in the *Amazon Elastic
818
+ # Container Service Developer Guide*.
795
819
  #
796
820
  #
797
821
  #
798
822
  # [1]: https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-load-balancing.html
799
823
  # [2]: https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs_services.html
800
824
  # [3]: https://docs.aws.amazon.com/AmazonECS/latest/developerguide/deployment-types.html
825
+ # [4]: https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-placement.html
801
826
  #
802
827
  # @option params [String] :cluster
803
828
  # The short name or full Amazon Resource Name (ARN) of the cluster that
@@ -820,7 +845,7 @@ module Aws::ECS
820
845
  #
821
846
  # @option params [Array<Types::LoadBalancer>] :load_balancers
822
847
  # A load balancer object representing the load balancers to use with
823
- # your service. For more information, see [Service Load Balancing][1] in
848
+ # your service. For more information, see [Service load balancing][1] in
824
849
  # the *Amazon Elastic Container Service Developer Guide*.
825
850
  #
826
851
  # If the service uses the rolling update (`ECS`) deployment controller
@@ -1016,8 +1041,8 @@ module Aws::ECS
1016
1041
  # defined and you don't specify a health check grace period value, the
1017
1042
  # default value of `0` is used.
1018
1043
  #
1019
- # If you do not use an Elastic Load Balancing, we recomend that you use
1020
- # the `startPeriod` in the task definition healtch check parameters. For
1044
+ # If you do not use an Elastic Load Balancing, we recommend that you use
1045
+ # the `startPeriod` in the task definition health check parameters. For
1021
1046
  # more information, see [Health check][1].
1022
1047
  #
1023
1048
  # If your service's tasks take a while to start and respond to Elastic
@@ -1100,8 +1125,8 @@ module Aws::ECS
1100
1125
  #
1101
1126
  # @option params [Boolean] :enable_ecs_managed_tags
1102
1127
  # Specifies whether to turn on Amazon ECS managed tags for the tasks
1103
- # within the service. For more information, see [Tagging Your Amazon ECS
1104
- # Resources][1] in the *Amazon Elastic Container Service Developer
1128
+ # within the service. For more information, see [Tagging your Amazon ECS
1129
+ # resources][1] in the *Amazon Elastic Container Service Developer
1105
1130
  # Guide*.
1106
1131
  #
1107
1132
  #
@@ -1119,6 +1144,23 @@ module Aws::ECS
1119
1144
  # the service. If `true`, this enables execute command functionality on
1120
1145
  # all containers in the service tasks.
1121
1146
  #
1147
+ # @option params [Types::ServiceConnectConfiguration] :service_connect_configuration
1148
+ # The configuration for this service to discover and connect to
1149
+ # services, and be discovered by, and connected from, other services
1150
+ # within a namespace.
1151
+ #
1152
+ # Tasks that run in a namespace can use short names to connect to
1153
+ # services in the namespace. Tasks can connect to services across all of
1154
+ # the clusters in the namespace. Tasks connect through a managed proxy
1155
+ # container that collects logs and metrics for increased visibility.
1156
+ # Only the tasks that Amazon ECS services create are supported with
1157
+ # Service Connect. For more information, see [Service Connect][1] in the
1158
+ # *Amazon Elastic Container Service Developer Guide*.
1159
+ #
1160
+ #
1161
+ #
1162
+ # [1]: https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-connect.html
1163
+ #
1122
1164
  # @return [Types::CreateServiceResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1123
1165
  #
1124
1166
  # * {Types::CreateServiceResponse#service #service} => Types::Service
@@ -1282,6 +1324,11 @@ module Aws::ECS
1282
1324
  # },
1283
1325
  # maximum_percent: 1,
1284
1326
  # minimum_healthy_percent: 1,
1327
+ # alarms: {
1328
+ # alarm_names: ["String"], # required
1329
+ # enable: false, # required
1330
+ # rollback: false, # required
1331
+ # },
1285
1332
  # },
1286
1333
  # placement_constraints: [
1287
1334
  # {
@@ -1316,6 +1363,35 @@ module Aws::ECS
1316
1363
  # enable_ecs_managed_tags: false,
1317
1364
  # propagate_tags: "TASK_DEFINITION", # accepts TASK_DEFINITION, SERVICE, NONE
1318
1365
  # enable_execute_command: false,
1366
+ # service_connect_configuration: {
1367
+ # enabled: false, # required
1368
+ # namespace: "String",
1369
+ # services: [
1370
+ # {
1371
+ # port_name: "String", # required
1372
+ # discovery_name: "String",
1373
+ # client_aliases: [
1374
+ # {
1375
+ # port: 1, # required
1376
+ # dns_name: "String",
1377
+ # },
1378
+ # ],
1379
+ # ingress_port_override: 1,
1380
+ # },
1381
+ # ],
1382
+ # log_configuration: {
1383
+ # log_driver: "json-file", # required, accepts json-file, syslog, journald, gelf, fluentd, awslogs, splunk, awsfirelens
1384
+ # options: {
1385
+ # "String" => "String",
1386
+ # },
1387
+ # secret_options: [
1388
+ # {
1389
+ # name: "String", # required
1390
+ # value_from: "String", # required
1391
+ # },
1392
+ # ],
1393
+ # },
1394
+ # },
1319
1395
  # })
1320
1396
  #
1321
1397
  # @example Response structure
@@ -1349,6 +1425,10 @@ module Aws::ECS
1349
1425
  # resp.service.deployment_configuration.deployment_circuit_breaker.rollback #=> Boolean
1350
1426
  # resp.service.deployment_configuration.maximum_percent #=> Integer
1351
1427
  # resp.service.deployment_configuration.minimum_healthy_percent #=> Integer
1428
+ # resp.service.deployment_configuration.alarms.alarm_names #=> Array
1429
+ # resp.service.deployment_configuration.alarms.alarm_names[0] #=> String
1430
+ # resp.service.deployment_configuration.alarms.enable #=> Boolean
1431
+ # resp.service.deployment_configuration.alarms.rollback #=> Boolean
1352
1432
  # resp.service.task_sets #=> Array
1353
1433
  # resp.service.task_sets[0].id #=> String
1354
1434
  # resp.service.task_sets[0].task_set_arn #=> String
@@ -1416,6 +1496,24 @@ module Aws::ECS
1416
1496
  # resp.service.deployments[0].network_configuration.awsvpc_configuration.assign_public_ip #=> String, one of "ENABLED", "DISABLED"
1417
1497
  # resp.service.deployments[0].rollout_state #=> String, one of "COMPLETED", "FAILED", "IN_PROGRESS"
1418
1498
  # resp.service.deployments[0].rollout_state_reason #=> String
1499
+ # resp.service.deployments[0].service_connect_configuration.enabled #=> Boolean
1500
+ # resp.service.deployments[0].service_connect_configuration.namespace #=> String
1501
+ # resp.service.deployments[0].service_connect_configuration.services #=> Array
1502
+ # resp.service.deployments[0].service_connect_configuration.services[0].port_name #=> String
1503
+ # resp.service.deployments[0].service_connect_configuration.services[0].discovery_name #=> String
1504
+ # resp.service.deployments[0].service_connect_configuration.services[0].client_aliases #=> Array
1505
+ # resp.service.deployments[0].service_connect_configuration.services[0].client_aliases[0].port #=> Integer
1506
+ # resp.service.deployments[0].service_connect_configuration.services[0].client_aliases[0].dns_name #=> String
1507
+ # resp.service.deployments[0].service_connect_configuration.services[0].ingress_port_override #=> Integer
1508
+ # resp.service.deployments[0].service_connect_configuration.log_configuration.log_driver #=> String, one of "json-file", "syslog", "journald", "gelf", "fluentd", "awslogs", "splunk", "awsfirelens"
1509
+ # resp.service.deployments[0].service_connect_configuration.log_configuration.options #=> Hash
1510
+ # resp.service.deployments[0].service_connect_configuration.log_configuration.options["String"] #=> String
1511
+ # resp.service.deployments[0].service_connect_configuration.log_configuration.secret_options #=> Array
1512
+ # resp.service.deployments[0].service_connect_configuration.log_configuration.secret_options[0].name #=> String
1513
+ # resp.service.deployments[0].service_connect_configuration.log_configuration.secret_options[0].value_from #=> String
1514
+ # resp.service.deployments[0].service_connect_resources #=> Array
1515
+ # resp.service.deployments[0].service_connect_resources[0].discovery_name #=> String
1516
+ # resp.service.deployments[0].service_connect_resources[0].discovery_arn #=> String
1419
1517
  # resp.service.role_arn #=> String
1420
1518
  # resp.service.events #=> Array
1421
1519
  # resp.service.events[0].id #=> String
@@ -1455,7 +1553,7 @@ module Aws::ECS
1455
1553
 
1456
1554
  # Create a task set in the specified cluster and service. This is used
1457
1555
  # when a service uses the `EXTERNAL` deployment controller type. For
1458
- # more information, see [Amazon ECS Deployment Types][1] in the *Amazon
1556
+ # more information, see [Amazon ECS deployment types][1] in the *Amazon
1459
1557
  # Elastic Container Service Developer Guide*.
1460
1558
  #
1461
1559
  #
@@ -1490,7 +1588,7 @@ module Aws::ECS
1490
1588
  #
1491
1589
  # @option params [Array<Types::ServiceRegistry>] :service_registries
1492
1590
  # The details of the service discovery registries to assign to this task
1493
- # set. For more information, see [Service Discovery][1].
1591
+ # set. For more information, see [Service discovery][1].
1494
1592
  #
1495
1593
  #
1496
1594
  #
@@ -1498,7 +1596,7 @@ module Aws::ECS
1498
1596
  #
1499
1597
  # @option params [String] :launch_type
1500
1598
  # The launch type that new tasks in the task set uses. For more
1501
- # information, see [Amazon ECS Launch Types][1] in the *Amazon Elastic
1599
+ # information, see [Amazon ECS launch types][1] in the *Amazon Elastic
1502
1600
  # Container Service Developer Guide*.
1503
1601
  #
1504
1602
  # If a `launchType` is specified, the `capacityProviderStrategy`
@@ -1969,6 +2067,7 @@ module Aws::ECS
1969
2067
  # resp.cluster.attachments[0].details[0].name #=> String
1970
2068
  # resp.cluster.attachments[0].details[0].value #=> String
1971
2069
  # resp.cluster.attachments_status #=> String
2070
+ # resp.cluster.service_connect_defaults.namespace #=> String
1972
2071
  #
1973
2072
  # @see http://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/DeleteCluster AWS API Documentation
1974
2073
  #
@@ -2072,6 +2171,10 @@ module Aws::ECS
2072
2171
  # resp.service.deployment_configuration.deployment_circuit_breaker.rollback #=> Boolean
2073
2172
  # resp.service.deployment_configuration.maximum_percent #=> Integer
2074
2173
  # resp.service.deployment_configuration.minimum_healthy_percent #=> Integer
2174
+ # resp.service.deployment_configuration.alarms.alarm_names #=> Array
2175
+ # resp.service.deployment_configuration.alarms.alarm_names[0] #=> String
2176
+ # resp.service.deployment_configuration.alarms.enable #=> Boolean
2177
+ # resp.service.deployment_configuration.alarms.rollback #=> Boolean
2075
2178
  # resp.service.task_sets #=> Array
2076
2179
  # resp.service.task_sets[0].id #=> String
2077
2180
  # resp.service.task_sets[0].task_set_arn #=> String
@@ -2139,6 +2242,24 @@ module Aws::ECS
2139
2242
  # resp.service.deployments[0].network_configuration.awsvpc_configuration.assign_public_ip #=> String, one of "ENABLED", "DISABLED"
2140
2243
  # resp.service.deployments[0].rollout_state #=> String, one of "COMPLETED", "FAILED", "IN_PROGRESS"
2141
2244
  # resp.service.deployments[0].rollout_state_reason #=> String
2245
+ # resp.service.deployments[0].service_connect_configuration.enabled #=> Boolean
2246
+ # resp.service.deployments[0].service_connect_configuration.namespace #=> String
2247
+ # resp.service.deployments[0].service_connect_configuration.services #=> Array
2248
+ # resp.service.deployments[0].service_connect_configuration.services[0].port_name #=> String
2249
+ # resp.service.deployments[0].service_connect_configuration.services[0].discovery_name #=> String
2250
+ # resp.service.deployments[0].service_connect_configuration.services[0].client_aliases #=> Array
2251
+ # resp.service.deployments[0].service_connect_configuration.services[0].client_aliases[0].port #=> Integer
2252
+ # resp.service.deployments[0].service_connect_configuration.services[0].client_aliases[0].dns_name #=> String
2253
+ # resp.service.deployments[0].service_connect_configuration.services[0].ingress_port_override #=> Integer
2254
+ # resp.service.deployments[0].service_connect_configuration.log_configuration.log_driver #=> String, one of "json-file", "syslog", "journald", "gelf", "fluentd", "awslogs", "splunk", "awsfirelens"
2255
+ # resp.service.deployments[0].service_connect_configuration.log_configuration.options #=> Hash
2256
+ # resp.service.deployments[0].service_connect_configuration.log_configuration.options["String"] #=> String
2257
+ # resp.service.deployments[0].service_connect_configuration.log_configuration.secret_options #=> Array
2258
+ # resp.service.deployments[0].service_connect_configuration.log_configuration.secret_options[0].name #=> String
2259
+ # resp.service.deployments[0].service_connect_configuration.log_configuration.secret_options[0].value_from #=> String
2260
+ # resp.service.deployments[0].service_connect_resources #=> Array
2261
+ # resp.service.deployments[0].service_connect_resources[0].discovery_name #=> String
2262
+ # resp.service.deployments[0].service_connect_resources[0].discovery_arn #=> String
2142
2263
  # resp.service.role_arn #=> String
2143
2264
  # resp.service.events #=> Array
2144
2265
  # resp.service.events[0].id #=> String
@@ -2178,7 +2299,7 @@ module Aws::ECS
2178
2299
 
2179
2300
  # Deletes a specified task set within a service. This is used when a
2180
2301
  # service uses the `EXTERNAL` deployment controller type. For more
2181
- # information, see [Amazon ECS Deployment Types][1] in the *Amazon
2302
+ # information, see [Amazon ECS deployment types][1] in the *Amazon
2182
2303
  # Elastic Container Service Developer Guide*.
2183
2304
  #
2184
2305
  #
@@ -2295,11 +2416,12 @@ module Aws::ECS
2295
2416
  #
2296
2417
  # @option params [required, String] :container_instance
2297
2418
  # The container instance ID or full ARN of the container instance to
2298
- # deregister. The ARN contains the `arn:aws:ecs` namespace, followed by
2299
- # the Region of the container instance, the Amazon Web Services account
2300
- # ID of the container instance owner, the `container-instance`
2301
- # namespace, and then the container instance ID. For example,
2302
- # `arn:aws:ecs:region:aws_account_id:container-instance/container_instance_ID`.
2419
+ # deregister. For more information about the ARN format, see [Amazon
2420
+ # Resource Name (ARN)][1] in the *Amazon ECS Developer Guide*.
2421
+ #
2422
+ #
2423
+ #
2424
+ # [1]: https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-account-settings.html#ecs-resource-ids
2303
2425
  #
2304
2426
  # @option params [Boolean] :force
2305
2427
  # Forces the container instance to be deregistered. If you have tasks
@@ -2459,6 +2581,9 @@ module Aws::ECS
2459
2581
  # resp.task_definition.container_definitions[0].port_mappings[0].container_port #=> Integer
2460
2582
  # resp.task_definition.container_definitions[0].port_mappings[0].host_port #=> Integer
2461
2583
  # resp.task_definition.container_definitions[0].port_mappings[0].protocol #=> String, one of "tcp", "udp"
2584
+ # resp.task_definition.container_definitions[0].port_mappings[0].name #=> String
2585
+ # resp.task_definition.container_definitions[0].port_mappings[0].app_protocol #=> String, one of "http", "http2", "grpc"
2586
+ # resp.task_definition.container_definitions[0].port_mappings[0].container_port_range #=> String
2462
2587
  # resp.task_definition.container_definitions[0].essential #=> Boolean
2463
2588
  # resp.task_definition.container_definitions[0].entry_point #=> Array
2464
2589
  # resp.task_definition.container_definitions[0].entry_point[0] #=> String
@@ -2711,7 +2836,8 @@ module Aws::ECS
2711
2836
  # isn't included.
2712
2837
  #
2713
2838
  # If `ATTACHMENTS` is specified, the attachments for the container
2714
- # instances or tasks within the cluster are included.
2839
+ # instances or tasks within the cluster are included, for example the
2840
+ # capacity providers.
2715
2841
  #
2716
2842
  # If `SETTINGS` is specified, the settings for the cluster are included.
2717
2843
  #
@@ -2800,6 +2926,7 @@ module Aws::ECS
2800
2926
  # resp.clusters[0].attachments[0].details[0].name #=> String
2801
2927
  # resp.clusters[0].attachments[0].details[0].value #=> String
2802
2928
  # resp.clusters[0].attachments_status #=> String
2929
+ # resp.clusters[0].service_connect_defaults.namespace #=> String
2803
2930
  # resp.failures #=> Array
2804
2931
  # resp.failures[0].arn #=> String
2805
2932
  # resp.failures[0].reason #=> String
@@ -3123,6 +3250,10 @@ module Aws::ECS
3123
3250
  # resp.services[0].deployment_configuration.deployment_circuit_breaker.rollback #=> Boolean
3124
3251
  # resp.services[0].deployment_configuration.maximum_percent #=> Integer
3125
3252
  # resp.services[0].deployment_configuration.minimum_healthy_percent #=> Integer
3253
+ # resp.services[0].deployment_configuration.alarms.alarm_names #=> Array
3254
+ # resp.services[0].deployment_configuration.alarms.alarm_names[0] #=> String
3255
+ # resp.services[0].deployment_configuration.alarms.enable #=> Boolean
3256
+ # resp.services[0].deployment_configuration.alarms.rollback #=> Boolean
3126
3257
  # resp.services[0].task_sets #=> Array
3127
3258
  # resp.services[0].task_sets[0].id #=> String
3128
3259
  # resp.services[0].task_sets[0].task_set_arn #=> String
@@ -3190,6 +3321,24 @@ module Aws::ECS
3190
3321
  # resp.services[0].deployments[0].network_configuration.awsvpc_configuration.assign_public_ip #=> String, one of "ENABLED", "DISABLED"
3191
3322
  # resp.services[0].deployments[0].rollout_state #=> String, one of "COMPLETED", "FAILED", "IN_PROGRESS"
3192
3323
  # resp.services[0].deployments[0].rollout_state_reason #=> String
3324
+ # resp.services[0].deployments[0].service_connect_configuration.enabled #=> Boolean
3325
+ # resp.services[0].deployments[0].service_connect_configuration.namespace #=> String
3326
+ # resp.services[0].deployments[0].service_connect_configuration.services #=> Array
3327
+ # resp.services[0].deployments[0].service_connect_configuration.services[0].port_name #=> String
3328
+ # resp.services[0].deployments[0].service_connect_configuration.services[0].discovery_name #=> String
3329
+ # resp.services[0].deployments[0].service_connect_configuration.services[0].client_aliases #=> Array
3330
+ # resp.services[0].deployments[0].service_connect_configuration.services[0].client_aliases[0].port #=> Integer
3331
+ # resp.services[0].deployments[0].service_connect_configuration.services[0].client_aliases[0].dns_name #=> String
3332
+ # resp.services[0].deployments[0].service_connect_configuration.services[0].ingress_port_override #=> Integer
3333
+ # resp.services[0].deployments[0].service_connect_configuration.log_configuration.log_driver #=> String, one of "json-file", "syslog", "journald", "gelf", "fluentd", "awslogs", "splunk", "awsfirelens"
3334
+ # resp.services[0].deployments[0].service_connect_configuration.log_configuration.options #=> Hash
3335
+ # resp.services[0].deployments[0].service_connect_configuration.log_configuration.options["String"] #=> String
3336
+ # resp.services[0].deployments[0].service_connect_configuration.log_configuration.secret_options #=> Array
3337
+ # resp.services[0].deployments[0].service_connect_configuration.log_configuration.secret_options[0].name #=> String
3338
+ # resp.services[0].deployments[0].service_connect_configuration.log_configuration.secret_options[0].value_from #=> String
3339
+ # resp.services[0].deployments[0].service_connect_resources #=> Array
3340
+ # resp.services[0].deployments[0].service_connect_resources[0].discovery_name #=> String
3341
+ # resp.services[0].deployments[0].service_connect_resources[0].discovery_arn #=> String
3193
3342
  # resp.services[0].role_arn #=> String
3194
3343
  # resp.services[0].events #=> Array
3195
3344
  # resp.services[0].events[0].id #=> String
@@ -3348,6 +3497,9 @@ module Aws::ECS
3348
3497
  # resp.task_definition.container_definitions[0].port_mappings[0].container_port #=> Integer
3349
3498
  # resp.task_definition.container_definitions[0].port_mappings[0].host_port #=> Integer
3350
3499
  # resp.task_definition.container_definitions[0].port_mappings[0].protocol #=> String, one of "tcp", "udp"
3500
+ # resp.task_definition.container_definitions[0].port_mappings[0].name #=> String
3501
+ # resp.task_definition.container_definitions[0].port_mappings[0].app_protocol #=> String, one of "http", "http2", "grpc"
3502
+ # resp.task_definition.container_definitions[0].port_mappings[0].container_port_range #=> String
3351
3503
  # resp.task_definition.container_definitions[0].essential #=> Boolean
3352
3504
  # resp.task_definition.container_definitions[0].entry_point #=> Array
3353
3505
  # resp.task_definition.container_definitions[0].entry_point[0] #=> String
@@ -3605,6 +3757,9 @@ module Aws::ECS
3605
3757
 
3606
3758
  # Describes a specified task or tasks.
3607
3759
  #
3760
+ # Currently, stopped tasks appear in the returned results for at least
3761
+ # one hour.
3762
+ #
3608
3763
  # @option params [String] :cluster
3609
3764
  # The short name or full Amazon Resource Name (ARN) of the cluster that
3610
3765
  # hosts the task or tasks to describe. If you do not specify a cluster,
@@ -3719,6 +3874,8 @@ module Aws::ECS
3719
3874
  # resp.tasks[0].containers[0].network_bindings[0].container_port #=> Integer
3720
3875
  # resp.tasks[0].containers[0].network_bindings[0].host_port #=> Integer
3721
3876
  # resp.tasks[0].containers[0].network_bindings[0].protocol #=> String, one of "tcp", "udp"
3877
+ # resp.tasks[0].containers[0].network_bindings[0].container_port_range #=> String
3878
+ # resp.tasks[0].containers[0].network_bindings[0].host_port_range #=> String
3722
3879
  # resp.tasks[0].containers[0].network_interfaces #=> Array
3723
3880
  # resp.tasks[0].containers[0].network_interfaces[0].attachment_id #=> String
3724
3881
  # resp.tasks[0].containers[0].network_interfaces[0].private_ipv_4_address #=> String
@@ -3777,7 +3934,7 @@ module Aws::ECS
3777
3934
  # resp.tasks[0].pull_stopped_at #=> Time
3778
3935
  # resp.tasks[0].started_at #=> Time
3779
3936
  # resp.tasks[0].started_by #=> String
3780
- # resp.tasks[0].stop_code #=> String, one of "TaskFailedToStart", "EssentialContainerExited", "UserInitiated"
3937
+ # resp.tasks[0].stop_code #=> String, one of "TaskFailedToStart", "EssentialContainerExited", "UserInitiated", "ServiceSchedulerInitiated", "SpotInterruption", "TerminationNotice"
3781
3938
  # resp.tasks[0].stopped_at #=> Time
3782
3939
  # resp.tasks[0].stopped_reason #=> String
3783
3940
  # resp.tasks[0].stopping_at #=> Time
@@ -3816,12 +3973,13 @@ module Aws::ECS
3816
3973
  # Returns an endpoint for the Amazon ECS agent to poll for updates.
3817
3974
  #
3818
3975
  # @option params [String] :container_instance
3819
- # The container instance ID or full ARN of the container instance. The
3820
- # ARN contains the `arn:aws:ecs` namespace, followed by the Region of
3821
- # the container instance, the Amazon Web Services account ID of the
3822
- # container instance owner, the `container-instance` namespace, and then
3823
- # the container instance ID. For example,
3824
- # `arn:aws:ecs:region:aws_account_id:container-instance/container_instance_ID`.
3976
+ # The container instance ID or full ARN of the container instance. For
3977
+ # more information about the ARN format, see [Amazon Resource Name
3978
+ # (ARN)][1] in the *Amazon ECS Developer Guide*.
3979
+ #
3980
+ #
3981
+ #
3982
+ # [1]: https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-account-settings.html#ecs-resource-ids
3825
3983
  #
3826
3984
  # @option params [String] :cluster
3827
3985
  # The short name or full Amazon Resource Name (ARN) of the cluster that
@@ -3831,6 +3989,7 @@ module Aws::ECS
3831
3989
  #
3832
3990
  # * {Types::DiscoverPollEndpointResponse#endpoint #endpoint} => String
3833
3991
  # * {Types::DiscoverPollEndpointResponse#telemetry_endpoint #telemetry_endpoint} => String
3992
+ # * {Types::DiscoverPollEndpointResponse#service_connect_endpoint #service_connect_endpoint} => String
3834
3993
  #
3835
3994
  # @example Request syntax with placeholder values
3836
3995
  #
@@ -3843,6 +4002,7 @@ module Aws::ECS
3843
4002
  #
3844
4003
  # resp.endpoint #=> String
3845
4004
  # resp.telemetry_endpoint #=> String
4005
+ # resp.service_connect_endpoint #=> String
3846
4006
  #
3847
4007
  # @see http://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/DiscoverPollEndpoint AWS API Documentation
3848
4008
  #
@@ -3855,6 +4015,20 @@ module Aws::ECS
3855
4015
 
3856
4016
  # Runs a command remotely on a container within a task.
3857
4017
  #
4018
+ # If you use a condition key in your IAM policy to refine the conditions
4019
+ # for the policy statement, for example limit the actions to a specific
4020
+ # cluster, you receive an `AccessDeniedException` when there is a
4021
+ # mismatch between the condition key value and the corresponding
4022
+ # parameter value.
4023
+ #
4024
+ # For information about required permissions and considerations, see
4025
+ # [Using Amazon ECS Exec for debugging][1] in the *Amazon ECS Developer
4026
+ # Guide*.
4027
+ #
4028
+ #
4029
+ #
4030
+ # [1]: https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-exec.htm
4031
+ #
3858
4032
  # @option params [String] :cluster
3859
4033
  # The Amazon Resource Name (ARN) or short name of the cluster the task
3860
4034
  # is running in. If you do not specify a cluster, the default cluster is
@@ -3913,6 +4087,72 @@ module Aws::ECS
3913
4087
  req.send_request(options)
3914
4088
  end
3915
4089
 
4090
+ # Retrieves the protection status of tasks in an Amazon ECS service.
4091
+ #
4092
+ # @option params [required, String] :cluster
4093
+ # The short name or full Amazon Resource Name (ARN) of the cluster that
4094
+ # hosts the service that the task sets exist in.
4095
+ #
4096
+ # @option params [Array<String>] :tasks
4097
+ # A list of up to 100 task IDs or full ARN entries.
4098
+ #
4099
+ # @return [Types::GetTaskProtectionResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
4100
+ #
4101
+ # * {Types::GetTaskProtectionResponse#protected_tasks #protected_tasks} => Array&lt;Types::ProtectedTask&gt;
4102
+ # * {Types::GetTaskProtectionResponse#failures #failures} => Array&lt;Types::Failure&gt;
4103
+ #
4104
+ #
4105
+ # @example Example: To get the protection status of a task
4106
+ #
4107
+ # # In this example, we get the protection status for a single task.
4108
+ #
4109
+ # resp = client.get_task_protection({
4110
+ # cluster: "test-task-protection",
4111
+ # tasks: [
4112
+ # "b8b1cf532d0e46ba8d44a40d1de16772",
4113
+ # ],
4114
+ # })
4115
+ #
4116
+ # resp.to_h outputs the following:
4117
+ # {
4118
+ # failures: [
4119
+ # ],
4120
+ # protected_tasks: [
4121
+ # {
4122
+ # expiration_date: Time.parse("2022-11-02T06:56:32.553Z"),
4123
+ # protection_enabled: true,
4124
+ # task_arn: "arn:aws:ecs:us-west-2:012345678910:task/b8b1cf532d0e46ba8d44a40d1de16772",
4125
+ # },
4126
+ # ],
4127
+ # }
4128
+ #
4129
+ # @example Request syntax with placeholder values
4130
+ #
4131
+ # resp = client.get_task_protection({
4132
+ # cluster: "String", # required
4133
+ # tasks: ["String"],
4134
+ # })
4135
+ #
4136
+ # @example Response structure
4137
+ #
4138
+ # resp.protected_tasks #=> Array
4139
+ # resp.protected_tasks[0].task_arn #=> String
4140
+ # resp.protected_tasks[0].protection_enabled #=> Boolean
4141
+ # resp.protected_tasks[0].expiration_date #=> Time
4142
+ # resp.failures #=> Array
4143
+ # resp.failures[0].arn #=> String
4144
+ # resp.failures[0].reason #=> String
4145
+ # resp.failures[0].detail #=> String
4146
+ #
4147
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/GetTaskProtection AWS API Documentation
4148
+ #
4149
+ # @overload get_task_protection(params = {})
4150
+ # @param [Hash] params ({})
4151
+ def get_task_protection(params = {}, options = {})
4152
+ req = build_request(:get_task_protection, params)
4153
+ req.send_request(options)
4154
+ end
4155
+
3916
4156
  # Lists the account settings for a specified principal.
3917
4157
  #
3918
4158
  # @option params [String] :name
@@ -4396,6 +4636,82 @@ module Aws::ECS
4396
4636
  req.send_request(options)
4397
4637
  end
4398
4638
 
4639
+ # This operation lists all of the services that are associated with a
4640
+ # Cloud Map namespace. This list might include services in different
4641
+ # clusters. In contrast, `ListServices` can only list services in one
4642
+ # cluster at a time. If you need to filter the list of services in a
4643
+ # single cluster by various parameters, use `ListServices`. For more
4644
+ # information, see [Service Connect][1] in the *Amazon Elastic Container
4645
+ # Service Developer Guide*.
4646
+ #
4647
+ #
4648
+ #
4649
+ # [1]: https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-connect.html
4650
+ #
4651
+ # @option params [required, String] :namespace
4652
+ # The namespace name or full Amazon Resource Name (ARN) of the Cloud Map
4653
+ # namespace to list the services in.
4654
+ #
4655
+ # Tasks that run in a namespace can use short names to connect to
4656
+ # services in the namespace. Tasks can connect to services across all of
4657
+ # the clusters in the namespace. Tasks connect through a managed proxy
4658
+ # container that collects logs and metrics for increased visibility.
4659
+ # Only the tasks that Amazon ECS services create are supported with
4660
+ # Service Connect. For more information, see [Service Connect][1] in the
4661
+ # *Amazon Elastic Container Service Developer Guide*.
4662
+ #
4663
+ #
4664
+ #
4665
+ # [1]: https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-connect.html
4666
+ #
4667
+ # @option params [String] :next_token
4668
+ # The `nextToken` value that's returned from a
4669
+ # `ListServicesByNamespace` request. It indicates that more results are
4670
+ # available to fulfill the request and further calls are needed. If
4671
+ # `maxResults` is returned, it is possible the number of results is less
4672
+ # than `maxResults`.
4673
+ #
4674
+ # @option params [Integer] :max_results
4675
+ # The maximum number of service results that `ListServicesByNamespace`
4676
+ # returns in paginated output. When this parameter is used,
4677
+ # `ListServicesByNamespace` only returns `maxResults` results in a
4678
+ # single page along with a `nextToken` response element. The remaining
4679
+ # results of the initial request can be seen by sending another
4680
+ # `ListServicesByNamespace` request with the returned `nextToken` value.
4681
+ # This value can be between 1 and 100. If this parameter isn't used,
4682
+ # then `ListServicesByNamespace` returns up to 10 results and a
4683
+ # `nextToken` value if applicable.
4684
+ #
4685
+ # @return [Types::ListServicesByNamespaceResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
4686
+ #
4687
+ # * {Types::ListServicesByNamespaceResponse#service_arns #service_arns} => Array&lt;String&gt;
4688
+ # * {Types::ListServicesByNamespaceResponse#next_token #next_token} => String
4689
+ #
4690
+ # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
4691
+ #
4692
+ # @example Request syntax with placeholder values
4693
+ #
4694
+ # resp = client.list_services_by_namespace({
4695
+ # namespace: "String", # required
4696
+ # next_token: "String",
4697
+ # max_results: 1,
4698
+ # })
4699
+ #
4700
+ # @example Response structure
4701
+ #
4702
+ # resp.service_arns #=> Array
4703
+ # resp.service_arns[0] #=> String
4704
+ # resp.next_token #=> String
4705
+ #
4706
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/ListServicesByNamespace AWS API Documentation
4707
+ #
4708
+ # @overload list_services_by_namespace(params = {})
4709
+ # @param [Hash] params ({})
4710
+ def list_services_by_namespace(params = {}, options = {})
4711
+ req = build_request(:list_services_by_namespace, params)
4712
+ req.send_request(options)
4713
+ end
4714
+
4399
4715
  # List the tags for an Amazon ECS resource.
4400
4716
  #
4401
4717
  # @option params [required, String] :resource_arn
@@ -4732,6 +5048,9 @@ module Aws::ECS
4732
5048
  # `startedBy` value limits the results to tasks that were started with
4733
5049
  # that value.
4734
5050
  #
5051
+ # When you specify `startedBy` as the filter, it must be the only filter
5052
+ # that you use.
5053
+ #
4735
5054
  # @option params [String] :service_name
4736
5055
  # The name of the service to use when filtering the `ListTasks` results.
4737
5056
  # Specifying a `serviceName` limits the results to tasks that belong to
@@ -4980,6 +5299,16 @@ module Aws::ECS
4980
5299
  # the default setting for CloudWatch Container Insights for your
4981
5300
  # clusters is affected.
4982
5301
  #
5302
+ # Fargate is transitioning from task count-based quotas to vCPU-based
5303
+ # quotas. You can set the name to `fargateVCPULimit` to opt in or opt
5304
+ # out of the vCPU-based quotas. For information about the opt in
5305
+ # timeline, see [Fargate vCPU-based quotas timeline][1] in the *Amazon
5306
+ # ECS Developer Guide*.
5307
+ #
5308
+ #
5309
+ #
5310
+ # [1]: https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-account-settings.html#fargate-quota-timeline
5311
+ #
4983
5312
  # @option params [required, String] :value
4984
5313
  # The account setting value for the specified principal ARN. Accepted
4985
5314
  # values are `enabled` and `disabled`.
@@ -5203,6 +5532,7 @@ module Aws::ECS
5203
5532
  # resp.cluster.attachments[0].details[0].name #=> String
5204
5533
  # resp.cluster.attachments[0].details[0].value #=> String
5205
5534
  # resp.cluster.attachments_status #=> String
5535
+ # resp.cluster.service_connect_defaults.namespace #=> String
5206
5536
  #
5207
5537
  # @see http://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/PutClusterCapacityProviders AWS API Documentation
5208
5538
  #
@@ -5536,7 +5866,8 @@ module Aws::ECS
5536
5866
  #
5537
5867
  # If you're using the EC2 launch type, this field is optional.
5538
5868
  # Supported values are between `128` CPU units (`0.125` vCPUs) and
5539
- # `10240` CPU units (`10` vCPUs).
5869
+ # `10240` CPU units (`10` vCPUs). If you do not specify a value, the
5870
+ # parameter is ignored.
5540
5871
  #
5541
5872
  # If you're using the Fargate launch type, this field is required and
5542
5873
  # you must use one of the following values, which determines your range
@@ -5554,11 +5885,21 @@ module Aws::ECS
5554
5885
  # * 1024 (1 vCPU) - Available `memory` values: 2048 (2 GB), 3072 (3 GB),
5555
5886
  # 4096 (4 GB), 5120 (5 GB), 6144 (6 GB), 7168 (7 GB), 8192 (8 GB)
5556
5887
  #
5557
- # * 2048 (2 vCPU) - Available `memory` values: Between 4096 (4 GB) and
5558
- # 16384 (16 GB) in increments of 1024 (1 GB)
5888
+ # * 2048 (2 vCPU) - Available `memory` values: 4096 (4 GB) and 16384 (16
5889
+ # GB) in increments of 1024 (1 GB)
5890
+ #
5891
+ # * 4096 (4 vCPU) - Available `memory` values: 8192 (8 GB) and 30720 (30
5892
+ # GB) in increments of 1024 (1 GB)
5893
+ #
5894
+ # * 8192 (8 vCPU) - Available `memory` values: 16 GB and 60 GB in 4 GB
5895
+ # increments
5559
5896
  #
5560
- # * 4096 (4 vCPU) - Available `memory` values: Between 8192 (8 GB) and
5561
- # 30720 (30 GB) in increments of 1024 (1 GB)
5897
+ # This option requires Linux platform `1.4.0` or later.
5898
+ #
5899
+ # * 16384 (16vCPU) - Available `memory` values: 32GB and 120 GB in 8 GB
5900
+ # increments
5901
+ #
5902
+ # This option requires Linux platform `1.4.0` or later.
5562
5903
  #
5563
5904
  # @option params [String] :memory
5564
5905
  # The amount of memory (in MiB) used by the task. It can be expressed as
@@ -5597,6 +5938,16 @@ module Aws::ECS
5597
5938
  # * Between 8192 (8 GB) and 30720 (30 GB) in increments of 1024 (1 GB) -
5598
5939
  # Available `cpu` values: 4096 (4 vCPU)
5599
5940
  #
5941
+ # * Between 16 GB and 60 GB in 4 GB increments - Available `cpu` values:
5942
+ # 8192 (8 vCPU)
5943
+ #
5944
+ # This option requires Linux platform `1.4.0` or later.
5945
+ #
5946
+ # * Between 32GB and 120 GB in 8 GB increments - Available `cpu` values:
5947
+ # 16384 (16 vCPU)
5948
+ #
5949
+ # This option requires Linux platform `1.4.0` or later.
5950
+ #
5600
5951
  # @option params [Array<Types::Tag>] :tags
5601
5952
  # The metadata that you apply to the task definition to help you
5602
5953
  # categorize and organize them. Each tag consists of a key and an
@@ -5723,7 +6074,7 @@ module Aws::ECS
5723
6074
  #
5724
6075
  # * Linux platform version `1.4.0` or later.
5725
6076
  #
5726
- # * Windows platform version `1.0.0` or later.
6077
+ # ^
5727
6078
  #
5728
6079
  # </note>
5729
6080
  #
@@ -5823,6 +6174,9 @@ module Aws::ECS
5823
6174
  # container_port: 1,
5824
6175
  # host_port: 1,
5825
6176
  # protocol: "tcp", # accepts tcp, udp
6177
+ # name: "String",
6178
+ # app_protocol: "http", # accepts http, http2, grpc
6179
+ # container_port_range: "String",
5826
6180
  # },
5827
6181
  # ],
5828
6182
  # essential: false,
@@ -6052,6 +6406,9 @@ module Aws::ECS
6052
6406
  # resp.task_definition.container_definitions[0].port_mappings[0].container_port #=> Integer
6053
6407
  # resp.task_definition.container_definitions[0].port_mappings[0].host_port #=> Integer
6054
6408
  # resp.task_definition.container_definitions[0].port_mappings[0].protocol #=> String, one of "tcp", "udp"
6409
+ # resp.task_definition.container_definitions[0].port_mappings[0].name #=> String
6410
+ # resp.task_definition.container_definitions[0].port_mappings[0].app_protocol #=> String, one of "http", "http2", "grpc"
6411
+ # resp.task_definition.container_definitions[0].port_mappings[0].container_port_range #=> String
6055
6412
  # resp.task_definition.container_definitions[0].essential #=> Boolean
6056
6413
  # resp.task_definition.container_definitions[0].entry_point #=> Array
6057
6414
  # resp.task_definition.container_definitions[0].entry_point[0] #=> String
@@ -6624,6 +6981,8 @@ module Aws::ECS
6624
6981
  # resp.tasks[0].containers[0].network_bindings[0].container_port #=> Integer
6625
6982
  # resp.tasks[0].containers[0].network_bindings[0].host_port #=> Integer
6626
6983
  # resp.tasks[0].containers[0].network_bindings[0].protocol #=> String, one of "tcp", "udp"
6984
+ # resp.tasks[0].containers[0].network_bindings[0].container_port_range #=> String
6985
+ # resp.tasks[0].containers[0].network_bindings[0].host_port_range #=> String
6627
6986
  # resp.tasks[0].containers[0].network_interfaces #=> Array
6628
6987
  # resp.tasks[0].containers[0].network_interfaces[0].attachment_id #=> String
6629
6988
  # resp.tasks[0].containers[0].network_interfaces[0].private_ipv_4_address #=> String
@@ -6682,7 +7041,7 @@ module Aws::ECS
6682
7041
  # resp.tasks[0].pull_stopped_at #=> Time
6683
7042
  # resp.tasks[0].started_at #=> Time
6684
7043
  # resp.tasks[0].started_by #=> String
6685
- # resp.tasks[0].stop_code #=> String, one of "TaskFailedToStart", "EssentialContainerExited", "UserInitiated"
7044
+ # resp.tasks[0].stop_code #=> String, one of "TaskFailedToStart", "EssentialContainerExited", "UserInitiated", "ServiceSchedulerInitiated", "SpotInterruption", "TerminationNotice"
6686
7045
  # resp.tasks[0].stopped_at #=> Time
6687
7046
  # resp.tasks[0].stopped_reason #=> String
6688
7047
  # resp.tasks[0].stopping_at #=> Time
@@ -6932,6 +7291,8 @@ module Aws::ECS
6932
7291
  # resp.tasks[0].containers[0].network_bindings[0].container_port #=> Integer
6933
7292
  # resp.tasks[0].containers[0].network_bindings[0].host_port #=> Integer
6934
7293
  # resp.tasks[0].containers[0].network_bindings[0].protocol #=> String, one of "tcp", "udp"
7294
+ # resp.tasks[0].containers[0].network_bindings[0].container_port_range #=> String
7295
+ # resp.tasks[0].containers[0].network_bindings[0].host_port_range #=> String
6935
7296
  # resp.tasks[0].containers[0].network_interfaces #=> Array
6936
7297
  # resp.tasks[0].containers[0].network_interfaces[0].attachment_id #=> String
6937
7298
  # resp.tasks[0].containers[0].network_interfaces[0].private_ipv_4_address #=> String
@@ -6990,7 +7351,7 @@ module Aws::ECS
6990
7351
  # resp.tasks[0].pull_stopped_at #=> Time
6991
7352
  # resp.tasks[0].started_at #=> Time
6992
7353
  # resp.tasks[0].started_by #=> String
6993
- # resp.tasks[0].stop_code #=> String, one of "TaskFailedToStart", "EssentialContainerExited", "UserInitiated"
7354
+ # resp.tasks[0].stop_code #=> String, one of "TaskFailedToStart", "EssentialContainerExited", "UserInitiated", "ServiceSchedulerInitiated", "SpotInterruption", "TerminationNotice"
6994
7355
  # resp.tasks[0].stopped_at #=> Time
6995
7356
  # resp.tasks[0].stopped_reason #=> String
6996
7357
  # resp.tasks[0].stopping_at #=> Time
@@ -7098,6 +7459,8 @@ module Aws::ECS
7098
7459
  # resp.task.containers[0].network_bindings[0].container_port #=> Integer
7099
7460
  # resp.task.containers[0].network_bindings[0].host_port #=> Integer
7100
7461
  # resp.task.containers[0].network_bindings[0].protocol #=> String, one of "tcp", "udp"
7462
+ # resp.task.containers[0].network_bindings[0].container_port_range #=> String
7463
+ # resp.task.containers[0].network_bindings[0].host_port_range #=> String
7101
7464
  # resp.task.containers[0].network_interfaces #=> Array
7102
7465
  # resp.task.containers[0].network_interfaces[0].attachment_id #=> String
7103
7466
  # resp.task.containers[0].network_interfaces[0].private_ipv_4_address #=> String
@@ -7156,7 +7519,7 @@ module Aws::ECS
7156
7519
  # resp.task.pull_stopped_at #=> Time
7157
7520
  # resp.task.started_at #=> Time
7158
7521
  # resp.task.started_by #=> String
7159
- # resp.task.stop_code #=> String, one of "TaskFailedToStart", "EssentialContainerExited", "UserInitiated"
7522
+ # resp.task.stop_code #=> String, one of "TaskFailedToStart", "EssentialContainerExited", "UserInitiated", "ServiceSchedulerInitiated", "SpotInterruption", "TerminationNotice"
7160
7523
  # resp.task.stopped_at #=> Time
7161
7524
  # resp.task.stopped_reason #=> String
7162
7525
  # resp.task.stopping_at #=> Time
@@ -7272,6 +7635,8 @@ module Aws::ECS
7272
7635
  # container_port: 1,
7273
7636
  # host_port: 1,
7274
7637
  # protocol: "tcp", # accepts tcp, udp
7638
+ # container_port_range: "String",
7639
+ # host_port_range: "String",
7275
7640
  # },
7276
7641
  # ],
7277
7642
  # })
@@ -7351,6 +7716,8 @@ module Aws::ECS
7351
7716
  # container_port: 1,
7352
7717
  # host_port: 1,
7353
7718
  # protocol: "tcp", # accepts tcp, udp
7719
+ # container_port_range: "String",
7720
+ # host_port_range: "String",
7354
7721
  # },
7355
7722
  # ],
7356
7723
  # reason: "String",
@@ -7580,6 +7947,28 @@ module Aws::ECS
7580
7947
  # @option params [Types::ClusterConfiguration] :configuration
7581
7948
  # The execute command configuration for the cluster.
7582
7949
  #
7950
+ # @option params [Types::ClusterServiceConnectDefaultsRequest] :service_connect_defaults
7951
+ # Use this parameter to set a default Service Connect namespace. After
7952
+ # you set a default Service Connect namespace, any new services with
7953
+ # Service Connect turned on that are created in the cluster are added as
7954
+ # client services in the namespace. This setting only applies to new
7955
+ # services that set the `enabled` parameter to `true` in the
7956
+ # `ServiceConnectConfiguration`. You can set the namespace of each
7957
+ # service individually in the `ServiceConnectConfiguration` to override
7958
+ # this default parameter.
7959
+ #
7960
+ # Tasks that run in a namespace can use short names to connect to
7961
+ # services in the namespace. Tasks can connect to services across all of
7962
+ # the clusters in the namespace. Tasks connect through a managed proxy
7963
+ # container that collects logs and metrics for increased visibility.
7964
+ # Only the tasks that Amazon ECS services create are supported with
7965
+ # Service Connect. For more information, see [Service Connect][1] in the
7966
+ # *Amazon Elastic Container Service Developer Guide*.
7967
+ #
7968
+ #
7969
+ #
7970
+ # [1]: https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-connect.html
7971
+ #
7583
7972
  # @return [Types::UpdateClusterResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
7584
7973
  #
7585
7974
  # * {Types::UpdateClusterResponse#cluster #cluster} => Types::Cluster
@@ -7607,6 +7996,9 @@ module Aws::ECS
7607
7996
  # },
7608
7997
  # },
7609
7998
  # },
7999
+ # service_connect_defaults: {
8000
+ # namespace: "String", # required
8001
+ # },
7610
8002
  # })
7611
8003
  #
7612
8004
  # @example Response structure
@@ -7648,6 +8040,7 @@ module Aws::ECS
7648
8040
  # resp.cluster.attachments[0].details[0].name #=> String
7649
8041
  # resp.cluster.attachments[0].details[0].value #=> String
7650
8042
  # resp.cluster.attachments_status #=> String
8043
+ # resp.cluster.service_connect_defaults.namespace #=> String
7651
8044
  #
7652
8045
  # @see http://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/UpdateCluster AWS API Documentation
7653
8046
  #
@@ -7669,6 +8062,13 @@ module Aws::ECS
7669
8062
  # specified, it overrides the `containerInsights` value set with
7670
8063
  # PutAccountSetting or PutAccountSettingDefault.
7671
8064
  #
8065
+ # Currently, if you delete an existing cluster that does not have
8066
+ # Container Insights turned on, and then create a new cluster with the
8067
+ # same name with Container Insights tuned on, Container Insights will
8068
+ # not actually be turned on. If you want to preserve the same name for
8069
+ # your existing cluster and turn on Container Insights, you must wait 7
8070
+ # days before you can re-create it.
8071
+ #
7672
8072
  # @return [Types::UpdateClusterSettingsResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
7673
8073
  #
7674
8074
  # * {Types::UpdateClusterSettingsResponse#cluster #cluster} => Types::Cluster
@@ -7724,6 +8124,7 @@ module Aws::ECS
7724
8124
  # resp.cluster.attachments[0].details[0].name #=> String
7725
8125
  # resp.cluster.attachments[0].details[0].value #=> String
7726
8126
  # resp.cluster.attachments_status #=> String
8127
+ # resp.cluster.service_connect_defaults.namespace #=> String
7727
8128
  #
7728
8129
  # @see http://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/UpdateClusterSettings AWS API Documentation
7729
8130
  #
@@ -7750,6 +8151,13 @@ module Aws::ECS
7750
8151
  #
7751
8152
  # </note>
7752
8153
  #
8154
+ # <note markdown="1"> Agent updates with the `UpdateContainerAgent` API operation do not
8155
+ # apply to Windows container instances. We recommend that you launch new
8156
+ # container instances to update the agent version in your Windows
8157
+ # clusters.
8158
+ #
8159
+ # </note>
8160
+ #
7753
8161
  # The `UpdateContainerAgent` API requires an Amazon ECS-optimized AMI or
7754
8162
  # Amazon Linux AMI with the `ecs-init` service installed and running.
7755
8163
  # For help updating the Amazon ECS container agent on other operating
@@ -7998,12 +8406,6 @@ module Aws::ECS
7998
8406
  req.send_request(options)
7999
8407
  end
8000
8408
 
8001
- # Updating the task placement strategies and constraints on an Amazon
8002
- # ECS service remains in preview and is a Beta Service as defined by and
8003
- # subject to the Beta Service Participation Service Terms located at
8004
- # [https://aws.amazon.com/service-terms][1] ("Beta Terms"). These Beta
8005
- # Terms apply to your participation in this preview.
8006
- #
8007
8409
  # Modifies the parameters of a service.
8008
8410
  #
8009
8411
  # For services using the rolling update (`ECS`) you can update the
@@ -8019,7 +8421,7 @@ module Aws::ECS
8019
8421
  # ECS managed tags option, and propagate tags can be updated using this
8020
8422
  # API. If the network configuration, platform version, task definition,
8021
8423
  # or load balancer need to be updated, create a new CodeDeploy
8022
- # deployment. For more information, see [CreateDeployment][2] in the
8424
+ # deployment. For more information, see [CreateDeployment][1] in the
8023
8425
  # *CodeDeploy API Reference*.
8024
8426
  #
8025
8427
  # For services using an external deployment controller, you can update
@@ -8118,9 +8520,9 @@ module Aws::ECS
8118
8520
  # <note markdown="1"> You must have a service-linked role when you update any of the
8119
8521
  # following service properties. If you specified a custom IAM role when
8120
8522
  # you created the service, Amazon ECS automatically replaces the
8121
- # [roleARN][3] associated with the service with the ARN of your
8523
+ # [roleARN][2] associated with the service with the ARN of your
8122
8524
  # service-linked role. For more information, see [Service-linked
8123
- # roles][4] in the *Amazon Elastic Container Service Developer Guide*.
8525
+ # roles][3] in the *Amazon Elastic Container Service Developer Guide*.
8124
8526
  #
8125
8527
  # * `loadBalancers,`
8126
8528
  #
@@ -8130,10 +8532,9 @@ module Aws::ECS
8130
8532
  #
8131
8533
  #
8132
8534
  #
8133
- # [1]: https://aws.amazon.com/service-terms
8134
- # [2]: https://docs.aws.amazon.com/codedeploy/latest/APIReference/API_CreateDeployment.html
8135
- # [3]: https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_Service.html#ECS-Type-Service-roleArn
8136
- # [4]: https://docs.aws.amazon.com/AmazonECS/latest/developerguide/using-service-linked-roles.html
8535
+ # [1]: https://docs.aws.amazon.com/codedeploy/latest/APIReference/API_CreateDeployment.html
8536
+ # [2]: https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_Service.html#ECS-Type-Service-roleArn
8537
+ # [3]: https://docs.aws.amazon.com/AmazonECS/latest/developerguide/using-service-linked-roles.html
8137
8538
  #
8138
8539
  # @option params [String] :cluster
8139
8540
  # The short name or full Amazon Resource Name (ARN) of the cluster that
@@ -8325,6 +8726,23 @@ module Aws::ECS
8325
8726
  #
8326
8727
  # [1]: https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-discovery.html
8327
8728
  #
8729
+ # @option params [Types::ServiceConnectConfiguration] :service_connect_configuration
8730
+ # The configuration for this service to discover and connect to
8731
+ # services, and be discovered by, and connected from, other services
8732
+ # within a namespace.
8733
+ #
8734
+ # Tasks that run in a namespace can use short names to connect to
8735
+ # services in the namespace. Tasks can connect to services across all of
8736
+ # the clusters in the namespace. Tasks connect through a managed proxy
8737
+ # container that collects logs and metrics for increased visibility.
8738
+ # Only the tasks that Amazon ECS services create are supported with
8739
+ # Service Connect. For more information, see [Service Connect][1] in the
8740
+ # *Amazon Elastic Container Service Developer Guide*.
8741
+ #
8742
+ #
8743
+ #
8744
+ # [1]: https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-connect.html
8745
+ #
8328
8746
  # @return [Types::UpdateServiceResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
8329
8747
  #
8330
8748
  # * {Types::UpdateServiceResponse#service #service} => Types::Service
@@ -8377,6 +8795,11 @@ module Aws::ECS
8377
8795
  # },
8378
8796
  # maximum_percent: 1,
8379
8797
  # minimum_healthy_percent: 1,
8798
+ # alarms: {
8799
+ # alarm_names: ["String"], # required
8800
+ # enable: false, # required
8801
+ # rollback: false, # required
8802
+ # },
8380
8803
  # },
8381
8804
  # network_configuration: {
8382
8805
  # awsvpc_configuration: {
@@ -8419,6 +8842,35 @@ module Aws::ECS
8419
8842
  # container_port: 1,
8420
8843
  # },
8421
8844
  # ],
8845
+ # service_connect_configuration: {
8846
+ # enabled: false, # required
8847
+ # namespace: "String",
8848
+ # services: [
8849
+ # {
8850
+ # port_name: "String", # required
8851
+ # discovery_name: "String",
8852
+ # client_aliases: [
8853
+ # {
8854
+ # port: 1, # required
8855
+ # dns_name: "String",
8856
+ # },
8857
+ # ],
8858
+ # ingress_port_override: 1,
8859
+ # },
8860
+ # ],
8861
+ # log_configuration: {
8862
+ # log_driver: "json-file", # required, accepts json-file, syslog, journald, gelf, fluentd, awslogs, splunk, awsfirelens
8863
+ # options: {
8864
+ # "String" => "String",
8865
+ # },
8866
+ # secret_options: [
8867
+ # {
8868
+ # name: "String", # required
8869
+ # value_from: "String", # required
8870
+ # },
8871
+ # ],
8872
+ # },
8873
+ # },
8422
8874
  # })
8423
8875
  #
8424
8876
  # @example Response structure
@@ -8452,6 +8904,10 @@ module Aws::ECS
8452
8904
  # resp.service.deployment_configuration.deployment_circuit_breaker.rollback #=> Boolean
8453
8905
  # resp.service.deployment_configuration.maximum_percent #=> Integer
8454
8906
  # resp.service.deployment_configuration.minimum_healthy_percent #=> Integer
8907
+ # resp.service.deployment_configuration.alarms.alarm_names #=> Array
8908
+ # resp.service.deployment_configuration.alarms.alarm_names[0] #=> String
8909
+ # resp.service.deployment_configuration.alarms.enable #=> Boolean
8910
+ # resp.service.deployment_configuration.alarms.rollback #=> Boolean
8455
8911
  # resp.service.task_sets #=> Array
8456
8912
  # resp.service.task_sets[0].id #=> String
8457
8913
  # resp.service.task_sets[0].task_set_arn #=> String
@@ -8519,6 +8975,24 @@ module Aws::ECS
8519
8975
  # resp.service.deployments[0].network_configuration.awsvpc_configuration.assign_public_ip #=> String, one of "ENABLED", "DISABLED"
8520
8976
  # resp.service.deployments[0].rollout_state #=> String, one of "COMPLETED", "FAILED", "IN_PROGRESS"
8521
8977
  # resp.service.deployments[0].rollout_state_reason #=> String
8978
+ # resp.service.deployments[0].service_connect_configuration.enabled #=> Boolean
8979
+ # resp.service.deployments[0].service_connect_configuration.namespace #=> String
8980
+ # resp.service.deployments[0].service_connect_configuration.services #=> Array
8981
+ # resp.service.deployments[0].service_connect_configuration.services[0].port_name #=> String
8982
+ # resp.service.deployments[0].service_connect_configuration.services[0].discovery_name #=> String
8983
+ # resp.service.deployments[0].service_connect_configuration.services[0].client_aliases #=> Array
8984
+ # resp.service.deployments[0].service_connect_configuration.services[0].client_aliases[0].port #=> Integer
8985
+ # resp.service.deployments[0].service_connect_configuration.services[0].client_aliases[0].dns_name #=> String
8986
+ # resp.service.deployments[0].service_connect_configuration.services[0].ingress_port_override #=> Integer
8987
+ # resp.service.deployments[0].service_connect_configuration.log_configuration.log_driver #=> String, one of "json-file", "syslog", "journald", "gelf", "fluentd", "awslogs", "splunk", "awsfirelens"
8988
+ # resp.service.deployments[0].service_connect_configuration.log_configuration.options #=> Hash
8989
+ # resp.service.deployments[0].service_connect_configuration.log_configuration.options["String"] #=> String
8990
+ # resp.service.deployments[0].service_connect_configuration.log_configuration.secret_options #=> Array
8991
+ # resp.service.deployments[0].service_connect_configuration.log_configuration.secret_options[0].name #=> String
8992
+ # resp.service.deployments[0].service_connect_configuration.log_configuration.secret_options[0].value_from #=> String
8993
+ # resp.service.deployments[0].service_connect_resources #=> Array
8994
+ # resp.service.deployments[0].service_connect_resources[0].discovery_name #=> String
8995
+ # resp.service.deployments[0].service_connect_resources[0].discovery_arn #=> String
8522
8996
  # resp.service.role_arn #=> String
8523
8997
  # resp.service.events #=> Array
8524
8998
  # resp.service.events[0].id #=> String
@@ -8645,6 +9119,178 @@ module Aws::ECS
8645
9119
  req.send_request(options)
8646
9120
  end
8647
9121
 
9122
+ # Updates the protection status of a task. You can set
9123
+ # `protectionEnabled` to `true` to protect your task from termination
9124
+ # during scale-in events from [Service Autoscaling][1] or
9125
+ # [deployments][2].
9126
+ #
9127
+ # Task-protection, by default, expires after 2 hours at which point
9128
+ # Amazon ECS unsets the `protectionEnabled` property making the task
9129
+ # eligible for termination by a subsequent scale-in event.
9130
+ #
9131
+ # You can specify a custom expiration period for task protection from 1
9132
+ # minute to up to 2,880 minutes (48 hours). To specify the custom
9133
+ # expiration period, set the `expiresInMinutes` property. The
9134
+ # `expiresInMinutes` property is always reset when you invoke this
9135
+ # operation for a task that already has `protectionEnabled` set to
9136
+ # `true`. You can keep extending the protection expiration period of a
9137
+ # task by invoking this operation repeatedly.
9138
+ #
9139
+ # To learn more about Amazon ECS task protection, see [Task scale-in
9140
+ # protection][3] in the <i> <i>Amazon Elastic Container Service
9141
+ # Developer Guide</i> </i>.
9142
+ #
9143
+ # <note markdown="1"> This operation is only supported for tasks belonging to an Amazon ECS
9144
+ # service. Invoking this operation for a standalone task will result in
9145
+ # an `TASK_NOT_VALID` failure. For more information, see [API failure
9146
+ # reasons][4].
9147
+ #
9148
+ # </note>
9149
+ #
9150
+ # If you prefer to set task protection from within the container, we
9151
+ # recommend using the [Task scale-in protection endpoint][5].
9152
+ #
9153
+ #
9154
+ #
9155
+ # [1]: https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-auto-scaling.html
9156
+ # [2]: https://docs.aws.amazon.com/AmazonECS/latest/developerguide/deployment-types.html
9157
+ # [3]: https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-scale-in-protection.html
9158
+ # [4]: https://docs.aws.amazon.com/AmazonECS/latest/developerguide/api_failures_messages.html
9159
+ # [5]: https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-scale-in-protection-endpoint.html
9160
+ #
9161
+ # @option params [required, String] :cluster
9162
+ # The short name or full Amazon Resource Name (ARN) of the cluster that
9163
+ # hosts the service that the task sets exist in.
9164
+ #
9165
+ # @option params [required, Array<String>] :tasks
9166
+ # A list of up to 10 task IDs or full ARN entries.
9167
+ #
9168
+ # @option params [required, Boolean] :protection_enabled
9169
+ # Specify `true` to mark a task for protection and `false` to unset
9170
+ # protection, making it eligible for termination.
9171
+ #
9172
+ # @option params [Integer] :expires_in_minutes
9173
+ # If you set `protectionEnabled` to `true`, you can specify the duration
9174
+ # for task protection in minutes. You can specify a value from 1 minute
9175
+ # to up to 2,880 minutes (48 hours). During this time, your task will
9176
+ # not be terminated by scale-in events from Service Auto Scaling or
9177
+ # deployments. After this time period lapses, `protectionEnabled` will
9178
+ # be reset to `false`.
9179
+ #
9180
+ # If you don’t specify the time, then the task is automatically
9181
+ # protected for 120 minutes (2 hours).
9182
+ #
9183
+ # @return [Types::UpdateTaskProtectionResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
9184
+ #
9185
+ # * {Types::UpdateTaskProtectionResponse#protected_tasks #protected_tasks} => Array&lt;Types::ProtectedTask&gt;
9186
+ # * {Types::UpdateTaskProtectionResponse#failures #failures} => Array&lt;Types::Failure&gt;
9187
+ #
9188
+ #
9189
+ # @example Example: To set task scale-in protection for a task for 60 minutes
9190
+ #
9191
+ # # This example enables scale-in protection for a task for 60 minutes.
9192
+ #
9193
+ # resp = client.update_task_protection({
9194
+ # cluster: "test-task-protection",
9195
+ # expires_in_minutes: 60,
9196
+ # protection_enabled: true,
9197
+ # tasks: [
9198
+ # "b8b1cf532d0e46ba8d44a40d1de16772",
9199
+ # ],
9200
+ # })
9201
+ #
9202
+ # resp.to_h outputs the following:
9203
+ # {
9204
+ # failures: [
9205
+ # ],
9206
+ # protected_tasks: [
9207
+ # {
9208
+ # expiration_date: Time.parse("2022-11-02T06:56:32.553Z"),
9209
+ # protection_enabled: true,
9210
+ # task_arn: "arn:aws:ecs:us-west-2:012345678910:task/b8b1cf532d0e46ba8d44a40d1de16772",
9211
+ # },
9212
+ # ],
9213
+ # }
9214
+ #
9215
+ # @example Example: To set task scale-in protection for the default time period in minutes
9216
+ #
9217
+ # # This example enables task scale-in protection for a task, without specifying the expiresInMinutes parameter, for the
9218
+ # # default protection period of 120 minutes.
9219
+ #
9220
+ # resp = client.update_task_protection({
9221
+ # cluster: "test-task-protection",
9222
+ # protection_enabled: true,
9223
+ # tasks: [
9224
+ # "b8b1cf532d0e46ba8d44a40d1de16772",
9225
+ # ],
9226
+ # })
9227
+ #
9228
+ # resp.to_h outputs the following:
9229
+ # {
9230
+ # failures: [
9231
+ # ],
9232
+ # protected_tasks: [
9233
+ # {
9234
+ # expiration_date: Time.parse("2022-11-02T06:56:32.553Z"),
9235
+ # protection_enabled: true,
9236
+ # task_arn: "arn:aws:ecs:us-west-2:012345678910:task/b8b1cf532d0e46ba8d44a40d1de16772",
9237
+ # },
9238
+ # ],
9239
+ # }
9240
+ #
9241
+ # @example Example: To remove task scale-in protection
9242
+ #
9243
+ # # This example removes scale-in protection for a task.
9244
+ #
9245
+ # resp = client.update_task_protection({
9246
+ # cluster: "test-task-protection",
9247
+ # protection_enabled: false,
9248
+ # tasks: [
9249
+ # "b8b1cf532d0e46ba8d44a40d1de16772",
9250
+ # ],
9251
+ # })
9252
+ #
9253
+ # resp.to_h outputs the following:
9254
+ # {
9255
+ # failures: [
9256
+ # ],
9257
+ # protected_tasks: [
9258
+ # {
9259
+ # protection_enabled: false,
9260
+ # task_arn: "arn:aws:ecs:us-west-2:012345678910:task/b8b1cf532d0e46ba8d44a40d1de16772",
9261
+ # },
9262
+ # ],
9263
+ # }
9264
+ #
9265
+ # @example Request syntax with placeholder values
9266
+ #
9267
+ # resp = client.update_task_protection({
9268
+ # cluster: "String", # required
9269
+ # tasks: ["String"], # required
9270
+ # protection_enabled: false, # required
9271
+ # expires_in_minutes: 1,
9272
+ # })
9273
+ #
9274
+ # @example Response structure
9275
+ #
9276
+ # resp.protected_tasks #=> Array
9277
+ # resp.protected_tasks[0].task_arn #=> String
9278
+ # resp.protected_tasks[0].protection_enabled #=> Boolean
9279
+ # resp.protected_tasks[0].expiration_date #=> Time
9280
+ # resp.failures #=> Array
9281
+ # resp.failures[0].arn #=> String
9282
+ # resp.failures[0].reason #=> String
9283
+ # resp.failures[0].detail #=> String
9284
+ #
9285
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/UpdateTaskProtection AWS API Documentation
9286
+ #
9287
+ # @overload update_task_protection(params = {})
9288
+ # @param [Hash] params ({})
9289
+ def update_task_protection(params = {}, options = {})
9290
+ req = build_request(:update_task_protection, params)
9291
+ req.send_request(options)
9292
+ end
9293
+
8648
9294
  # Modifies a task set. This is used when a service uses the `EXTERNAL`
8649
9295
  # deployment controller type. For more information, see [Amazon ECS
8650
9296
  # Deployment Types][1] in the *Amazon Elastic Container Service
@@ -8753,7 +9399,7 @@ module Aws::ECS
8753
9399
  params: params,
8754
9400
  config: config)
8755
9401
  context[:gem_name] = 'aws-sdk-ecs'
8756
- context[:gem_version] = '1.99.0'
9402
+ context[:gem_version] = '1.110.0'
8757
9403
  Seahorse::Client::Request.new(handlers, context)
8758
9404
  end
8759
9405