aws-sdk-ecs 1.99.0 → 1.121.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
@@ -274,6 +275,11 @@ module Aws::ECS
274
275
  # in the future.
275
276
  #
276
277
  #
278
+ # @option options [String] :sdk_ua_app_id
279
+ # A unique and opaque application ID that is appended to the
280
+ # User-Agent header as app/<sdk_ua_app_id>. It should have a
281
+ # maximum length of 50.
282
+ #
277
283
  # @option options [String] :secret_access_key
278
284
  #
279
285
  # @option options [String] :session_token
@@ -297,6 +303,19 @@ module Aws::ECS
297
303
  # ** Please note ** When response stubbing is enabled, no HTTP
298
304
  # requests are made, and retries are disabled.
299
305
  #
306
+ # @option options [Aws::TokenProvider] :token_provider
307
+ # A Bearer Token Provider. This can be an instance of any one of the
308
+ # following classes:
309
+ #
310
+ # * `Aws::StaticTokenProvider` - Used for configuring static, non-refreshing
311
+ # tokens.
312
+ #
313
+ # * `Aws::SSOTokenProvider` - Used for loading tokens from AWS SSO using an
314
+ # access token generated from `aws login`.
315
+ #
316
+ # When `:token_provider` is not configured directly, the `Aws::TokenProviderChain`
317
+ # will be used to search for tokens configured for your profile in shared configuration files.
318
+ #
300
319
  # @option options [Boolean] :use_dualstack_endpoint
301
320
  # When set to `true`, dualstack enabled endpoints (with `.aws` TLD)
302
321
  # will be used if available.
@@ -310,6 +329,9 @@ module Aws::ECS
310
329
  # When `true`, request parameters are validated before
311
330
  # sending the request.
312
331
  #
332
+ # @option options [Aws::ECS::EndpointProvider] :endpoint_provider
333
+ # 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`
334
+ #
313
335
  # @option options [URI::HTTP,String] :http_proxy A proxy to send
314
336
  # requests through. Formatted like 'http://proxy.com:123'.
315
337
  #
@@ -471,9 +493,9 @@ module Aws::ECS
471
493
  # <note markdown="1"> When you call the CreateCluster API operation, Amazon ECS attempts to
472
494
  # create the Amazon ECS service-linked role for your account. This is so
473
495
  # that it can manage required resources in other Amazon Web Services
474
- # services on your behalf. However, if the IAM user that makes the call
496
+ # services on your behalf. However, if the user that makes the call
475
497
  # doesn't have permissions to create the service-linked role, it isn't
476
- # created. For more information, see [Using Service-Linked Roles for
498
+ # created. For more information, see [Using service-linked roles for
477
499
  # Amazon ECS][1] in the *Amazon Elastic Container Service Developer
478
500
  # Guide*.
479
501
  #
@@ -533,33 +555,67 @@ module Aws::ECS
533
555
  # cluster. A capacity provider must be associated with a cluster before
534
556
  # it can be included as part of the default capacity provider strategy
535
557
  # of the cluster or used in a capacity provider strategy when calling
536
- # the CreateService or RunTask actions.
558
+ # the [CreateService][1] or [RunTask][2] actions.
537
559
  #
538
560
  # If specifying a capacity provider that uses an Auto Scaling group, the
539
561
  # capacity provider must be created but not associated with another
540
562
  # cluster. New Auto Scaling group capacity providers can be created with
541
- # the CreateCapacityProvider API operation.
563
+ # the [CreateCapacityProvider][3] API operation.
542
564
  #
543
565
  # To use a Fargate capacity provider, specify either the `FARGATE` or
544
566
  # `FARGATE_SPOT` capacity providers. The Fargate capacity providers are
545
567
  # available to all accounts and only need to be associated with a
546
568
  # cluster to be used.
547
569
  #
548
- # The PutClusterCapacityProviders API operation is used to update the
549
- # list of available capacity providers for a cluster after the cluster
550
- # is created.
570
+ # The [PutCapacityProvider][4] API operation is used to update the list
571
+ # of available capacity providers for a cluster after the cluster is
572
+ # created.
573
+ #
574
+ #
575
+ #
576
+ # [1]: https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_CreateService.html
577
+ # [2]: https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_RunTask.html
578
+ # [3]: https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_CreateCapacityProvider.html
579
+ # [4]: https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_PutCapacityProvider.html
551
580
  #
552
581
  # @option params [Array<Types::CapacityProviderStrategyItem>] :default_capacity_provider_strategy
553
582
  # The capacity provider strategy to set as the default for the cluster.
554
583
  # After a default capacity provider strategy is set for a cluster, when
555
- # you call the RunTask or CreateService APIs with no capacity provider
556
- # strategy or launch type specified, the default capacity provider
557
- # strategy for the cluster is used.
584
+ # you call the [CreateService][1] or [RunTask][2] APIs with no capacity
585
+ # provider strategy or launch type specified, the default capacity
586
+ # provider strategy for the cluster is used.
558
587
  #
559
588
  # If a default capacity provider strategy isn't defined for a cluster
560
589
  # when it was created, it can be defined later with the
561
590
  # PutClusterCapacityProviders API operation.
562
591
  #
592
+ #
593
+ #
594
+ # [1]: https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_CreateService.html
595
+ # [2]: https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_RunTask.html
596
+ #
597
+ # @option params [Types::ClusterServiceConnectDefaultsRequest] :service_connect_defaults
598
+ # Use this parameter to set a default Service Connect namespace. After
599
+ # you set a default Service Connect namespace, any new services with
600
+ # Service Connect turned on that are created in the cluster are added as
601
+ # client services in the namespace. This setting only applies to new
602
+ # services that set the `enabled` parameter to `true` in the
603
+ # `ServiceConnectConfiguration`. You can set the namespace of each
604
+ # service individually in the `ServiceConnectConfiguration` to override
605
+ # this default parameter.
606
+ #
607
+ # Tasks that run in a namespace can use short names to connect to
608
+ # services in the namespace. Tasks can connect to services across all of
609
+ # the clusters in the namespace. Tasks connect through a managed proxy
610
+ # container that collects logs and metrics for increased visibility.
611
+ # Only the tasks that Amazon ECS services create are supported with
612
+ # Service Connect. For more information, see [Service Connect][1] in the
613
+ # *Amazon Elastic Container Service Developer Guide*.
614
+ #
615
+ #
616
+ #
617
+ # [1]: https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-connect.html
618
+ #
563
619
  # @return [Types::CreateClusterResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
564
620
  #
565
621
  # * {Types::CreateClusterResponse#cluster #cluster} => Types::Cluster
@@ -623,6 +679,9 @@ module Aws::ECS
623
679
  # base: 1,
624
680
  # },
625
681
  # ],
682
+ # service_connect_defaults: {
683
+ # namespace: "String", # required
684
+ # },
626
685
  # })
627
686
  #
628
687
  # @example Response structure
@@ -664,6 +723,7 @@ module Aws::ECS
664
723
  # resp.cluster.attachments[0].details[0].name #=> String
665
724
  # resp.cluster.attachments[0].details[0].value #=> String
666
725
  # resp.cluster.attachments_status #=> String
726
+ # resp.cluster.service_connect_defaults.namespace #=> String
667
727
  #
668
728
  # @see http://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/CreateCluster AWS API Documentation
669
729
  #
@@ -680,11 +740,22 @@ module Aws::ECS
680
740
  # specified cluster. To update an existing service, see the
681
741
  # UpdateService action.
682
742
  #
743
+ # <note markdown="1"> Starting April 15, 2023, Amazon Web Services will not onboard new
744
+ # customers to Amazon Elastic Inference (EI), and will help current
745
+ # customers migrate their workloads to options that offer better price
746
+ # and performance. After April 15, 2023, new customers will not be able
747
+ # to launch instances with Amazon EI accelerators in Amazon SageMaker,
748
+ # Amazon ECS, or Amazon EC2. However, customers who have used Amazon EI
749
+ # at least once during the past 30-day period are considered current
750
+ # customers and will be able to continue using the service.
751
+ #
752
+ # </note>
753
+ #
683
754
  # In addition to maintaining the desired count of tasks in your service,
684
755
  # you can optionally run your service behind one or more load balancers.
685
756
  # 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
757
+ # associated with the service. For more information, see [Service load
758
+ # balancing][1] in the *Amazon Elastic Container Service Developer
688
759
  # Guide*.
689
760
  #
690
761
  # Tasks for services that don't use a load balancer are considered
@@ -698,8 +769,8 @@ module Aws::ECS
698
769
  # your desired number of tasks across your cluster. By default, the
699
770
  # service scheduler spreads tasks across Availability Zones. You can
700
771
  # 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
772
+ # placement decisions. For more information, see [Service scheduler
773
+ # concepts][2] in the *Amazon Elastic Container Service Developer
703
774
  # Guide*.
704
775
  #
705
776
  # * `DAEMON` - The daemon scheduling strategy deploys exactly one task
@@ -709,8 +780,8 @@ module Aws::ECS
709
780
  # tasks. It also stops tasks that don't meet the placement
710
781
  # constraints. When using this strategy, you don't need to specify a
711
782
  # 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
783
+ # Auto Scaling policies. For more information, see [Service scheduler
784
+ # concepts][2] in the *Amazon Elastic Container Service Developer
714
785
  # Guide*.
715
786
  #
716
787
  # You can optionally specify a deployment configuration for your
@@ -766,38 +837,20 @@ module Aws::ECS
766
837
  # controller, you can specify only parameters that aren't controlled at
767
838
  # the task set level. The only required parameter is the service name.
768
839
  # You control your services using the CreateTaskSet operation. For more
769
- # information, see [Amazon ECS Deployment Types][3] in the *Amazon
840
+ # information, see [Amazon ECS deployment types][3] in the *Amazon
770
841
  # Elastic Container Service Developer Guide*.
771
842
  #
772
843
  # 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.
844
+ # placement. For information about task placement and task placement
845
+ # strategies, see [Amazon ECS task placement][4] in the *Amazon Elastic
846
+ # Container Service Developer Guide*.
795
847
  #
796
848
  #
797
849
  #
798
850
  # [1]: https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-load-balancing.html
799
851
  # [2]: https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs_services.html
800
852
  # [3]: https://docs.aws.amazon.com/AmazonECS/latest/developerguide/deployment-types.html
853
+ # [4]: https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-placement.html
801
854
  #
802
855
  # @option params [String] :cluster
803
856
  # The short name or full Amazon Resource Name (ARN) of the cluster that
@@ -818,9 +871,16 @@ module Aws::ECS
818
871
  # A task definition must be specified if the service uses either the
819
872
  # `ECS` or `CODE_DEPLOY` deployment controllers.
820
873
  #
874
+ # For more information about deployment types, see [Amazon ECS
875
+ # deployment types][1].
876
+ #
877
+ #
878
+ #
879
+ # [1]: https://docs.aws.amazon.com/AmazonECS/latest/developerguide/deployment-types.html
880
+ #
821
881
  # @option params [Array<Types::LoadBalancer>] :load_balancers
822
882
  # A load balancer object representing the load balancers to use with
823
- # your service. For more information, see [Service Load Balancing][1] in
883
+ # your service. For more information, see [Service load balancing][1] in
824
884
  # the *Amazon Elastic Container Service Developer Guide*.
825
885
  #
826
886
  # If the service uses the rolling update (`ECS`) deployment controller
@@ -891,7 +951,7 @@ module Aws::ECS
891
951
  #
892
952
  # @option params [Integer] :desired_count
893
953
  # The number of instantiations of the specified task definition to place
894
- # and keep running on your cluster.
954
+ # and keep running in your service.
895
955
  #
896
956
  # This is required if `schedulingStrategy` is `REPLICA` or isn't
897
957
  # specified. If `schedulingStrategy` is `DAEMON` then this isn't
@@ -1016,8 +1076,8 @@ module Aws::ECS
1016
1076
  # defined and you don't specify a health check grace period value, the
1017
1077
  # default value of `0` is used.
1018
1078
  #
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
1079
+ # If you do not use an Elastic Load Balancing, we recommend that you use
1080
+ # the `startPeriod` in the task definition health check parameters. For
1021
1081
  # more information, see [Health check][1].
1022
1082
  #
1023
1083
  # If your service's tasks take a while to start and respond to Elastic
@@ -1100,8 +1160,8 @@ module Aws::ECS
1100
1160
  #
1101
1161
  # @option params [Boolean] :enable_ecs_managed_tags
1102
1162
  # 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
1163
+ # within the service. For more information, see [Tagging your Amazon ECS
1164
+ # resources][1] in the *Amazon Elastic Container Service Developer
1105
1165
  # Guide*.
1106
1166
  #
1107
1167
  #
@@ -1112,13 +1172,34 @@ module Aws::ECS
1112
1172
  # Specifies whether to propagate the tags from the task definition to
1113
1173
  # the task. If no value is specified, the tags aren't propagated. Tags
1114
1174
  # can only be propagated to the task during task creation. To add tags
1115
- # to a task after task creation, use the TagResource API action.
1175
+ # to a task after task creation, use the [TagResource][1] API action.
1176
+ #
1177
+ #
1178
+ #
1179
+ # [1]: https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_TagResource.html
1116
1180
  #
1117
1181
  # @option params [Boolean] :enable_execute_command
1118
- # Determines whether the execute command functionality is enabled for
1182
+ # Determines whether the execute command functionality is turned on for
1119
1183
  # the service. If `true`, this enables execute command functionality on
1120
1184
  # all containers in the service tasks.
1121
1185
  #
1186
+ # @option params [Types::ServiceConnectConfiguration] :service_connect_configuration
1187
+ # The configuration for this service to discover and connect to
1188
+ # services, and be discovered by, and connected from, other services
1189
+ # within a namespace.
1190
+ #
1191
+ # Tasks that run in a namespace can use short names to connect to
1192
+ # services in the namespace. Tasks can connect to services across all of
1193
+ # the clusters in the namespace. Tasks connect through a managed proxy
1194
+ # container that collects logs and metrics for increased visibility.
1195
+ # Only the tasks that Amazon ECS services create are supported with
1196
+ # Service Connect. For more information, see [Service Connect][1] in the
1197
+ # *Amazon Elastic Container Service Developer Guide*.
1198
+ #
1199
+ #
1200
+ #
1201
+ # [1]: https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-connect.html
1202
+ #
1122
1203
  # @return [Types::CreateServiceResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1123
1204
  #
1124
1205
  # * {Types::CreateServiceResponse#service #service} => Types::Service
@@ -1282,6 +1363,11 @@ module Aws::ECS
1282
1363
  # },
1283
1364
  # maximum_percent: 1,
1284
1365
  # minimum_healthy_percent: 1,
1366
+ # alarms: {
1367
+ # alarm_names: ["String"], # required
1368
+ # enable: false, # required
1369
+ # rollback: false, # required
1370
+ # },
1285
1371
  # },
1286
1372
  # placement_constraints: [
1287
1373
  # {
@@ -1316,6 +1402,35 @@ module Aws::ECS
1316
1402
  # enable_ecs_managed_tags: false,
1317
1403
  # propagate_tags: "TASK_DEFINITION", # accepts TASK_DEFINITION, SERVICE, NONE
1318
1404
  # enable_execute_command: false,
