aws-sdk-ecs 1.99.0 → 1.110.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.
@@ -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