1405
+ # service_connect_configuration: {
1406
+ # enabled: false, # required
1407
+ # namespace: "String",
1408
+ # services: [
1409
+ # {
1410
+ # port_name: "String", # required
1411
+ # discovery_name: "String",
1412
+ # client_aliases: [
1413
+ # {
1414
+ # port: 1, # required
1415
+ # dns_name: "String",
1416
+ # },
1417
+ # ],
1418
+ # ingress_port_override: 1,
1419
+ # },
1420
+ # ],
1421
+ # log_configuration: {
1422
+ # log_driver: "json-file", # required, accepts json-file, syslog, journald, gelf, fluentd, awslogs, splunk, awsfirelens
1423
+ # options: {
1424
+ # "String" => "String",
1425
+ # },
1426
+ # secret_options: [
1427
+ # {
1428
+ # name: "String", # required
1429
+ # value_from: "String", # required
1430
+ # },
1431
+ # ],
1432
+ # },
1433
+ # },
1319
1434
  # })
1320
1435
  #
1321
1436
  # @example Response structure
@@ -1349,6 +1464,10 @@ module Aws::ECS
1349
1464
  # resp.service.deployment_configuration.deployment_circuit_breaker.rollback #=> Boolean
1350
1465
  # resp.service.deployment_configuration.maximum_percent #=> Integer
1351
1466
  # resp.service.deployment_configuration.minimum_healthy_percent #=> Integer
1467
+ # resp.service.deployment_configuration.alarms.alarm_names #=> Array
1468
+ # resp.service.deployment_configuration.alarms.alarm_names[0] #=> String
1469
+ # resp.service.deployment_configuration.alarms.enable #=> Boolean
1470
+ # resp.service.deployment_configuration.alarms.rollback #=> Boolean
1352
1471
  # resp.service.task_sets #=> Array
1353
1472
  # resp.service.task_sets[0].id #=> String
1354
1473
  # resp.service.task_sets[0].task_set_arn #=> String
@@ -1416,6 +1535,24 @@ module Aws::ECS
1416
1535
  # resp.service.deployments[0].network_configuration.awsvpc_configuration.assign_public_ip #=> String, one of "ENABLED", "DISABLED"
1417
1536
  # resp.service.deployments[0].rollout_state #=> String, one of "COMPLETED", "FAILED", "IN_PROGRESS"
1418
1537
  # resp.service.deployments[0].rollout_state_reason #=> String
1538
+ # resp.service.deployments[0].service_connect_configuration.enabled #=> Boolean
1539
+ # resp.service.deployments[0].service_connect_configuration.namespace #=> String
1540
+ # resp.service.deployments[0].service_connect_configuration.services #=> Array
1541
+ # resp.service.deployments[0].service_connect_configuration.services[0].port_name #=> String
1542
+ # resp.service.deployments[0].service_connect_configuration.services[0].discovery_name #=> String
1543
+ # resp.service.deployments[0].service_connect_configuration.services[0].client_aliases #=> Array
1544
+ # resp.service.deployments[0].service_connect_configuration.services[0].client_aliases[0].port #=> Integer
1545
+ # resp.service.deployments[0].service_connect_configuration.services[0].client_aliases[0].dns_name #=> String
1546
+ # resp.service.deployments[0].service_connect_configuration.services[0].ingress_port_override #=> Integer
1547
+ # resp.service.deployments[0].service_connect_configuration.log_configuration.log_driver #=> String, one of "json-file", "syslog", "journald", "gelf", "fluentd", "awslogs", "splunk", "awsfirelens"
1548
+ # resp.service.deployments[0].service_connect_configuration.log_configuration.options #=> Hash
1549
+ # resp.service.deployments[0].service_connect_configuration.log_configuration.options["String"] #=> String
1550
+ # resp.service.deployments[0].service_connect_configuration.log_configuration.secret_options #=> Array
1551
+ # resp.service.deployments[0].service_connect_configuration.log_configuration.secret_options[0].name #=> String
1552
+ # resp.service.deployments[0].service_connect_configuration.log_configuration.secret_options[0].value_from #=> String
1553
+ # resp.service.deployments[0].service_connect_resources #=> Array
1554
+ # resp.service.deployments[0].service_connect_resources[0].discovery_name #=> String
1555
+ # resp.service.deployments[0].service_connect_resources[0].discovery_arn #=> String
1419
1556
  # resp.service.role_arn #=> String
1420
1557
  # resp.service.events #=> Array
1421
1558
  # resp.service.events[0].id #=> String
@@ -1455,7 +1592,7 @@ module Aws::ECS
1455
1592
 
1456
1593
  # Create a task set in the specified cluster and service. This is used
1457
1594
  # when a service uses the `EXTERNAL` deployment controller type. For
1458
- # more information, see [Amazon ECS Deployment Types][1] in the *Amazon
1595
+ # more information, see [Amazon ECS deployment types][1] in the *Amazon
1459
1596
  # Elastic Container Service Developer Guide*.
1460
1597
  #
1461
1598
  #
@@ -1490,7 +1627,7 @@ module Aws::ECS
1490
1627
  #
1491
1628
  # @option params [Array<Types::ServiceRegistry>] :service_registries
1492
1629
  # The details of the service discovery registries to assign to this task
1493
- # set. For more information, see [Service Discovery][1].
1630
+ # set. For more information, see [Service discovery][1].
1494
1631
  #
1495
1632
  #
1496
1633
  #
@@ -1498,7 +1635,7 @@ module Aws::ECS
1498
1635
  #
1499
1636
  # @option params [String] :launch_type
1500
1637
  # 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
1638
+ # information, see [Amazon ECS launch types][1] in the *Amazon Elastic
1502
1639
  # Container Service Developer Guide*.
1503
1640
  #
1504
1641
  # If a `launchType` is specified, the `capacityProviderStrategy`
@@ -1690,8 +1827,8 @@ module Aws::ECS
1690
1827
  req.send_request(options)
1691
1828
  end
1692
1829
 
1693
- # Disables an account setting for a specified IAM user, IAM role, or the
1694
- # root user for an account.
1830
+ # Disables an account setting for a specified user, role, or the root
1831
+ # user for an account.
1695
1832
  #
1696
1833
  # @option params [required, String] :name
1697
1834
  # The resource name to disable the account setting for. If
@@ -1704,12 +1841,12 @@ module Aws::ECS
1704
1841
  # container instances is affected.
1705
1842
  #
1706
1843
  # @option params [String] :principal_arn
1707
- # The Amazon Resource Name (ARN) of the principal. It can be an IAM
1708
- # user, IAM role, or the root user. If you specify the root user, it
1709
- # disables the account setting for all IAM users, IAM roles, and the
1710
- # root user of the account unless an IAM user or role explicitly
1711
- # overrides these settings. If this field is omitted, the setting is
1712
- # changed only for the authenticated user.
1844
+ # The Amazon Resource Name (ARN) of the principal. It can be an user,
1845
+ # role, or the root user. If you specify the root user, it disables the
1846
+ # account setting for all users, roles, and the root user of the account
1847
+ # unless a user or role explicitly overrides these settings. If this
1848
+ # field is omitted, the setting is changed only for the authenticated
1849
+ # user.
1713
1850
  #
1714
1851
  # @return [Types::DeleteAccountSettingResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1715
1852
  #
@@ -1755,13 +1892,13 @@ module Aws::ECS
1755
1892
  # @example Request syntax with placeholder values
1756
1893
  #
1757
1894
  # resp = client.delete_account_setting({
1758
- # name: "serviceLongArnFormat", # required, accepts serviceLongArnFormat, taskLongArnFormat, containerInstanceLongArnFormat, awsvpcTrunking, containerInsights
1895
+ # name: "serviceLongArnFormat", # required, accepts serviceLongArnFormat, taskLongArnFormat, containerInstanceLongArnFormat, awsvpcTrunking, containerInsights, fargateFIPSMode, tagResourceAuthorization
1759
1896
  # principal_arn: "String",
1760
1897
  # })
1761
1898
  #
1762
1899
  # @example Response structure
1763
1900
  #
1764
- # resp.setting.name #=> String, one of "serviceLongArnFormat", "taskLongArnFormat", "containerInstanceLongArnFormat", "awsvpcTrunking", "containerInsights"
1901
+ # resp.setting.name #=> String, one of "serviceLongArnFormat", "taskLongArnFormat", "containerInstanceLongArnFormat", "awsvpcTrunking", "containerInsights", "fargateFIPSMode", "tagResourceAuthorization"
1765
1902
  # resp.setting.value #=> String
1766
1903
  # resp.setting.principal_arn #=> String
1767
1904
  #
@@ -1969,6 +2106,7 @@ module Aws::ECS
1969
2106
  # resp.cluster.attachments[0].details[0].name #=> String
1970
2107
  # resp.cluster.attachments[0].details[0].value #=> String
1971
2108
  # resp.cluster.attachments_status #=> String
2109
+ # resp.cluster.service_connect_defaults.namespace #=> String
1972
2110
  #
1973
2111
  # @see http://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/DeleteCluster AWS API Documentation
1974
2112
  #
@@ -2072,6 +2210,10 @@ module Aws::ECS
2072
2210
  # resp.service.deployment_configuration.deployment_circuit_breaker.rollback #=> Boolean
2073
2211
  # resp.service.deployment_configuration.maximum_percent #=> Integer
2074
2212
  # resp.service.deployment_configuration.minimum_healthy_percent #=> Integer
2213
+ # resp.service.deployment_configuration.alarms.alarm_names #=> Array
2214
+ # resp.service.deployment_configuration.alarms.alarm_names[0] #=> String
2215
+ # resp.service.deployment_configuration.alarms.enable #=> Boolean
2216
+ # resp.service.deployment_configuration.alarms.rollback #=> Boolean
2075
2217
  # resp.service.task_sets #=> Array
2076
2218
  # resp.service.task_sets[0].id #=> String
2077
2219
  # resp.service.task_sets[0].task_set_arn #=> String
@@ -2139,6 +2281,24 @@ module Aws::ECS
2139
2281
  # resp.service.deployments[0].network_configuration.awsvpc_configuration.assign_public_ip #=> String, one of "ENABLED", "DISABLED"
2140
2282
  # resp.service.deployments[0].rollout_state #=> String, one of "COMPLETED", "FAILED", "IN_PROGRESS"
2141
2283
  # resp.service.deployments[0].rollout_state_reason #=> String
2284
+ # resp.service.deployments[0].service_connect_configuration.enabled #=> Boolean
2285
+ # resp.service.deployments[0].service_connect_configuration.namespace #=> String
2286
+ # resp.service.deployments[0].service_connect_configuration.services #=> Array
2287
+ # resp.service.deployments[0].service_connect_configuration.services[0].port_name #=> String
2288
+ # resp.service.deployments[0].service_connect_configuration.services[0].discovery_name #=> String
2289
+ # resp.service.deployments[0].service_connect_configuration.services[0].client_aliases #=> Array
2290
+ # resp.service.deployments[0].service_connect_configuration.services[0].client_aliases[0].port #=> Integer
2291
+ # resp.service.deployments[0].service_connect_configuration.services[0].client_aliases[0].dns_name #=> String
2292
+ # resp.service.deployments[0].service_connect_configuration.services[0].ingress_port_override #=> Integer
2293
+ # resp.service.deployments[0].service_connect_configuration.log_configuration.log_driver #=> String, one of "json-file", "syslog", "journald", "gelf", "fluentd", "awslogs", "splunk", "awsfirelens"
2294
+ # resp.service.deployments[0].service_connect_configuration.log_configuration.options #=> Hash
2295
+ # resp.service.deployments[0].service_connect_configuration.log_configuration.options["String"] #=> String
2296
+ # resp.service.deployments[0].service_connect_configuration.log_configuration.secret_options #=> Array
2297
+ # resp.service.deployments[0].service_connect_configuration.log_configuration.secret_options[0].name #=> String
2298
+ # resp.service.deployments[0].service_connect_configuration.log_configuration.secret_options[0].value_from #=> String
2299
+ # resp.service.deployments[0].service_connect_resources #=> Array
2300
+ # resp.service.deployments[0].service_connect_resources[0].discovery_name #=> String
2301
+ # resp.service.deployments[0].service_connect_resources[0].discovery_arn #=> String
2142
2302
  # resp.service.role_arn #=> String
2143
2303
  # resp.service.events #=> Array
2144
2304
  # resp.service.events[0].id #=> String
@@ -2176,9 +2336,229 @@ module Aws::ECS
2176
2336
  req.send_request(options)
2177
2337
  end
2178
2338
 
2339
+ # Deletes one or more task definitions.
2340
+ #
2341
+ # You must deregister a task definition revision before you delete it.
2342
+ # For more information, see [DeregisterTaskDefinition][1].
2343
+ #
2344
+ # When you delete a task definition revision, it is immediately
2345
+ # transitions from the `INACTIVE` to `DELETE_IN_PROGRESS`. Existing
2346
+ # tasks and services that reference a `DELETE_IN_PROGRESS` task
2347
+ # definition revision continue to run without disruption. Existing
2348
+ # services that reference a `DELETE_IN_PROGRESS` task definition
2349
+ # revision can still scale up or down by modifying the service's
2350
+ # desired count.
2351
+ #
2352
+ # You can't use a `DELETE_IN_PROGRESS` task definition revision to run
2353
+ # new tasks or create new services. You also can't update an existing
2354
+ # service to reference a `DELETE_IN_PROGRESS` task definition revision.
2355
+ #
2356
+ # A task definition revision will stay in `DELETE_IN_PROGRESS` status
2357
+ # until all the associated tasks and services have been terminated.
2358
+ #
2359
+ #
2360
+ #
2361
+ # [1]: https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_DeregisterTaskDefinition.html
2362
+ #
2363
+ # @option params [required, Array<String>] :task_definitions
2364
+ # The `family` and `revision` (`family:revision`) or full Amazon
2365
+ # Resource Name (ARN) of the task definition to delete. You must specify
2366
+ # a `revision`.
2367
+ #
2368
+ # You can specify up to 10 task definitions as a comma separated list.
2369
+ #
2370
+ # @return [Types::DeleteTaskDefinitionsResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
2371
+ #
2372
+ # * {Types::DeleteTaskDefinitionsResponse#task_definitions #task_definitions} => Array&lt;Types::TaskDefinition&gt;
2373
+ # * {Types::DeleteTaskDefinitionsResponse#failures #failures} => Array&lt;Types::Failure&gt;
2374
+ #
2375
+ # @example Request syntax with placeholder values
2376
+ #
2377
+ # resp = client.delete_task_definitions({
2378
+ # task_definitions: ["String"], # required
2379
+ # })
2380
+ #
2381
+ # @example Response structure
2382
+ #
2383
+ # resp.task_definitions #=> Array
2384
+ # resp.task_definitions[0].task_definition_arn #=> String
2385
+ # resp.task_definitions[0].container_definitions #=> Array
2386
+ # resp.task_definitions[0].container_definitions[0].name #=> String
2387
+ # resp.task_definitions[0].container_definitions[0].image #=> String
2388
+ # resp.task_definitions[0].container_definitions[0].repository_credentials.credentials_parameter #=> String
2389
+ # resp.task_definitions[0].container_definitions[0].cpu #=> Integer
2390
+ # resp.task_definitions[0].container_definitions[0].memory #=> Integer
2391
+ # resp.task_definitions[0].container_definitions[0].memory_reservation #=> Integer
2392
+ # resp.task_definitions[0].container_definitions[0].links #=> Array
2393
+ # resp.task_definitions[0].container_definitions[0].links[0] #=> String
2394
+ # resp.task_definitions[0].container_definitions[0].port_mappings #=> Array
2395
+ # resp.task_definitions[0].container_definitions[0].port_mappings[0].container_port #=> Integer
2396
+ # resp.task_definitions[0].container_definitions[0].port_mappings[0].host_port #=> Integer
2397
+ # resp.task_definitions[0].container_definitions[0].port_mappings[0].protocol #=> String, one of "tcp", "udp"
2398
+ # resp.task_definitions[0].container_definitions[0].port_mappings[0].name #=> String
2399
+ # resp.task_definitions[0].container_definitions[0].port_mappings[0].app_protocol #=> String, one of "http", "http2", "grpc"
2400
+ # resp.task_definitions[0].container_definitions[0].port_mappings[0].container_port_range #=> String
2401
+ # resp.task_definitions[0].container_definitions[0].essential #=> Boolean
2402
+ # resp.task_definitions[0].container_definitions[0].entry_point #=> Array
2403
+ # resp.task_definitions[0].container_definitions[0].entry_point[0] #=> String
2404
+ # resp.task_definitions[0].container_definitions[0].command #=> Array
2405
+ # resp.task_definitions[0].container_definitions[0].command[0] #=> String
2406
+ # resp.task_definitions[0].container_definitions[0].environment #=> Array
2407
+ # resp.task_definitions[0].container_definitions[0].environment[0].name #=> String
2408
+ # resp.task_definitions[0].container_definitions[0].environment[0].value #=> String
2409
+ # resp.task_definitions[0].container_definitions[0].environment_files #=> Array
2410
+ # resp.task_definitions[0].container_definitions[0].environment_files[0].value #=> String
2411
+ # resp.task_definitions[0].container_definitions[0].environment_files[0].type #=> String, one of "s3"
2412
+ # resp.task_definitions[0].container_definitions[0].mount_points #=> Array
2413
+ # resp.task_definitions[0].container_definitions[0].mount_points[0].source_volume #=> String
2414
+ # resp.task_definitions[0].container_definitions[0].mount_points[0].container_path #=> String
2415
+ # resp.task_definitions[0].container_definitions[0].mount_points[0].read_only #=> Boolean
2416
+ # resp.task_definitions[0].container_definitions[0].volumes_from #=> Array
2417
+ # resp.task_definitions[0].container_definitions[0].volumes_from[0].source_container #=> String
2418
+ # resp.task_definitions[0].container_definitions[0].volumes_from[0].read_only #=> Boolean
2419
+ # resp.task_definitions[0].container_definitions[0].linux_parameters.capabilities.add #=> Array
2420
+ # resp.task_definitions[0].container_definitions[0].linux_parameters.capabilities.add[0] #=> String
2421
+ # resp.task_definitions[0].container_definitions[0].linux_parameters.capabilities.drop #=> Array
2422
+ # resp.task_definitions[0].container_definitions[0].linux_parameters.capabilities.drop[0] #=> String
2423
+ # resp.task_definitions[0].container_definitions[0].linux_parameters.devices #=> Array
2424
+ # resp.task_definitions[0].container_definitions[0].linux_parameters.devices[0].host_path #=> String
2425
+ # resp.task_definitions[0].container_definitions[0].linux_parameters.devices[0].container_path #=> String
2426
+ # resp.task_definitions[0].container_definitions[0].linux_parameters.devices[0].permissions #=> Array
2427
+ # resp.task_definitions[0].container_definitions[0].linux_parameters.devices[0].permissions[0] #=> String, one of "read", "write", "mknod"
2428
+ # resp.task_definitions[0].container_definitions[0].linux_parameters.init_process_enabled #=> Boolean
2429
+ # resp.task_definitions[0].container_definitions[0].linux_parameters.shared_memory_size #=> Integer
2430
+ # resp.task_definitions[0].container_definitions[0].linux_parameters.tmpfs #=> Array
2431
+ # resp.task_definitions[0].container_definitions[0].linux_parameters.tmpfs[0].container_path #=> String
2432
+ # resp.task_definitions[0].container_definitions[0].linux_parameters.tmpfs[0].size #=> Integer
2433
+ # resp.task_definitions[0].container_definitions[0].linux_parameters.tmpfs[0].mount_options #=> Array
2434
+ # resp.task_definitions[0].container_definitions[0].linux_parameters.tmpfs[0].mount_options[0] #=> String
2435
+ # resp.task_definitions[0].container_definitions[0].linux_parameters.max_swap #=> Integer
2436
+ # resp.task_definitions[0].container_definitions[0].linux_parameters.swappiness #=> Integer
2437
+ # resp.task_definitions[0].container_definitions[0].secrets #=> Array
2438
+ # resp.task_definitions[0].container_definitions[0].secrets[0].name #=> String
2439
+ # resp.task_definitions[0].container_definitions[0].secrets[0].value_from #=> String
2440
+ # resp.task_definitions[0].container_definitions[0].depends_on #=> Array
2441
+ # resp.task_definitions[0].container_definitions[0].depends_on[0].container_name #=> String
2442
+ # resp.task_definitions[0].container_definitions[0].depends_on[0].condition #=> String, one of "START", "COMPLETE", "SUCCESS", "HEALTHY"
2443
+ # resp.task_definitions[0].container_definitions[0].start_timeout #=> Integer
2444
+ # resp.task_definitions[0].container_definitions[0].stop_timeout #=> Integer
2445
+ # resp.task_definitions[0].container_definitions[0].hostname #=> String
2446
+ # resp.task_definitions[0].container_definitions[0].user #=> String
2447
+ # resp.task_definitions[0].container_definitions[0].working_directory #=> String
2448
+ # resp.task_definitions[0].container_definitions[0].disable_networking #=> Boolean
2449
+ # resp.task_definitions[0].container_definitions[0].privileged #=> Boolean
2450
+ # resp.task_definitions[0].container_definitions[0].readonly_root_filesystem #=> Boolean
2451
+ # resp.task_definitions[0].container_definitions[0].dns_servers #=> Array
2452
+ # resp.task_definitions[0].container_definitions[0].dns_servers[0] #=> String
2453
+ # resp.task_definitions[0].container_definitions[0].dns_search_domains #=> Array
2454
+ # resp.task_definitions[0].container_definitions[0].dns_search_domains[0] #=> String
2455
+ # resp.task_definitions[0].container_definitions[0].extra_hosts #=> Array
2456
+ # resp.task_definitions[0].container_definitions[0].extra_hosts[0].hostname #=> String
2457
+ # resp.task_definitions[0].container_definitions[0].extra_hosts[0].ip_address #=> String
2458
+ # resp.task_definitions[0].container_definitions[0].docker_security_options #=> Array
2459
+ # resp.task_definitions[0].container_definitions[0].docker_security_options[0] #=> String
2460
+ # resp.task_definitions[0].container_definitions[0].interactive #=> Boolean
2461
+ # resp.task_definitions[0].container_definitions[0].pseudo_terminal #=> Boolean
2462
+ # resp.task_definitions[0].container_definitions[0].docker_labels #=> Hash
2463
+ # resp.task_definitions[0].container_definitions[0].docker_labels["String"] #=> String
2464
+ # resp.task_definitions[0].container_definitions[0].ulimits #=> Array
2465
+ # resp.task_definitions[0].container_definitions[0].ulimits[0].name #=> String, one of "core", "cpu", "data", "fsize", "locks", "memlock", "msgqueue", "nice", "nofile", "nproc", "rss", "rtprio", "rttime", "sigpending", "stack"
2466
+ # resp.task_definitions[0].container_definitions[0].ulimits[0].soft_limit #=> Integer
2467
+ # resp.task_definitions[0].container_definitions[0].ulimits[0].hard_limit #=> Integer
2468
+ # resp.task_definitions[0].container_definitions[0].log_configuration.log_driver #=> String, one of "json-file", "syslog", "journald", "gelf", "fluentd", "awslogs", "splunk", "awsfirelens"
2469
+ # resp.task_definitions[0].container_definitions[0].log_configuration.options #=> Hash
2470
+ # resp.task_definitions[0].container_definitions[0].log_configuration.options["String"] #=> String
2471
+ # resp.task_definitions[0].container_definitions[0].log_configuration.secret_options #=> Array
2472
+ # resp.task_definitions[0].container_definitions[0].log_configuration.secret_options[0].name #=> String
2473
+ # resp.task_definitions[0].container_definitions[0].log_configuration.secret_options[0].value_from #=> String
2474
+ # resp.task_definitions[0].container_definitions[0].health_check.command #=> Array
2475
+ # resp.task_definitions[0].container_definitions[0].health_check.command[0] #=> String
2476
+ # resp.task_definitions[0].container_definitions[0].health_check.interval #=> Integer
2477
+ # resp.task_definitions[0].container_definitions[0].health_check.timeout #=> Integer
2478
+ # resp.task_definitions[0].container_definitions[0].health_check.retries #=> Integer
2479
+ # resp.task_definitions[0].container_definitions[0].health_check.start_period #=> Integer
2480
+ # resp.task_definitions[0].container_definitions[0].system_controls #=> Array
2481
+ # resp.task_definitions[0].container_definitions[0].system_controls[0].namespace #=> String
2482
+ # resp.task_definitions[0].container_definitions[0].system_controls[0].value #=> String
2483
+ # resp.task_definitions[0].container_definitions[0].resource_requirements #=> Array
2484
+ # resp.task_definitions[0].container_definitions[0].resource_requirements[0].value #=> String
2485
+ # resp.task_definitions[0].container_definitions[0].resource_requirements[0].type #=> String, one of "GPU", "InferenceAccelerator"
2486
+ # resp.task_definitions[0].container_definitions[0].firelens_configuration.type #=> String, one of "fluentd", "fluentbit"
2487
+ # resp.task_definitions[0].container_definitions[0].firelens_configuration.options #=> Hash
2488
+ # resp.task_definitions[0].container_definitions[0].firelens_configuration.options["String"] #=> String
2489
+ # resp.task_definitions[0].family #=> String
2490
+ # resp.task_definitions[0].task_role_arn #=> String
2491
+ # resp.task_definitions[0].execution_role_arn #=> String
2492
+ # resp.task_definitions[0].network_mode #=> String, one of "bridge", "host", "awsvpc", "none"
2493
+ # resp.task_definitions[0].revision #=> Integer
2494
+ # resp.task_definitions[0].volumes #=> Array
2495
+ # resp.task_definitions[0].volumes[0].name #=> String
2496
+ # resp.task_definitions[0].volumes[0].host.source_path #=> String
2497
+ # resp.task_definitions[0].volumes[0].docker_volume_configuration.scope #=> String, one of "task", "shared"
2498
+ # resp.task_definitions[0].volumes[0].docker_volume_configuration.autoprovision #=> Boolean
2499
+ # resp.task_definitions[0].volumes[0].docker_volume_configuration.driver #=> String
2500
+ # resp.task_definitions[0].volumes[0].docker_volume_configuration.driver_opts #=> Hash
2501
+ # resp.task_definitions[0].volumes[0].docker_volume_configuration.driver_opts["String"] #=> String
2502
+ # resp.task_definitions[0].volumes[0].docker_volume_configuration.labels #=> Hash
2503
+ # resp.task_definitions[0].volumes[0].docker_volume_configuration.labels["String"] #=> String
2504
+ # resp.task_definitions[0].volumes[0].efs_volume_configuration.file_system_id #=> String
2505
+ # resp.task_definitions[0].volumes[0].efs_volume_configuration.root_directory #=> String
2506
+ # resp.task_definitions[0].volumes[0].efs_volume_configuration.transit_encryption #=> String, one of "ENABLED", "DISABLED"
2507
+ # resp.task_definitions[0].volumes[0].efs_volume_configuration.transit_encryption_port #=> Integer
2508
+ # resp.task_definitions[0].volumes[0].efs_volume_configuration.authorization_config.access_point_id #=> String
2509
+ # resp.task_definitions[0].volumes[0].efs_volume_configuration.authorization_config.iam #=> String, one of "ENABLED", "DISABLED"
2510
+ # resp.task_definitions[0].volumes[0].fsx_windows_file_server_volume_configuration.file_system_id #=> String
2511
+ # resp.task_definitions[0].volumes[0].fsx_windows_file_server_volume_configuration.root_directory #=> String
2512
+ # resp.task_definitions[0].volumes[0].fsx_windows_file_server_volume_configuration.authorization_config.credentials_parameter #=> String
2513
+ # resp.task_definitions[0].volumes[0].fsx_windows_file_server_volume_configuration.authorization_config.domain #=> String
2514
+ # resp.task_definitions[0].status #=> String, one of "ACTIVE", "INACTIVE", "DELETE_IN_PROGRESS"
2515
+ # resp.task_definitions[0].requires_attributes #=> Array
2516
+ # resp.task_definitions[0].requires_attributes[0].name #=> String
2517
+ # resp.task_definitions[0].requires_attributes[0].value #=> String
2518
+ # resp.task_definitions[0].requires_attributes[0].target_type #=> String, one of "container-instance"
2519
+ # resp.task_definitions[0].requires_attributes[0].target_id #=> String
2520
+ # resp.task_definitions[0].placement_constraints #=> Array
2521
+ # resp.task_definitions[0].placement_constraints[0].type #=> String, one of "memberOf"
2522
+ # resp.task_definitions[0].placement_constraints[0].expression #=> String
2523
+ # resp.task_definitions[0].compatibilities #=> Array
2524
+ # resp.task_definitions[0].compatibilities[0] #=> String, one of "EC2", "FARGATE", "EXTERNAL"
2525
+ # resp.task_definitions[0].runtime_platform.cpu_architecture #=> String, one of "X86_64", "ARM64"
2526
+ # resp.task_definitions[0].runtime_platform.operating_system_family #=> String, one of "WINDOWS_SERVER_2019_FULL", "WINDOWS_SERVER_2019_CORE", "WINDOWS_SERVER_2016_FULL", "WINDOWS_SERVER_2004_CORE", "WINDOWS_SERVER_2022_CORE", "WINDOWS_SERVER_2022_FULL", "WINDOWS_SERVER_20H2_CORE", "LINUX"
2527
+ # resp.task_definitions[0].requires_compatibilities #=> Array
2528
+ # resp.task_definitions[0].requires_compatibilities[0] #=> String, one of "EC2", "FARGATE", "EXTERNAL"
2529
+ # resp.task_definitions[0].cpu #=> String
2530
+ # resp.task_definitions[0].memory #=> String
2531
+ # resp.task_definitions[0].inference_accelerators #=> Array
2532
+ # resp.task_definitions[0].inference_accelerators[0].device_name #=> String
2533
+ # resp.task_definitions[0].inference_accelerators[0].device_type #=> String
2534
+ # resp.task_definitions[0].pid_mode #=> String, one of "host", "task"
2535
+ # resp.task_definitions[0].ipc_mode #=> String, one of "host", "task", "none"
2536
+ # resp.task_definitions[0].proxy_configuration.type #=> String, one of "APPMESH"
2537
+ # resp.task_definitions[0].proxy_configuration.container_name #=> String
2538
+ # resp.task_definitions[0].proxy_configuration.properties #=> Array
2539
+ # resp.task_definitions[0].proxy_configuration.properties[0].name #=> String
2540
+ # resp.task_definitions[0].proxy_configuration.properties[0].value #=> String
2541
+ # resp.task_definitions[0].registered_at #=> Time
2542
+ # resp.task_definitions[0].deregistered_at #=> Time
2543
+ # resp.task_definitions[0].registered_by #=> String
2544
+ # resp.task_definitions[0].ephemeral_storage.size_in_gi_b #=> Integer
2545
+ # resp.failures #=> Array
2546
+ # resp.failures[0].arn #=> String
2547
+ # resp.failures[0].reason #=> String
2548
+ # resp.failures[0].detail #=> String
2549
+ #
2550
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/DeleteTaskDefinitions AWS API Documentation
2551
+ #
2552
+ # @overload delete_task_definitions(params = {})
2553
+ # @param [Hash] params ({})
2554
+ def delete_task_definitions(params = {}, options = {})
2555
+ req = build_request(:delete_task_definitions, params)
2556
+ req.send_request(options)
2557
+ end
2558
+
2179
2559
  # Deletes a specified task set within a service. This is used when a
2180
2560
  # service uses the `EXTERNAL` deployment controller type. For more
2181
- # information, see [Amazon ECS Deployment Types][1] in the *Amazon
2561
+ # information, see [Amazon ECS deployment types][1] in the *Amazon
2182
2562
  # Elastic Container Service Developer Guide*.
2183
2563
  #
2184
2564
  #
@@ -2295,11 +2675,12 @@ module Aws::ECS
2295
2675
  #
2296
2676
  # @option params [required, String] :container_instance
2297
2677
  # 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`.
2678
+ # deregister. For more information about the ARN format, see [Amazon
2679
+ # Resource Name (ARN)][1] in the *Amazon ECS Developer Guide*.
2680
+ #
2681
+ #
2682
+ #
2683
+ # [1]: https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-account-settings.html#ecs-resource-ids
2303
2684
  #
2304
2685
  # @option params [Boolean] :force
2305
2686
  # Forces the container instance to be deregistered. If you have tasks
@@ -2412,7 +2793,8 @@ module Aws::ECS
2412
2793
  # tasks and services that reference an `INACTIVE` task definition
2413
2794
  # continue to run without disruption. Existing services that reference
2414
2795
  # an `INACTIVE` task definition can still scale up or down by modifying
2415
- # the service's desired count.
2796
+ # the service's desired count. If you want to delete a task definition
2797
+ # revision, you must first deregister the task definition revision.
2416
2798
  #
2417
2799
  # You can't use an `INACTIVE` task definition to run new tasks or
2418
2800
  # create new services, and you can't update an existing service to
@@ -2428,6 +2810,13 @@ module Aws::ECS
2428
2810
  #
2429
2811
  # </note>
2430
2812
  #
2813
+ # You must deregister a task definition revision before you delete it.
2814
+ # For more information, see [DeleteTaskDefinitions][1].
2815
+ #
2816
+ #
2817
+ #
2818
+ # [1]: https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_DeleteTaskDefinitions.html
2819
+ #
2431
2820
  # @option params [required, String] :task_definition
2432
2821
  # The `family` and `revision` (`family:revision`) or full Amazon
2433
2822
  # Resource Name (ARN) of the task definition to deregister. You must
@@ -2459,6 +2848,9 @@ module Aws::ECS
2459
2848
  # resp.task_definition.container_definitions[0].port_mappings[0].container_port #=> Integer
2460
2849
  # resp.task_definition.container_definitions[0].port_mappings[0].host_port #=> Integer
2461
2850
  # resp.task_definition.container_definitions[0].port_mappings[0].protocol #=> String, one of "tcp", "udp"
2851
+ # resp.task_definition.container_definitions[0].port_mappings[0].name #=> String
2852
+ # resp.task_definition.container_definitions[0].port_mappings[0].app_protocol #=> String, one of "http", "http2", "grpc"
2853
+ # resp.task_definition.container_definitions[0].port_mappings[0].container_port_range #=> String
2462
2854
  # resp.task_definition.container_definitions[0].essential #=> Boolean
2463
2855
  # resp.task_definition.container_definitions[0].entry_point #=> Array
2464
2856
  # resp.task_definition.container_definitions[0].entry_point[0] #=> String
@@ -2572,7 +2964,7 @@ module Aws::ECS
2572
2964
  # resp.task_definition.volumes[0].fsx_windows_file_server_volume_configuration.root_directory #=> String
2573
2965
  # resp.task_definition.volumes[0].fsx_windows_file_server_volume_configuration.authorization_config.credentials_parameter #=> String
2574
2966
  # resp.task_definition.volumes[0].fsx_windows_file_server_volume_configuration.authorization_config.domain #=> String
2575
- # resp.task_definition.status #=> String, one of "ACTIVE", "INACTIVE"
2967
+ # resp.task_definition.status #=> String, one of "ACTIVE", "INACTIVE", "DELETE_IN_PROGRESS"
2576
2968
  # resp.task_definition.requires_attributes #=> Array
2577
2969
  # resp.task_definition.requires_attributes[0].name #=> String
2578
2970
  # resp.task_definition.requires_attributes[0].value #=> String
@@ -2711,7 +3103,8 @@ module Aws::ECS
2711
3103
  # isn't included.
2712
3104
  #
2713
3105
  # If `ATTACHMENTS` is specified, the attachments for the container
2714
- # instances or tasks within the cluster are included.
3106
+ # instances or tasks within the cluster are included, for example the
3107
+ # capacity providers.
2715
3108
  #
2716
3109
  # If `SETTINGS` is specified, the settings for the cluster are included.
2717
3110
  #
@@ -2800,6 +3193,7 @@ module Aws::ECS
2800
3193
  # resp.clusters[0].attachments[0].details[0].name #=> String
2801
3194
  # resp.clusters[0].attachments[0].details[0].value #=> String
2802
3195
  # resp.clusters[0].attachments_status #=> String
3196
+ # resp.clusters[0].service_connect_defaults.namespace #=> String
2803
3197
  # resp.failures #=> Array
2804
3198
  # resp.failures[0].arn #=> String
2805
3199
  # resp.failures[0].reason #=> String
@@ -3123,6 +3517,10 @@ module Aws::ECS
3123
3517
  # resp.services[0].deployment_configuration.deployment_circuit_breaker.rollback #=> Boolean
3124
3518
  # resp.services[0].deployment_configuration.maximum_percent #=> Integer
3125
3519
  # resp.services[0].deployment_configuration.minimum_healthy_percent #=> Integer
3520
+ # resp.services[0].deployment_configuration.alarms.alarm_names #=> Array
3521
+ # resp.services[0].deployment_configuration.alarms.alarm_names[0] #=> String
3522
+ # resp.services[0].deployment_configuration.alarms.enable #=> Boolean
3523
+ # resp.services[0].deployment_configuration.alarms.rollback #=> Boolean
3126
3524
  # resp.services[0].task_sets #=> Array
3127
3525
  # resp.services[0].task_sets[0].id #=> String
3128
3526
  # resp.services[0].task_sets[0].task_set_arn #=> String
@@ -3190,6 +3588,24 @@ module Aws::ECS
3190
3588
  # resp.services[0].deployments[0].network_configuration.awsvpc_configuration.assign_public_ip #=> String, one of "ENABLED", "DISABLED"
3191
3589
  # resp.services[0].deployments[0].rollout_state #=> String, one of "COMPLETED", "FAILED", "IN_PROGRESS"
3192
3590
  # resp.services[0].deployments[0].rollout_state_reason #=> String
3591
+ # resp.services[0].deployments[0].service_connect_configuration.enabled #=> Boolean
3592
+ # resp.services[0].deployments[0].service_connect_configuration.namespace #=> String
3593
+ # resp.services[0].deployments[0].service_connect_configuration.services #=> Array
3594
+ # resp.services[0].deployments[0].service_connect_configuration.services[0].port_name #=> String
3595
+ # resp.services[0].deployments[0].service_connect_configuration.services[0].discovery_name #=> String
3596
+ # resp.services[0].deployments[0].service_connect_configuration.services[0].client_aliases #=> Array
3597
+ # resp.services[0].deployments[0].service_connect_configuration.services[0].client_aliases[0].port #=> Integer
3598
+ # resp.services[0].deployments[0].service_connect_configuration.services[0].client_aliases[0].dns_name #=> String
3599
+ # resp.services[0].deployments[0].service_connect_configuration.services[0].ingress_port_override #=> Integer
3600
+ # resp.services[0].deployments[0].service_connect_configuration.log_configuration.log_driver #=> String, one of "json-file", "syslog", "journald", "gelf", "fluentd", "awslogs", "splunk", "awsfirelens"
3601
+ # resp.services[0].deployments[0].service_connect_configuration.log_configuration.options #=> Hash
3602
+ # resp.services[0].deployments[0].service_connect_configuration.log_configuration.options["String"] #=> String
3603
+ # resp.services[0].deployments[0].service_connect_configuration.log_configuration.secret_options #=> Array
3604
+ # resp.services[0].deployments[0].service_connect_configuration.log_configuration.secret_options[0].name #=> String
3605
+ # resp.services[0].deployments[0].service_connect_configuration.log_configuration.secret_options[0].value_from #=> String
3606
+ # resp.services[0].deployments[0].service_connect_resources #=> Array
3607
+ # resp.services[0].deployments[0].service_connect_resources[0].discovery_name #=> String
3608
+ # resp.services[0].deployments[0].service_connect_resources[0].discovery_arn #=> String
3193
3609
  # resp.services[0].role_arn #=> String
3194
3610
  # resp.services[0].events #=> Array
3195
3611
  # resp.services[0].events[0].id #=> String
@@ -3348,6 +3764,9 @@ module Aws::ECS
3348
3764
  # resp.task_definition.container_definitions[0].port_mappings[0].container_port #=> Integer
3349
3765
  # resp.task_definition.container_definitions[0].port_mappings[0].host_port #=> Integer
3350
3766
  # resp.task_definition.container_definitions[0].port_mappings[0].protocol #=> String, one of "tcp", "udp"
3767
+ # resp.task_definition.container_definitions[0].port_mappings[0].name #=> String
3768
+ # resp.task_definition.container_definitions[0].port_mappings[0].app_protocol #=> String, one of "http", "http2", "grpc"
3769
+ # resp.task_definition.container_definitions[0].port_mappings[0].container_port_range #=> String
3351
3770
  # resp.task_definition.container_definitions[0].essential #=> Boolean
3352
3771
  # resp.task_definition.container_definitions[0].entry_point #=> Array
3353
3772
  # resp.task_definition.container_definitions[0].entry_point[0] #=> String
@@ -3461,7 +3880,7 @@ module Aws::ECS
3461
3880
  # resp.task_definition.volumes[0].fsx_windows_file_server_volume_configuration.root_directory #=> String
3462
3881
  # resp.task_definition.volumes[0].fsx_windows_file_server_volume_configuration.authorization_config.credentials_parameter #=> String
3463
3882
  # resp.task_definition.volumes[0].fsx_windows_file_server_volume_configuration.authorization_config.domain #=> String
3464
- # resp.task_definition.status #=> String, one of "ACTIVE", "INACTIVE"
3883
+ # resp.task_definition.status #=> String, one of "ACTIVE", "INACTIVE", "DELETE_IN_PROGRESS"
3465
3884
  # resp.task_definition.requires_attributes #=> Array
3466
3885
  # resp.task_definition.requires_attributes[0].name #=> String
3467
3886
  # resp.task_definition.requires_attributes[0].value #=> String
@@ -3605,6 +4024,9 @@ module Aws::ECS
3605
4024
 
3606
4025
  # Describes a specified task or tasks.
3607
4026
  #
4027
+ # Currently, stopped tasks appear in the returned results for at least
4028
+ # one hour.
4029
+ #
3608
4030
  # @option params [String] :cluster
3609
4031
  # The short name or full Amazon Resource Name (ARN) of the cluster that
3610
4032
  # hosts the task or tasks to describe. If you do not specify a cluster,
@@ -3719,6 +4141,8 @@ module Aws::ECS
3719
4141
  # resp.tasks[0].containers[0].network_bindings[0].container_port #=> Integer
3720
4142
  # resp.tasks[0].containers[0].network_bindings[0].host_port #=> Integer
3721
4143
  # resp.tasks[0].containers[0].network_bindings[0].protocol #=> String, one of "tcp", "udp"
4144
+ # resp.tasks[0].containers[0].network_bindings[0].container_port_range #=> String
4145
+ # resp.tasks[0].containers[0].network_bindings[0].host_port_range #=> String
3722
4146
  # resp.tasks[0].containers[0].network_interfaces #=> Array
3723
4147
  # resp.tasks[0].containers[0].network_interfaces[0].attachment_id #=> String
3724
4148
  # resp.tasks[0].containers[0].network_interfaces[0].private_ipv_4_address #=> String
@@ -3777,7 +4201,7 @@ module Aws::ECS
3777
4201
  # resp.tasks[0].pull_stopped_at #=> Time
3778
4202
  # resp.tasks[0].started_at #=> Time
3779
4203
  # resp.tasks[0].started_by #=> String
3780
- # resp.tasks[0].stop_code #=> String, one of "TaskFailedToStart", "EssentialContainerExited", "UserInitiated"
4204
+ # resp.tasks[0].stop_code #=> String, one of "TaskFailedToStart", "EssentialContainerExited", "UserInitiated", "ServiceSchedulerInitiated", "SpotInterruption", "TerminationNotice"
3781
4205
  # resp.tasks[0].stopped_at #=> Time
3782
4206
  # resp.tasks[0].stopped_reason #=> String
3783
4207
  # resp.tasks[0].stopping_at #=> Time
@@ -3816,12 +4240,13 @@ module Aws::ECS
3816
4240
  # Returns an endpoint for the Amazon ECS agent to poll for updates.
3817
4241
  #
3818
4242
  # @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`.
4243
+ # The container instance ID or full ARN of the container instance. For
4244
+ # more information about the ARN format, see [Amazon Resource Name
4245
+ # (ARN)][1] in the *Amazon ECS Developer Guide*.
4246
+ #
4247
+ #
4248
+ #
4249
+ # [1]: https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-account-settings.html#ecs-resource-ids
3825
4250
  #
3826
4251
  # @option params [String] :cluster
3827
4252
  # The short name or full Amazon Resource Name (ARN) of the cluster that
@@ -3831,6 +4256,7 @@ module Aws::ECS
3831
4256
  #
3832
4257
  # * {Types::DiscoverPollEndpointResponse#endpoint #endpoint} => String
3833
4258
  # * {Types::DiscoverPollEndpointResponse#telemetry_endpoint #telemetry_endpoint} => String
4259
+ # * {Types::DiscoverPollEndpointResponse#service_connect_endpoint #service_connect_endpoint} => String
3834
4260
  #
3835
4261
  # @example Request syntax with placeholder values
3836
4262
  #
@@ -3843,6 +4269,7 @@ module Aws::ECS
3843
4269
  #
3844
4270
  # resp.endpoint #=> String
3845
4271
  # resp.telemetry_endpoint #=> String
4272
+ # resp.service_connect_endpoint #=> String
3846
4273
  #
3847
4274
  # @see http://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/DiscoverPollEndpoint AWS API Documentation
3848
4275
  #
@@ -3855,6 +4282,20 @@ module Aws::ECS
3855
4282
 
3856
4283
  # Runs a command remotely on a container within a task.
3857
4284
  #
4285
+ # If you use a condition key in your IAM policy to refine the conditions
4286
+ # for the policy statement, for example limit the actions to a specific
4287
+ # cluster, you receive an `AccessDeniedException` when there is a
4288
+ # mismatch between the condition key value and the corresponding
4289
+ # parameter value.
4290
+ #
4291
+ # For information about required permissions and considerations, see
4292
+ # [Using Amazon ECS Exec for debugging][1] in the *Amazon ECS Developer
4293
+ # Guide*.
4294
+ #
4295
+ #
4296
+ #
4297
+ # [1]: https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-exec.html
4298
+ #
3858
4299
  # @option params [String] :cluster
3859
4300
  # The Amazon Resource Name (ARN) or short name of the cluster the task
3860
4301
  # is running in. If you do not specify a cluster, the default cluster is
@@ -3913,6 +4354,72 @@ module Aws::ECS
3913
4354
  req.send_request(options)
3914
4355
  end
3915
4356
 
4357
+ # Retrieves the protection status of tasks in an Amazon ECS service.
4358
+ #
4359
+ # @option params [required, String] :cluster
4360
+ # The short name or full Amazon Resource Name (ARN) of the cluster that
4361
+ # hosts the service that the task sets exist in.
4362
+ #
4363
+ # @option params [Array<String>] :tasks
4364
+ # A list of up to 100 task IDs or full ARN entries.
4365
+ #
4366
+ # @return [Types::GetTaskProtectionResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
4367
+ #
4368
+ # * {Types::GetTaskProtectionResponse#protected_tasks #protected_tasks} => Array&lt;Types::ProtectedTask&gt;
4369
+ # * {Types::GetTaskProtectionResponse#failures #failures} => Array&lt;Types::Failure&gt;
4370
+ #
4371
+ #
4372
+ # @example Example: To get the protection status of a task
4373
+ #
4374
+ # # In this example, we get the protection status for a single task.
4375
+ #
4376
+ # resp = client.get_task_protection({
4377
+ # cluster: "test-task-protection",
4378
+ # tasks: [
4379
+ # "b8b1cf532d0e46ba8d44a40d1de16772",
4380
+ # ],
4381
+ # })
4382
+ #
4383
+ # resp.to_h outputs the following:
4384
+ # {
4385
+ # failures: [
4386
+ # ],
4387
+ # protected_tasks: [
4388
+ # {
4389
+ # expiration_date: Time.parse("2022-11-02T06:56:32.553Z"),
4390
+ # protection_enabled: true,
4391
+ # task_arn: "arn:aws:ecs:us-west-2:012345678910:task/b8b1cf532d0e46ba8d44a40d1de16772",
4392
+ # },
4393
+ # ],
4394
+ # }
4395
+ #
4396
+ # @example Request syntax with placeholder values
4397
+ #
4398
+ # resp = client.get_task_protection({
4399
+ # cluster: "String", # required
4400
+ # tasks: ["String"],
4401
+ # })
4402
+ #
4403
+ # @example Response structure
4404
+ #
4405
+ # resp.protected_tasks #=> Array
4406
+ # resp.protected_tasks[0].task_arn #=> String
4407
+ # resp.protected_tasks[0].protection_enabled #=> Boolean
4408
+ # resp.protected_tasks[0].expiration_date #=> Time
4409
+ # resp.failures #=> Array
4410
+ # resp.failures[0].arn #=> String
4411
+ # resp.failures[0].reason #=> String
4412
+ # resp.failures[0].detail #=> String
4413
+ #
4414
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/GetTaskProtection AWS API Documentation
4415
+ #
4416
+ # @overload get_task_protection(params = {})
4417
+ # @param [Hash] params ({})
4418
+ def get_task_protection(params = {}, options = {})
4419
+ req = build_request(:get_task_protection, params)
4420
+ req.send_request(options)
4421
+ end
4422
+
3916
4423
  # Lists the account settings for a specified principal.
3917
4424
  #
3918
4425
  # @option params [String] :name
@@ -3923,9 +4430,9 @@ module Aws::ECS
3923
4430
  # also specify an account setting name to use this parameter.
3924
4431
  #
3925
4432
  # @option params [String] :principal_arn
3926
- # The ARN of the principal, which can be an IAM user, IAM role, or the
3927
- # root user. If this field is omitted, the account settings are listed
3928
- # only for the authenticated user.
4433
+ # The ARN of the principal, which can be a user, role, or the root user.
4434
+ # If this field is omitted, the account settings are listed only for the
4435
+ # authenticated user.
3929
4436
  #
3930
4437
  # <note markdown="1"> Federated users assume the account setting of the root user and can't
3931
4438
  # have explicit account settings set for them.
@@ -4032,7 +4539,7 @@ module Aws::ECS
4032
4539
  # @example Request syntax with placeholder values
4033
4540
  #
4034
4541
  # resp = client.list_account_settings({
4035
- # name: "serviceLongArnFormat", # accepts serviceLongArnFormat, taskLongArnFormat, containerInstanceLongArnFormat, awsvpcTrunking, containerInsights
4542
+ # name: "serviceLongArnFormat", # accepts serviceLongArnFormat, taskLongArnFormat, containerInstanceLongArnFormat, awsvpcTrunking, containerInsights, fargateFIPSMode, tagResourceAuthorization
4036
4543
  # value: "String",
4037
4544
  # principal_arn: "String",
4038
4545
  # effective_settings: false,
@@ -4043,7 +4550,7 @@ module Aws::ECS
4043
4550
  # @example Response structure
4044
4551
  #
4045
4552
  # resp.settings #=> Array
4046
- # resp.settings[0].name #=> String, one of "serviceLongArnFormat", "taskLongArnFormat", "containerInstanceLongArnFormat", "awsvpcTrunking", "containerInsights"
4553
+ # resp.settings[0].name #=> String, one of "serviceLongArnFormat", "taskLongArnFormat", "containerInstanceLongArnFormat", "awsvpcTrunking", "containerInsights", "fargateFIPSMode", "tagResourceAuthorization"
4047
4554
  # resp.settings[0].value #=> String
4048
4555
  # resp.settings[0].principal_arn #=> String
4049
4556
  # resp.next_token #=> String
@@ -4396,6 +4903,82 @@ module Aws::ECS
4396
4903
  req.send_request(options)
4397
4904
  end
4398
4905
 
4906
+ # This operation lists all of the services that are associated with a
4907
+ # Cloud Map namespace. This list might include services in different
4908
+ # clusters. In contrast, `ListServices` can only list services in one
4909
+ # cluster at a time. If you need to filter the list of services in a
4910
+ # single cluster by various parameters, use `ListServices`. For more
4911
+ # information, see [Service Connect][1] in the *Amazon Elastic Container
4912
+ # Service Developer Guide*.
4913
+ #
4914
+ #
4915
+ #
4916
+ # [1]: https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-connect.html
4917
+ #
4918
+ # @option params [required, String] :namespace
4919
+ # The namespace name or full Amazon Resource Name (ARN) of the Cloud Map
4920
+ # namespace to list the services in.
4921
+ #
4922
+ # Tasks that run in a namespace can use short names to connect to
4923
+ # services in the namespace. Tasks can connect to services across all of
4924
+ # the clusters in the namespace. Tasks connect through a managed proxy
4925
+ # container that collects logs and metrics for increased visibility.
4926
+ # Only the tasks that Amazon ECS services create are supported with
4927
+ # Service Connect. For more information, see [Service Connect][1] in the
4928
+ # *Amazon Elastic Container Service Developer Guide*.
4929
+ #
4930
+ #
4931
+ #
4932
+ # [1]: https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-connect.html
4933
+ #
4934
+ # @option params [String] :next_token
4935
+ # The `nextToken` value that's returned from a
4936
+ # `ListServicesByNamespace` request. It indicates that more results are
4937
+ # available to fulfill the request and further calls are needed. If
4938
+ # `maxResults` is returned, it is possible the number of results is less
4939
+ # than `maxResults`.
4940
+ #
4941
+ # @option params [Integer] :max_results
4942
+ # The maximum number of service results that `ListServicesByNamespace`
4943
+ # returns in paginated output. When this parameter is used,
4944
+ # `ListServicesByNamespace` only returns `maxResults` results in a
4945
+ # single page along with a `nextToken` response element. The remaining
4946
+ # results of the initial request can be seen by sending another
4947
+ # `ListServicesByNamespace` request with the returned `nextToken` value.
4948
+ # This value can be between 1 and 100. If this parameter isn't used,
4949
+ # then `ListServicesByNamespace` returns up to 10 results and a
4950
+ # `nextToken` value if applicable.
4951
+ #
4952
+ # @return [Types::ListServicesByNamespaceResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
4953
+ #
4954
+ # * {Types::ListServicesByNamespaceResponse#service_arns #service_arns} => Array&lt;String&gt;
4955
+ # * {Types::ListServicesByNamespaceResponse#next_token #next_token} => String
4956
+ #
4957
+ # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
4958
+ #
4959
+ # @example Request syntax with placeholder values
4960
+ #
4961
+ # resp = client.list_services_by_namespace({
4962
+ # namespace: "String", # required
4963
+ # next_token: "String",
4964
+ # max_results: 1,
4965
+ # })
4966
+ #
4967
+ # @example Response structure
4968
+ #
4969
+ # resp.service_arns #=> Array
4970
+ # resp.service_arns[0] #=> String
4971
+ # resp.next_token #=> String
4972
+ #
4973
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/ListServicesByNamespace AWS API Documentation
4974
+ #
4975
+ # @overload list_services_by_namespace(params = {})
4976
+ # @param [Hash] params ({})
4977
+ def list_services_by_namespace(params = {}, options = {})
4978
+ req = build_request(:list_services_by_namespace, params)
4979
+ req.send_request(options)
4980
+ end
4981
+
4399
4982
  # List the tags for an Amazon ECS resource.
4400
4983
  #
4401
4984
  # @option params [required, String] :resource_arn
@@ -4660,7 +5243,7 @@ module Aws::ECS
4660
5243
  #
4661
5244
  # resp = client.list_task_definitions({
4662
5245
  # family_prefix: "String",
4663
- # status: "ACTIVE", # accepts ACTIVE, INACTIVE
5246
+ # status: "ACTIVE", # accepts ACTIVE, INACTIVE, DELETE_IN_PROGRESS
4664
5247
  # sort: "ASC", # accepts ASC, DESC
4665
5248
  # next_token: "String",
4666
5249
  # max_results: 1,
@@ -4732,6 +5315,9 @@ module Aws::ECS
4732
5315
  # `startedBy` value limits the results to tasks that were started with
4733
5316
  # that value.
4734
5317
  #
5318
+ # When you specify `startedBy` as the filter, it must be the only filter
5319
+ # that you use.
5320
+ #
4735
5321
  # @option params [String] :service_name
4736
5322
  # The name of the service to use when filtering the `ListTasks` results.
4737
5323
  # Specifying a `serviceName` limits the results to tasks that belong to
@@ -4828,43 +5414,52 @@ module Aws::ECS
4828
5414
  # Modifies an account setting. Account settings are set on a per-Region
4829
5415
  # basis.
4830
5416
  #
4831
- # If you change the account setting for the root user, the default
4832
- # settings for all of the IAM users and roles that no individual account
4833
- # setting was specified are reset for. For more information, see
4834
- # [Account Settings][1] in the *Amazon Elastic Container Service
4835
- # Developer Guide*.
5417
+ # If you change the root user account setting, the default settings are
5418
+ # reset for users and roles that do not have specified individual
5419
+ # account settings. For more information, see [Account Settings][1] in
5420
+ # the *Amazon Elastic Container Service Developer Guide*.
4836
5421
  #
4837
5422
  # When `serviceLongArnFormat`, `taskLongArnFormat`, or
4838
5423
  # `containerInstanceLongArnFormat` are specified, the Amazon Resource
4839
5424
  # Name (ARN) and resource ID format of the resource type for a specified
4840
- # IAM user, IAM role, or the root user for an account is affected. The
4841
- # opt-in and opt-out account setting must be set for each Amazon ECS
4842
- # resource separately. The ARN and resource ID format of a resource is
4843
- # defined by the opt-in status of the IAM user or role that created the
4844
- # resource. You must turn on this setting to use Amazon ECS features
4845
- # such as resource tagging.
5425
+ # user, role, or the root user for an account is affected. The opt-in
5426
+ # and opt-out account setting must be set for each Amazon ECS resource
5427
+ # separately. The ARN and resource ID format of a resource is defined by
5428
+ # the opt-in status of the user or role that created the resource. You
5429
+ # must turn on this setting to use Amazon ECS features such as resource
5430
+ # tagging.
4846
5431
  #
4847
5432
  # When `awsvpcTrunking` is specified, the elastic network interface
4848
5433
  # (ENI) limit for any new container instances that support the feature
4849
- # is changed. If `awsvpcTrunking` is enabled, any new container
5434
+ # is changed. If `awsvpcTrunking` is turned on, any new container
4850
5435
  # instances that support the feature are launched have the increased ENI
4851
5436
  # limits available to them. For more information, see [Elastic Network
4852
5437
  # Interface Trunking][2] in the *Amazon Elastic Container Service
4853
5438
  # Developer Guide*.
4854
5439
  #
4855
5440
  # When `containerInsights` is specified, the default setting indicating
4856
- # whether CloudWatch Container Insights is enabled for your clusters is
4857
- # changed. If `containerInsights` is enabled, any new clusters that are
4858
- # created will have Container Insights enabled unless you disable it
4859
- # during cluster creation. For more information, see [CloudWatch
4860
- # Container Insights][3] in the *Amazon Elastic Container Service
4861
- # Developer Guide*.
5441
+ # whether Amazon Web Services CloudWatch Container Insights is turned on
5442
+ # for your clusters is changed. If `containerInsights` is turned on, any
5443
+ # new clusters that are created will have Container Insights turned on
5444
+ # unless you disable it during cluster creation. For more information,
5445
+ # see [CloudWatch Container Insights][3] in the *Amazon Elastic
5446
+ # Container Service Developer Guide*.
5447
+ #
5448
+ # Amazon ECS is introducing tagging authorization for resource creation.
5449
+ # Users must have permissions for actions that create the resource, such
5450
+ # as `ecsCreateCluster`. If tags are specified when you create a
5451
+ # resource, Amazon Web Services performs additional authorization to
5452
+ # verify if users or roles have permissions to create tags. Therefore,
5453
+ # you must grant explicit permissions to use the `ecs:TagResource`
5454
+ # action. For more information, see [Grant permission to tag resources
5455
+ # on creation][4] in the *Amazon ECS Developer Guide*.
4862
5456
  #
4863
5457
  #
4864
5458
  #
4865
5459
  # [1]: https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-account-settings.html
4866
5460
  # [2]: https://docs.aws.amazon.com/AmazonECS/latest/developerguide/container-instance-eni.html
4867
5461
  # [3]: https://docs.aws.amazon.com/AmazonECS/latest/developerguide/cloudwatch-container-insights.html
5462
+ # [4]: https://docs.aws.amazon.com/AmazonECS/latest/developerguide/supported-iam-actions-tagging.html
4868
5463
  #
4869
5464
  # @option params [required, String] :name
4870
5465
  # The Amazon ECS resource name for which to modify the account setting.
@@ -4875,20 +5470,28 @@ module Aws::ECS
4875
5470
  # for your Amazon ECS container instances is affected. If
4876
5471
  # `awsvpcTrunking` is specified, the elastic network interface (ENI)
4877
5472
  # limit for your Amazon ECS container instances is affected. If
4878
- # `containerInsights` is specified, the default setting for CloudWatch
4879
- # Container Insights for your clusters is affected.
5473
+ # `containerInsights` is specified, the default setting for Amazon Web
5474
+ # Services CloudWatch Container Insights for your clusters is affected.
5475
+ # If `fargateFIPSMode` is specified, Fargate FIPS 140 compliance is
5476
+ # affected. If `tagResourceAuthorization` is specified, the opt-in
5477
+ # option for tagging resources on creation is affected. For information
5478
+ # about the opt-in timeline, see [Tagging authorization timeline][1] in
5479
+ # the *Amazon ECS Developer Guide*.
5480
+ #
5481
+ #
5482
+ #
5483
+ # [1]: https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-account-settings.html#tag-resources
4880
5484
  #
4881
5485
  # @option params [required, String] :value
4882
5486
  # The account setting value for the specified principal ARN. Accepted
4883
- # values are `enabled` and `disabled`.
5487
+ # values are `enabled`, `disabled`, `on`, and `off`.
4884
5488
  #
4885
5489
  # @option params [String] :principal_arn
4886
- # The ARN of the principal, which can be an IAM user, IAM role, or the
4887
- # root user. If you specify the root user, it modifies the account
4888
- # setting for all IAM users, IAM roles, and the root user of the account
4889
- # unless an IAM user or role explicitly overrides these settings. If
4890
- # this field is omitted, the setting is changed only for the
4891
- # authenticated user.
5490
+ # The ARN of the principal, which can be a user, role, or the root user.
5491
+ # If you specify the root user, it modifies the account setting for all
5492
+ # users, roles, and the root user of the account unless a user or role
5493
+ # explicitly overrides these settings. If this field is omitted, the
5494
+ # setting is changed only for the authenticated user.
4892
5495
  #
4893
5496
  # <note markdown="1"> Federated users assume the account setting of the root user and can't
4894
5497
  # have explicit account settings set for them.
@@ -4944,14 +5547,14 @@ module Aws::ECS
4944
5547
  # @example Request syntax with placeholder values
4945
5548
  #
4946
5549
  # resp = client.put_account_setting({
4947
- # name: "serviceLongArnFormat", # required, accepts serviceLongArnFormat, taskLongArnFormat, containerInstanceLongArnFormat, awsvpcTrunking, containerInsights
5550
+ # name: "serviceLongArnFormat", # required, accepts serviceLongArnFormat, taskLongArnFormat, containerInstanceLongArnFormat, awsvpcTrunking, containerInsights, fargateFIPSMode, tagResourceAuthorization
4948
5551
  # value: "String", # required
4949
5552
  # principal_arn: "String",
4950
5553
  # })
4951
5554
  #
4952
5555
  # @example Response structure
4953
5556
  #
4954
- # resp.setting.name #=> String, one of "serviceLongArnFormat", "taskLongArnFormat", "containerInstanceLongArnFormat", "awsvpcTrunking", "containerInsights"
5557
+ # resp.setting.name #=> String, one of "serviceLongArnFormat", "taskLongArnFormat", "containerInstanceLongArnFormat", "awsvpcTrunking", "containerInsights", "fargateFIPSMode", "tagResourceAuthorization"
4955
5558
  # resp.setting.value #=> String
4956
5559
  # resp.setting.principal_arn #=> String
4957
5560
  #
@@ -4964,8 +5567,8 @@ module Aws::ECS
4964
5567
  req.send_request(options)
4965
5568
  end
4966
5569
 
4967
- # Modifies an account setting for all IAM users on an account for whom
4968
- # no individual account setting has been specified. Account settings are
5570
+ # Modifies an account setting for all users on an account for whom no
5571
+ # individual account setting has been specified. Account settings are
4969
5572
  # set on a per-Region basis.
4970
5573
  #
4971
5574
  # @option params [required, String] :name
@@ -4977,12 +5580,27 @@ module Aws::ECS
4977
5580
  # for your Amazon ECS container instances is affected. If
4978
5581
  # `awsvpcTrunking` is specified, the ENI limit for your Amazon ECS
4979
5582
  # container instances is affected. If `containerInsights` is specified,
4980
- # the default setting for CloudWatch Container Insights for your
4981
- # clusters is affected.
5583
+ # the default setting for Amazon Web Services CloudWatch Container
5584
+ # Insights for your clusters is affected. If `tagResourceAuthorization`
5585
+ # is specified, the opt-in option for tagging resources on creation is
5586
+ # affected. For information about the opt-in timeline, see [Tagging
5587
+ # authorization timeline][1] in the *Amazon ECS Developer Guide*.
5588
+ #
5589
+ # When you specify `fargateFIPSMode` for the `name` and `enabled` for
5590
+ # the `value`, Fargate uses FIPS-140 compliant cryptographic algorithms
5591
+ # on your tasks. For more information about FIPS-140 compliance with
5592
+ # Fargate, see [ Amazon Web Services Fargate Federal Information
5593
+ # Processing Standard (FIPS) 140-2 compliance][2] in the *Amazon Elastic
5594
+ # Container Service Developer Guide*.
5595
+ #
5596
+ #
5597
+ #
5598
+ # [1]: https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-account-settings.html#tag-resources
5599
+ # [2]: https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-fips-compliance.html
4982
5600
  #
4983
5601
  # @option params [required, String] :value
4984
5602
  # The account setting value for the specified principal ARN. Accepted
4985
- # values are `enabled` and `disabled`.
5603
+ # values are `enabled`, `disabled`, `on`, and `off`.
4986
5604
  #
4987
5605
  # @return [Types::PutAccountSettingDefaultResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
4988
5606
  #
@@ -5012,13 +5630,13 @@ module Aws::ECS
5012
5630
  # @example Request syntax with placeholder values
5013
5631
  #
5014
5632
  # resp = client.put_account_setting_default({
5015
- # name: "serviceLongArnFormat", # required, accepts serviceLongArnFormat, taskLongArnFormat, containerInstanceLongArnFormat, awsvpcTrunking, containerInsights
5633
+ # name: "serviceLongArnFormat", # required, accepts serviceLongArnFormat, taskLongArnFormat, containerInstanceLongArnFormat, awsvpcTrunking, containerInsights, fargateFIPSMode, tagResourceAuthorization
5016
5634
  # value: "String", # required
5017
5635
  # })
5018
5636
  #
5019
5637
  # @example Response structure
5020
5638
  #
5021
- # resp.setting.name #=> String, one of "serviceLongArnFormat", "taskLongArnFormat", "containerInstanceLongArnFormat", "awsvpcTrunking", "containerInsights"
5639
+ # resp.setting.name #=> String, one of "serviceLongArnFormat", "taskLongArnFormat", "containerInstanceLongArnFormat", "awsvpcTrunking", "containerInsights", "fargateFIPSMode", "tagResourceAuthorization"
5022
5640
  # resp.setting.value #=> String
5023
5641
  # resp.setting.principal_arn #=> String
5024
5642
  #
@@ -5203,6 +5821,7 @@ module Aws::ECS
5203
5821
  # resp.cluster.attachments[0].details[0].name #=> String
5204
5822
  # resp.cluster.attachments[0].details[0].value #=> String
5205
5823
  # resp.cluster.attachments_status #=> String
5824
+ # resp.cluster.service_connect_defaults.namespace #=> String
5206
5825
  #
5207
5826
  # @see http://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/PutClusterCapacityProviders AWS API Documentation
5208
5827
  #
@@ -5404,13 +6023,12 @@ module Aws::ECS
5404
6023
  # Definitions][1] in the *Amazon Elastic Container Service Developer
5405
6024
  # Guide*.
5406
6025
  #
5407
- # You can specify an IAM role for your task with the `taskRoleArn`
5408
- # parameter. When you specify an IAM role for a task, its containers can
5409
- # then use the latest versions of the CLI or SDKs to make API requests
5410
- # to the Amazon Web Services services that are specified in the IAM
5411
- # policy that's associated with the role. For more information, see
5412
- # [IAM Roles for Tasks][2] in the *Amazon Elastic Container Service
5413
- # Developer Guide*.
6026
+ # You can specify a role for your task with the `taskRoleArn` parameter.
6027
+ # When you specify a role for a task, its containers can then use the
6028
+ # latest versions of the CLI or SDKs to make API requests to the Amazon
6029
+ # Web Services services that are specified in the policy that's
6030
+ # associated with the role. For more information, see [IAM Roles for
6031
+ # Tasks][2] in the *Amazon Elastic Container Service Developer Guide*.
5414
6032
  #
5415
6033
  # You can specify a Docker networking mode for the containers in your
5416
6034
  # task definition with the `networkMode` parameter. The available
@@ -5536,7 +6154,8 @@ module Aws::ECS
5536
6154
  #
5537
6155
  # If you're using the EC2 launch type, this field is optional.
5538
6156
  # Supported values are between `128` CPU units (`0.125` vCPUs) and
5539
- # `10240` CPU units (`10` vCPUs).
6157
+ # `10240` CPU units (`10` vCPUs). If you do not specify a value, the
6158
+ # parameter is ignored.
5540
6159
  #
5541
6160
  # If you're using the Fargate launch type, this field is required and
5542
6161
  # you must use one of the following values, which determines your range
@@ -5554,11 +6173,21 @@ module Aws::ECS
5554
6173
  # * 1024 (1 vCPU) - Available `memory` values: 2048 (2 GB), 3072 (3 GB),
5555
6174
  # 4096 (4 GB), 5120 (5 GB), 6144 (6 GB), 7168 (7 GB), 8192 (8 GB)
5556
6175
  #
5557
- # * 2048 (2 vCPU) - Available `memory` values: Between 4096 (4 GB) and
5558
- # 16384 (16 GB) in increments of 1024 (1 GB)
6176
+ # * 2048 (2 vCPU) - Available `memory` values: 4096 (4 GB) and 16384 (16
6177
+ # GB) in increments of 1024 (1 GB)
6178
+ #
6179
+ # * 4096 (4 vCPU) - Available `memory` values: 8192 (8 GB) and 30720 (30
6180
+ # GB) in increments of 1024 (1 GB)
6181
+ #
6182
+ # * 8192 (8 vCPU) - Available `memory` values: 16 GB and 60 GB in 4 GB
6183
+ # increments
5559
6184
  #
5560
- # * 4096 (4 vCPU) - Available `memory` values: Between 8192 (8 GB) and
5561
- # 30720 (30 GB) in increments of 1024 (1 GB)
6185
+ # This option requires Linux platform `1.4.0` or later.
6186
+ #
6187
+ # * 16384 (16vCPU) - Available `memory` values: 32GB and 120 GB in 8 GB
6188
+ # increments
6189
+ #
6190
+ # This option requires Linux platform `1.4.0` or later.
5562
6191
  #
5563
6192
  # @option params [String] :memory
5564
6193
  # The amount of memory (in MiB) used by the task. It can be expressed as
@@ -5597,6 +6226,16 @@ module Aws::ECS
5597
6226
  # * Between 8192 (8 GB) and 30720 (30 GB) in increments of 1024 (1 GB) -
5598
6227
  # Available `cpu` values: 4096 (4 vCPU)
5599
6228
  #
6229
+ # * Between 16 GB and 60 GB in 4 GB increments - Available `cpu` values:
6230
+ # 8192 (8 vCPU)
6231
+ #
6232
+ # This option requires Linux platform `1.4.0` or later.
6233
+ #
6234
+ # * Between 32GB and 120 GB in 8 GB increments - Available `cpu` values:
6235
+ # 16384 (16 vCPU)
6236
+ #
6237
+ # This option requires Linux platform `1.4.0` or later.
6238
+ #
5600
6239
  # @option params [Array<Types::Tag>] :tags
5601
6240
  # The metadata that you apply to the task definition to help you
5602
6241
  # categorize and organize them. Each tag consists of a key and an
@@ -5718,8 +6357,8 @@ module Aws::ECS
5718
6357
  # more information, see [Fargate task storage][1] in the *Amazon ECS
5719
6358
  # User Guide for Fargate*.
5720
6359
  #
5721
- # <note markdown="1"> This parameter is only supported for tasks hosted on Fargate using the
5722
- # following platform versions:
6360
+ # <note markdown="1"> For tasks using the Fargate launch type, the task requires the
6361
+ # following platforms:
5723
6362
  #
5724
6363
  # * Linux platform version `1.4.0` or later.
5725
6364
  #
@@ -5823,6 +6462,9 @@ module Aws::ECS
5823
6462
  # container_port: 1,
5824
6463
  # host_port: 1,
5825
6464
  # protocol: "tcp", # accepts tcp, udp
6465
+ # name: "String",
6466
+ # app_protocol: "http", # accepts http, http2, grpc
6467
+ # container_port_range: "String",
5826
6468
  # },
5827
6469
  # ],
5828
6470
  # essential: false,
@@ -6052,6 +6694,9 @@ module Aws::ECS
6052
6694
  # resp.task_definition.container_definitions[0].port_mappings[0].container_port #=> Integer
6053
6695
  # resp.task_definition.container_definitions[0].port_mappings[0].host_port #=> Integer
6054
6696
  # resp.task_definition.container_definitions[0].port_mappings[0].protocol #=> String, one of "tcp", "udp"
6697
+ # resp.task_definition.container_definitions[0].port_mappings[0].name #=> String
6698
+ # resp.task_definition.container_definitions[0].port_mappings[0].app_protocol #=> String, one of "http", "http2", "grpc"
6699
+ # resp.task_definition.container_definitions[0].port_mappings[0].container_port_range #=> String
6055
6700
  # resp.task_definition.container_definitions[0].essential #=> Boolean
6056
6701
  # resp.task_definition.container_definitions[0].entry_point #=> Array
6057
6702
  # resp.task_definition.container_definitions[0].entry_point[0] #=> String
@@ -6165,7 +6810,7 @@ module Aws::ECS
6165
6810
  # resp.task_definition.volumes[0].fsx_windows_file_server_volume_configuration.root_directory #=> String
6166
6811
  # resp.task_definition.volumes[0].fsx_windows_file_server_volume_configuration.authorization_config.credentials_parameter #=> String
6167
6812
  # resp.task_definition.volumes[0].fsx_windows_file_server_volume_configuration.authorization_config.domain #=> String
6168
- # resp.task_definition.status #=> String, one of "ACTIVE", "INACTIVE"
6813
+ # resp.task_definition.status #=> String, one of "ACTIVE", "INACTIVE", "DELETE_IN_PROGRESS"
6169
6814
  # resp.task_definition.requires_attributes #=> Array
6170
6815
  # resp.task_definition.requires_attributes[0].name #=> String
6171
6816
  # resp.task_definition.requires_attributes[0].value #=> String
@@ -6219,6 +6864,17 @@ module Aws::ECS
6219
6864
  # Alternatively, you can use StartTask to use your own scheduler or
6220
6865
  # place tasks manually on specific container instances.
6221
6866
  #
6867
+ # <note markdown="1"> Starting April 15, 2023, Amazon Web Services will not onboard new
6868
+ # customers to Amazon Elastic Inference (EI), and will help current
6869
+ # customers migrate their workloads to options that offer better price
6870
+ # and performance. After April 15, 2023, new customers will not be able
6871
+ # to launch instances with Amazon EI accelerators in Amazon SageMaker,
6872
+ # Amazon ECS, or Amazon EC2. However, customers who have used Amazon EI
6873
+ # at least once during the past 30-day period are considered current
6874
+ # customers and will be able to continue using the service.
6875
+ #
6876
+ # </note>
6877
+ #
6222
6878
  # The Amazon ECS API follows an eventual consistency model. This is
6223
6879
  # because of the distributed nature of the system supporting the API.
6224
6880
  # This means that the result of an API command you run that affects your
@@ -6428,11 +7084,11 @@ module Aws::ECS
6428
7084
  # task definition to run. If a `revision` isn't specified, the latest
6429
7085
  # `ACTIVE` revision is used.
6430
7086
  #
6431
- # When you create an IAM policy for run-task, you can set the resource
6432
- # to be the latest task definition revision, or a specific revision.
7087
+ # When you create a policy for run-task, you can set the resource to be
7088
+ # the latest task definition revision, or a specific revision.
6433
7089
  #
6434
7090
  # The full ARN value must match the value that you specified as the
6435
- # `Resource` of the IAM principal's permissions policy.
7091
+ # `Resource` of the principal's permissions policy.
6436
7092
  #
6437
7093
  # When you specify the policy resource as the latest task definition
6438
7094
  # version (by setting the `Resource` in the policy to
@@ -6624,6 +7280,8 @@ module Aws::ECS
6624
7280
  # resp.tasks[0].containers[0].network_bindings[0].container_port #=> Integer
6625
7281
  # resp.tasks[0].containers[0].network_bindings[0].host_port #=> Integer
6626
7282
  # resp.tasks[0].containers[0].network_bindings[0].protocol #=> String, one of "tcp", "udp"
7283
+ # resp.tasks[0].containers[0].network_bindings[0].container_port_range #=> String
7284
+ # resp.tasks[0].containers[0].network_bindings[0].host_port_range #=> String
6627
7285
  # resp.tasks[0].containers[0].network_interfaces #=> Array
6628
7286
  # resp.tasks[0].containers[0].network_interfaces[0].attachment_id #=> String
6629
7287
  # resp.tasks[0].containers[0].network_interfaces[0].private_ipv_4_address #=> String
@@ -6682,7 +7340,7 @@ module Aws::ECS
6682
7340
  # resp.tasks[0].pull_stopped_at #=> Time
6683
7341
  # resp.tasks[0].started_at #=> Time
6684
7342
  # resp.tasks[0].started_by #=> String
6685
- # resp.tasks[0].stop_code #=> String, one of "TaskFailedToStart", "EssentialContainerExited", "UserInitiated"
7343
+ # resp.tasks[0].stop_code #=> String, one of "TaskFailedToStart", "EssentialContainerExited", "UserInitiated", "ServiceSchedulerInitiated", "SpotInterruption", "TerminationNotice"
6686
7344
  # resp.tasks[0].stopped_at #=> Time
6687
7345
  # resp.tasks[0].stopped_reason #=> String
6688
7346
  # resp.tasks[0].stopping_at #=> Time
@@ -6710,6 +7368,17 @@ module Aws::ECS
6710
7368
  # Starts a new task from the specified task definition on the specified
6711
7369
  # container instance or instances.
6712
7370
  #
7371
+ # <note markdown="1"> Starting April 15, 2023, Amazon Web Services will not onboard new
7372
+ # customers to Amazon Elastic Inference (EI), and will help current
7373
+ # customers migrate their workloads to options that offer better price
7374
+ # and performance. After April 15, 2023, new customers will not be able
7375
+ # to launch instances with Amazon EI accelerators in Amazon SageMaker,
7376
+ # Amazon ECS, or Amazon EC2. However, customers who have used Amazon EI
7377
+ # at least once during the past 30-day period are considered current
7378
+ # customers and will be able to continue using the service.
7379
+ #
7380
+ # </note>
7381
+ #
6713
7382
  # Alternatively, you can use RunTask to place tasks for you. For more
6714
7383
  # information, see [Scheduling Tasks][1] in the *Amazon Elastic
6715
7384
  # Container Service Developer Guide*.
@@ -6738,9 +7407,9 @@ module Aws::ECS
6738
7407
  # [1]: https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-using-tags.html
6739
7408
  #
6740
7409
  # @option params [Boolean] :enable_execute_command
6741
- # Whether or not the execute command functionality is enabled for the
6742
- # task. If `true`, this enables execute command functionality on all
6743
- # containers in the task.
7410
+ # Whether or not the execute command functionality is turned on for the
7411
+ # task. If `true`, this turns on the execute command functionality on
7412
+ # all containers in the task.
6744
7413
  #
6745
7414
  # @option params [String] :group
6746
7415
  # The name of the task group to associate with the task. The default
@@ -6932,6 +7601,8 @@ module Aws::ECS
6932
7601
  # resp.tasks[0].containers[0].network_bindings[0].container_port #=> Integer
6933
7602
  # resp.tasks[0].containers[0].network_bindings[0].host_port #=> Integer
6934
7603
  # resp.tasks[0].containers[0].network_bindings[0].protocol #=> String, one of "tcp", "udp"
7604
+ # resp.tasks[0].containers[0].network_bindings[0].container_port_range #=> String
7605
+ # resp.tasks[0].containers[0].network_bindings[0].host_port_range #=> String
6935
7606
  # resp.tasks[0].containers[0].network_interfaces #=> Array
6936
7607
  # resp.tasks[0].containers[0].network_interfaces[0].attachment_id #=> String
6937
7608
  # resp.tasks[0].containers[0].network_interfaces[0].private_ipv_4_address #=> String
@@ -6990,7 +7661,7 @@ module Aws::ECS
6990
7661
  # resp.tasks[0].pull_stopped_at #=> Time
6991
7662
  # resp.tasks[0].started_at #=> Time
6992
7663
  # resp.tasks[0].started_by #=> String
6993
- # resp.tasks[0].stop_code #=> String, one of "TaskFailedToStart", "EssentialContainerExited", "UserInitiated"
7664
+ # resp.tasks[0].stop_code #=> String, one of "TaskFailedToStart", "EssentialContainerExited", "UserInitiated", "ServiceSchedulerInitiated", "SpotInterruption", "TerminationNotice"
6994
7665
  # resp.tasks[0].stopped_at #=> Time
6995
7666
  # resp.tasks[0].stopped_reason #=> String
6996
7667
  # resp.tasks[0].stopping_at #=> Time
@@ -7042,7 +7713,7 @@ module Aws::ECS
7042
7713
  # cluster is assumed.
7043
7714
  #
7044
7715
  # @option params [required, String] :task
7045
- # The task ID or full Amazon Resource Name (ARN) of the task to stop.
7716
+ # The task ID of the task to stop.
7046
7717
  #
7047
7718
  # @option params [String] :reason
7048
7719
  # An optional message specified when a task is stopped. For example, if
@@ -7098,6 +7769,8 @@ module Aws::ECS
7098
7769
  # resp.task.containers[0].network_bindings[0].container_port #=> Integer
7099
7770
  # resp.task.containers[0].network_bindings[0].host_port #=> Integer
7100
7771
  # resp.task.containers[0].network_bindings[0].protocol #=> String, one of "tcp", "udp"
7772
+ # resp.task.containers[0].network_bindings[0].container_port_range #=> String
7773
+ # resp.task.containers[0].network_bindings[0].host_port_range #=> String
7101
7774
  # resp.task.containers[0].network_interfaces #=> Array
7102
7775
  # resp.task.containers[0].network_interfaces[0].attachment_id #=> String
7103
7776
  # resp.task.containers[0].network_interfaces[0].private_ipv_4_address #=> String
@@ -7156,7 +7829,7 @@ module Aws::ECS
7156
7829
  # resp.task.pull_stopped_at #=> Time
7157
7830
  # resp.task.started_at #=> Time
7158
7831
  # resp.task.started_by #=> String
7159
- # resp.task.stop_code #=> String, one of "TaskFailedToStart", "EssentialContainerExited", "UserInitiated"
7832
+ # resp.task.stop_code #=> String, one of "TaskFailedToStart", "EssentialContainerExited", "UserInitiated", "ServiceSchedulerInitiated", "SpotInterruption", "TerminationNotice"
7160
7833
  # resp.task.stopped_at #=> Time
7161
7834
  # resp.task.stopped_reason #=> String
7162
7835
  # resp.task.stopping_at #=> Time
@@ -7272,6 +7945,8 @@ module Aws::ECS
7272
7945
  # container_port: 1,
7273
7946
  # host_port: 1,
7274
7947
  # protocol: "tcp", # accepts tcp, udp
7948
+ # container_port_range: "String",
7949
+ # host_port_range: "String",
7275
7950
  # },
7276
7951
  # ],
7277
7952
  # })
@@ -7351,6 +8026,8 @@ module Aws::ECS
7351
8026
  # container_port: 1,
7352
8027
  # host_port: 1,
7353
8028
  # protocol: "tcp", # accepts tcp, udp
8029
+ # container_port_range: "String",
8030
+ # host_port_range: "String",
7354
8031
  # },
7355
8032
  # ],
7356
8033
  # reason: "String",
@@ -7580,6 +8257,28 @@ module Aws::ECS
7580
8257
  # @option params [Types::ClusterConfiguration] :configuration
7581
8258
  # The execute command configuration for the cluster.
7582
8259
  #
8260
+ # @option params [Types::ClusterServiceConnectDefaultsRequest] :service_connect_defaults
8261
+ # Use this parameter to set a default Service Connect namespace. After
8262
+ # you set a default Service Connect namespace, any new services with
8263
+ # Service Connect turned on that are created in the cluster are added as
8264
+ # client services in the namespace. This setting only applies to new
8265
+ # services that set the `enabled` parameter to `true` in the
8266
+ # `ServiceConnectConfiguration`. You can set the namespace of each
8267
+ # service individually in the `ServiceConnectConfiguration` to override
8268
+ # this default parameter.
8269
+ #
8270
+ # Tasks that run in a namespace can use short names to connect to
8271
+ # services in the namespace. Tasks can connect to services across all of
8272
+ # the clusters in the namespace. Tasks connect through a managed proxy
8273
+ # container that collects logs and metrics for increased visibility.
8274
+ # Only the tasks that Amazon ECS services create are supported with
8275
+ # Service Connect. For more information, see [Service Connect][1] in the
8276
+ # *Amazon Elastic Container Service Developer Guide*.
8277
+ #
8278
+ #
8279
+ #
8280
+ # [1]: https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-connect.html
8281
+ #
7583
8282
  # @return [Types::UpdateClusterResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
7584
8283
  #
7585
8284
  # * {Types::UpdateClusterResponse#cluster #cluster} => Types::Cluster
@@ -7607,6 +8306,9 @@ module Aws::ECS
7607
8306
  # },
7608
8307
  # },
7609
8308
  # },
8309
+ # service_connect_defaults: {
8310
+ # namespace: "String", # required
8311
+ # },
7610
8312
  # })
7611
8313
  #
7612
8314
  # @example Response structure
@@ -7648,6 +8350,7 @@ module Aws::ECS
7648
8350
  # resp.cluster.attachments[0].details[0].name #=> String
7649
8351
  # resp.cluster.attachments[0].details[0].value #=> String
7650
8352
  # resp.cluster.attachments_status #=> String
8353
+ # resp.cluster.service_connect_defaults.namespace #=> String
7651
8354
  #
7652
8355
  # @see http://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/UpdateCluster AWS API Documentation
7653
8356
  #
@@ -7669,6 +8372,13 @@ module Aws::ECS
7669
8372
  # specified, it overrides the `containerInsights` value set with
7670
8373
  # PutAccountSetting or PutAccountSettingDefault.
7671
8374
  #
8375
+ # Currently, if you delete an existing cluster that does not have
8376
+ # Container Insights turned on, and then create a new cluster with the
8377
+ # same name with Container Insights tuned on, Container Insights will
8378
+ # not actually be turned on. If you want to preserve the same name for
8379
+ # your existing cluster and turn on Container Insights, you must wait 7
8380
+ # days before you can re-create it.
8381
+ #
7672
8382
  # @return [Types::UpdateClusterSettingsResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
7673
8383
  #
7674
8384
  # * {Types::UpdateClusterSettingsResponse#cluster #cluster} => Types::Cluster
@@ -7724,6 +8434,7 @@ module Aws::ECS
7724
8434
  # resp.cluster.attachments[0].details[0].name #=> String
7725
8435
  # resp.cluster.attachments[0].details[0].value #=> String
7726
8436
  # resp.cluster.attachments_status #=> String
8437
+ # resp.cluster.service_connect_defaults.namespace #=> String
7727
8438
  #
7728
8439
  # @see http://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/UpdateClusterSettings AWS API Documentation
7729
8440
  #
@@ -7750,6 +8461,13 @@ module Aws::ECS
7750
8461
  #
7751
8462
  # </note>
7752
8463
  #
8464
+ # <note markdown="1"> Agent updates with the `UpdateContainerAgent` API operation do not
8465
+ # apply to Windows container instances. We recommend that you launch new
8466
+ # container instances to update the agent version in your Windows
8467
+ # clusters.
8468
+ #
8469
+ # </note>
8470
+ #
7753
8471
  # The `UpdateContainerAgent` API requires an Amazon ECS-optimized AMI or
7754
8472
  # Amazon Linux AMI with the `ecs-init` service installed and running.
7755
8473
  # For help updating the Amazon ECS container agent on other operating
@@ -7998,12 +8716,6 @@ module Aws::ECS
7998
8716
  req.send_request(options)
7999
8717
  end
8000
8718
 
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
8719
  # Modifies the parameters of a service.
8008
8720
  #
8009
8721
  # For services using the rolling update (`ECS`) you can update the
@@ -8019,7 +8731,7 @@ module Aws::ECS
8019
8731
  # ECS managed tags option, and propagate tags can be updated using this
8020
8732
  # API. If the network configuration, platform version, task definition,
8021
8733
  # or load balancer need to be updated, create a new CodeDeploy
8022
- # deployment. For more information, see [CreateDeployment][2] in the
8734
+ # deployment. For more information, see [CreateDeployment][1] in the
8023
8735
  # *CodeDeploy API Reference*.
8024
8736
  #
8025
8737
  # For services using an external deployment controller, you can update
@@ -8116,11 +8828,11 @@ module Aws::ECS
8116
8828
  # with the largest number of running tasks for this service.
8117
8829
  #
8118
8830
  # <note markdown="1"> You must have a service-linked role when you update any of the
8119
- # following service properties. If you specified a custom IAM role when
8120
- # you created the service, Amazon ECS automatically replaces the
8121
- # [roleARN][3] associated with the service with the ARN of your
8831
+ # following service properties. If you specified a custom role when you
8832
+ # created the service, Amazon ECS automatically replaces the
8833
+ # [roleARN][2] associated with the service with the ARN of your
8122
8834
  # service-linked role. For more information, see [Service-linked
8123
- # roles][4] in the *Amazon Elastic Container Service Developer Guide*.
8835
+ # roles][3] in the *Amazon Elastic Container Service Developer Guide*.
8124
8836
  #
8125
8837
  # * `loadBalancers,`
8126
8838
  #
@@ -8130,10 +8842,9 @@ module Aws::ECS
8130
8842
  #
8131
8843
  #
8132
8844
  #
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
8845
+ # [1]: https://docs.aws.amazon.com/codedeploy/latest/APIReference/API_CreateDeployment.html
8846
+ # [2]: https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_Service.html#ECS-Type-Service-roleArn
8847
+ # [3]: https://docs.aws.amazon.com/AmazonECS/latest/developerguide/using-service-linked-roles.html
8137
8848
  #
8138
8849
  # @option params [String] :cluster
8139
8850
  # The short name or full Amazon Resource Name (ARN) of the cluster that
@@ -8325,6 +9036,23 @@ module Aws::ECS
8325
9036
  #
8326
9037
  # [1]: https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-discovery.html
8327
9038
  #
9039
+ # @option params [Types::ServiceConnectConfiguration] :service_connect_configuration
9040
+ # The configuration for this service to discover and connect to
9041
+ # services, and be discovered by, and connected from, other services
9042
+ # within a namespace.
9043
+ #
9044
+ # Tasks that run in a namespace can use short names to connect to
9045
+ # services in the namespace. Tasks can connect to services across all of
9046
+ # the clusters in the namespace. Tasks connect through a managed proxy
9047
+ # container that collects logs and metrics for increased visibility.
9048
+ # Only the tasks that Amazon ECS services create are supported with
9049
+ # Service Connect. For more information, see [Service Connect][1] in the
9050
+ # *Amazon Elastic Container Service Developer Guide*.
9051
+ #
9052
+ #
9053
+ #
9054
+ # [1]: https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-connect.html
9055
+ #
8328
9056
  # @return [Types::UpdateServiceResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
8329
9057
  #
8330
9058
  # * {Types::UpdateServiceResponse#service #service} => Types::Service
@@ -8377,6 +9105,11 @@ module Aws::ECS
8377
9105
  # },
8378
9106
  # maximum_percent: 1,
8379
9107
  # minimum_healthy_percent: 1,
9108
+ # alarms: {
9109
+ # alarm_names: ["String"], # required
9110
+ # enable: false, # required
9111
+ # rollback: false, # required
9112
+ # },
8380
9113
  # },
8381
9114
  # network_configuration: {
8382
9115
  # awsvpc_configuration: {
@@ -8419,6 +9152,35 @@ module Aws::ECS
8419
9152
  # container_port: 1,
8420
9153
  # },
8421
9154
  # ],
9155
+ # service_connect_configuration: {
9156
+ # enabled: false, # required
9157
+ # namespace: "String",
9158
+ # services: [
9159
+ # {
9160
+ # port_name: "String", # required
9161
+ # discovery_name: "String",
9162
+ # client_aliases: [
9163
+ # {
9164
+ # port: 1, # required
9165
+ # dns_name: "String",
9166
+ # },
9167
+ # ],
9168
+ # ingress_port_override: 1,
9169
+ # },
9170
+ # ],
9171
+ # log_configuration: {
9172
+ # log_driver: "json-file", # required, accepts json-file, syslog, journald, gelf, fluentd, awslogs, splunk, awsfirelens
9173
+ # options: {
9174
+ # "String" => "String",
9175
+ # },
9176
+ # secret_options: [
9177
+ # {
9178
+ # name: "String", # required
9179
+ # value_from: "String", # required
9180
+ # },
9181
+ # ],
9182
+ # },
9183
+ # },
8422
9184
  # })
8423
9185
  #
8424
9186
  # @example Response structure
@@ -8452,6 +9214,10 @@ module Aws::ECS
8452
9214
  # resp.service.deployment_configuration.deployment_circuit_breaker.rollback #=> Boolean
8453
9215
  # resp.service.deployment_configuration.maximum_percent #=> Integer
8454
9216
  # resp.service.deployment_configuration.minimum_healthy_percent #=> Integer
9217
+ # resp.service.deployment_configuration.alarms.alarm_names #=> Array
9218
+ # resp.service.deployment_configuration.alarms.alarm_names[0] #=> String
9219
+ # resp.service.deployment_configuration.alarms.enable #=> Boolean
9220
+ # resp.service.deployment_configuration.alarms.rollback #=> Boolean
8455
9221
  # resp.service.task_sets #=> Array
8456
9222
  # resp.service.task_sets[0].id #=> String
8457
9223
  # resp.service.task_sets[0].task_set_arn #=> String
@@ -8519,6 +9285,24 @@ module Aws::ECS
8519
9285
  # resp.service.deployments[0].network_configuration.awsvpc_configuration.assign_public_ip #=> String, one of "ENABLED", "DISABLED"
8520
9286
  # resp.service.deployments[0].rollout_state #=> String, one of "COMPLETED", "FAILED", "IN_PROGRESS"
8521
9287
  # resp.service.deployments[0].rollout_state_reason #=> String
9288
+ # resp.service.deployments[0].service_connect_configuration.enabled #=> Boolean
9289
+ # resp.service.deployments[0].service_connect_configuration.namespace #=> String
9290
+ # resp.service.deployments[0].service_connect_configuration.services #=> Array
9291
+ # resp.service.deployments[0].service_connect_configuration.services[0].port_name #=> String
9292
+ # resp.service.deployments[0].service_connect_configuration.services[0].discovery_name #=> String
9293
+ # resp.service.deployments[0].service_connect_configuration.services[0].client_aliases #=> Array
9294
+ # resp.service.deployments[0].service_connect_configuration.services[0].client_aliases[0].port #=> Integer
9295
+ # resp.service.deployments[0].service_connect_configuration.services[0].client_aliases[0].dns_name #=> String
9296
+ # resp.service.deployments[0].service_connect_configuration.services[0].ingress_port_override #=> Integer
9297
+ # resp.service.deployments[0].service_connect_configuration.log_configuration.log_driver #=> String, one of "json-file", "syslog", "journald", "gelf", "fluentd", "awslogs", "splunk", "awsfirelens"
9298
+ # resp.service.deployments[0].service_connect_configuration.log_configuration.options #=> Hash
9299
+ # resp.service.deployments[0].service_connect_configuration.log_configuration.options["String"] #=> String
9300
+ # resp.service.deployments[0].service_connect_configuration.log_configuration.secret_options #=> Array
9301
+ # resp.service.deployments[0].service_connect_configuration.log_configuration.secret_options[0].name #=> String
9302
+ # resp.service.deployments[0].service_connect_configuration.log_configuration.secret_options[0].value_from #=> String
9303
+ # resp.service.deployments[0].service_connect_resources #=> Array
9304
+ # resp.service.deployments[0].service_connect_resources[0].discovery_name #=> String
9305
+ # resp.service.deployments[0].service_connect_resources[0].discovery_arn #=> String
8522
9306
  # resp.service.role_arn #=> String
8523
9307
  # resp.service.events #=> Array
8524
9308
  # resp.service.events[0].id #=> String
@@ -8645,6 +9429,178 @@ module Aws::ECS
8645
9429
  req.send_request(options)
8646
9430
  end
8647
9431
 
9432
+ # Updates the protection status of a task. You can set
9433
+ # `protectionEnabled` to `true` to protect your task from termination
9434
+ # during scale-in events from [Service Autoscaling][1] or
9435
+ # [deployments][2].
9436
+ #
9437
+ # Task-protection, by default, expires after 2 hours at which point
9438
+ # Amazon ECS clears the `protectionEnabled` property making the task
9439
+ # eligible for termination by a subsequent scale-in event.
9440
+ #
9441
+ # You can specify a custom expiration period for task protection from 1
9442
+ # minute to up to 2,880 minutes (48 hours). To specify the custom
9443
+ # expiration period, set the `expiresInMinutes` property. The
9444
+ # `expiresInMinutes` property is always reset when you invoke this
9445
+ # operation for a task that already has `protectionEnabled` set to
9446
+ # `true`. You can keep extending the protection expiration period of a
9447
+ # task by invoking this operation repeatedly.
9448
+ #
9449
+ # To learn more about Amazon ECS task protection, see [Task scale-in
9450
+ # protection][3] in the <i> <i>Amazon Elastic Container Service
9451
+ # Developer Guide</i> </i>.
9452
+ #
9453
+ # <note markdown="1"> This operation is only supported for tasks belonging to an Amazon ECS
9454
+ # service. Invoking this operation for a standalone task will result in
9455
+ # an `TASK_NOT_VALID` failure. For more information, see [API failure
9456
+ # reasons][4].
9457
+ #
9458
+ # </note>
9459
+ #
9460
+ # If you prefer to set task protection from within the container, we
9461
+ # recommend using the [Task scale-in protection endpoint][5].
9462
+ #
9463
+ #
9464
+ #
9465
+ # [1]: https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-auto-scaling.html
9466
+ # [2]: https://docs.aws.amazon.com/AmazonECS/latest/developerguide/deployment-types.html
9467
+ # [3]: https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-scale-in-protection.html
9468
+ # [4]: https://docs.aws.amazon.com/AmazonECS/latest/developerguide/api_failures_messages.html
9469
+ # [5]: https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-scale-in-protection-endpoint.html
9470
+ #
9471
+ # @option params [required, String] :cluster
9472
+ # The short name or full Amazon Resource Name (ARN) of the cluster that
9473
+ # hosts the service that the task sets exist in.
9474
+ #
9475
+ # @option params [required, Array<String>] :tasks
9476
+ # A list of up to 10 task IDs or full ARN entries.
9477
+ #
9478
+ # @option params [required, Boolean] :protection_enabled
9479
+ # Specify `true` to mark a task for protection and `false` to unset
9480
+ # protection, making it eligible for termination.
9481
+ #
9482
+ # @option params [Integer] :expires_in_minutes
9483
+ # If you set `protectionEnabled` to `true`, you can specify the duration
9484
+ # for task protection in minutes. You can specify a value from 1 minute
9485
+ # to up to 2,880 minutes (48 hours). During this time, your task will
9486
+ # not be terminated by scale-in events from Service Auto Scaling or
9487
+ # deployments. After this time period lapses, `protectionEnabled` will
9488
+ # be reset to `false`.
9489
+ #
9490
+ # If you don’t specify the time, then the task is automatically
9491
+ # protected for 120 minutes (2 hours).
9492
+ #
9493
+ # @return [Types::UpdateTaskProtectionResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
9494
+ #
9495
+ # * {Types::UpdateTaskProtectionResponse#protected_tasks #protected_tasks} => Array&lt;Types::ProtectedTask&gt;
9496
+ # * {Types::UpdateTaskProtectionResponse#failures #failures} => Array&lt;Types::Failure&gt;
9497
+ #
9498
+ #
9499
+ # @example Example: To set task scale-in protection for a task for 60 minutes
9500
+ #
9501
+ # # This example enables scale-in protection for a task for 60 minutes.
9502
+ #
9503
+ # resp = client.update_task_protection({
9504
+ # cluster: "test-task-protection",
9505
+ # expires_in_minutes: 60,
9506
+ # protection_enabled: true,
9507
+ # tasks: [
9508
+ # "b8b1cf532d0e46ba8d44a40d1de16772",
9509
+ # ],
9510
+ # })
9511
+ #
9512
+ # resp.to_h outputs the following:
9513
+ # {
9514
+ # failures: [
9515
+ # ],
9516
+ # protected_tasks: [
9517
+ # {
9518
+ # expiration_date: Time.parse("2022-11-02T06:56:32.553Z"),
9519
+ # protection_enabled: true,
9520
+ # task_arn: "arn:aws:ecs:us-west-2:012345678910:task/b8b1cf532d0e46ba8d44a40d1de16772",
9521
+ # },
9522
+ # ],
9523
+ # }
9524
+ #
9525
+ # @example Example: To set task scale-in protection for the default time period in minutes
9526
+ #
9527
+ # # This example enables task scale-in protection for a task, without specifying the expiresInMinutes parameter, for the
9528
+ # # default protection period of 120 minutes.
9529
+ #
9530
+ # resp = client.update_task_protection({
9531
+ # cluster: "test-task-protection",
9532
+ # protection_enabled: true,
9533
+ # tasks: [
9534
+ # "b8b1cf532d0e46ba8d44a40d1de16772",
9535
+ # ],
9536
+ # })
9537
+ #
9538
+ # resp.to_h outputs the following:
9539
+ # {
9540
+ # failures: [
9541
+ # ],
9542
+ # protected_tasks: [
9543
+ # {
9544
+ # expiration_date: Time.parse("2022-11-02T06:56:32.553Z"),
9545
+ # protection_enabled: true,
9546
+ # task_arn: "arn:aws:ecs:us-west-2:012345678910:task/b8b1cf532d0e46ba8d44a40d1de16772",
9547
+ # },
9548
+ # ],
9549
+ # }
9550
+ #
9551
+ # @example Example: To remove task scale-in protection
9552
+ #
9553
+ # # This example removes scale-in protection for a task.
9554
+ #
9555
+ # resp = client.update_task_protection({
9556
+ # cluster: "test-task-protection",
9557
+ # protection_enabled: false,
9558
+ # tasks: [
9559
+ # "b8b1cf532d0e46ba8d44a40d1de16772",
9560
+ # ],
9561
+ # })
9562
+ #
9563
+ # resp.to_h outputs the following:
9564
+ # {
9565
+ # failures: [
9566
+ # ],
9567
+ # protected_tasks: [
9568
+ # {
9569
+ # protection_enabled: false,
9570
+ # task_arn: "arn:aws:ecs:us-west-2:012345678910:task/b8b1cf532d0e46ba8d44a40d1de16772",
9571
+ # },
9572
+ # ],
9573
+ # }
9574
+ #
9575
+ # @example Request syntax with placeholder values
9576
+ #
9577
+ # resp = client.update_task_protection({
9578
+ # cluster: "String", # required
9579
+ # tasks: ["String"], # required
9580
+ # protection_enabled: false, # required
9581
+ # expires_in_minutes: 1,
9582
+ # })
9583
+ #
9584
+ # @example Response structure
9585
+ #
9586
+ # resp.protected_tasks #=> Array
9587
+ # resp.protected_tasks[0].task_arn #=> String
9588
+ # resp.protected_tasks[0].protection_enabled #=> Boolean
9589
+ # resp.protected_tasks[0].expiration_date #=> Time
9590
+ # resp.failures #=> Array
9591
+ # resp.failures[0].arn #=> String
9592
+ # resp.failures[0].reason #=> String
9593
+ # resp.failures[0].detail #=> String
9594
+ #
9595
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/UpdateTaskProtection AWS API Documentation
9596
+ #
9597
+ # @overload update_task_protection(params = {})
9598
+ # @param [Hash] params ({})
9599
+ def update_task_protection(params = {}, options = {})
9600
+ req = build_request(:update_task_protection, params)
9601
+ req.send_request(options)
9602
+ end
9603
+
8648
9604
  # Modifies a task set. This is used when a service uses the `EXTERNAL`
8649
9605
  # deployment controller type. For more information, see [Amazon ECS
8650
9606
  # Deployment Types][1] in the *Amazon Elastic Container Service
@@ -8753,7 +9709,7 @@ module Aws::ECS
8753
9709
  params: params,
8754
9710
  config: config)
8755
9711
  context[:gem_name] = 'aws-sdk-ecs'
8756
- context[:gem_version] = '1.99.0'
9712
+ context[:gem_version] = '1.121.0'
8757
9713
  Seahorse::Client::Request.new(handlers, context)
8758
9714
  end
8759
9715