lib/aws-sdk-ecs/client.rb in aws-sdk-ecs-1.35.0 vs lib/aws-sdk-ecs/client.rb in aws-sdk-ecs-1.36.0

- old
+ new

@@ -207,10 +207,53 @@ # # @option options [Boolean] :validate_params (true) # When `true`, request parameters are validated before # sending the request. # + # @option options [URI::HTTP,String] :http_proxy A proxy to send + # requests through. Formatted like 'http://proxy.com:123'. + # + # @option options [Float] :http_open_timeout (15) The number of + # seconds to wait when opening a HTTP session before rasing a + # `Timeout::Error`. + # + # @option options [Integer] :http_read_timeout (60) The default + # number of seconds to wait for response data. This value can + # safely be set + # per-request on the session yeidled by {#session_for}. + # + # @option options [Float] :http_idle_timeout (5) The number of + # seconds a connection is allowed to sit idble before it is + # considered stale. Stale connections are closed and removed + # from the pool before making a request. + # + # @option options [Float] :http_continue_timeout (1) The number of + # seconds to wait for a 100-continue response before sending the + # request body. This option has no effect unless the request has + # "Expect" header set to "100-continue". Defaults to `nil` which + # disables this behaviour. This value can safely be set per + # request on the session yeidled by {#session_for}. + # + # @option options [Boolean] :http_wire_trace (false) When `true`, + # HTTP debug output will be sent to the `:logger`. + # + # @option options [Boolean] :ssl_verify_peer (true) When `true`, + # SSL peer certificates are verified when establishing a + # connection. + # + # @option options [String] :ssl_ca_bundle Full path to the SSL + # certificate authority bundle file that should be used when + # verifying peer certificates. If you do not pass + # `:ssl_ca_bundle` or `:ssl_ca_directory` the the system default + # will be used if available. + # + # @option options [String] :ssl_ca_directory Full path of the + # directory that contains the unbundled SSL certificate + # authority files for verifying peer certificates. If you do + # not pass `:ssl_ca_bundle` or `:ssl_ca_directory` the the + # system default will be used if available. + # def initialize(*args) super end # @!group API Operations @@ -310,39 +353,65 @@ req.send_request(options) end # Runs and maintains a desired number of tasks from a specified task # definition. If the number of tasks running in a service drops below - # `desiredCount`, Amazon ECS spawns another copy of the task in the + # the `desiredCount`, Amazon ECS spawns another copy of the task in the # specified cluster. To update an existing service, see UpdateService. # # In addition to maintaining the desired count of tasks in your service, # you can optionally run your service behind a load balancer. The load # balancer distributes traffic across the tasks that are associated with # the service. For more information, see [Service Load Balancing][1] in # the *Amazon Elastic Container Service Developer Guide*. # + # Tasks for services that *do not* use a load balancer are considered + # healthy if they're in the `RUNNING` state. Tasks for services that + # *do* use a load balancer are considered healthy if they're in the + # `RUNNING` state and the container instance that they're hosted on is + # reported as healthy by the load balancer. + # + # There are two service scheduler strategies available: + # + # * `REPLICA` - The replica scheduling strategy places and maintains the + # desired number of tasks across your cluster. By default, the service + # scheduler spreads tasks across Availability Zones. You can use task + # placement strategies and constraints to customize task placement + # decisions. For more information, see [Service Scheduler Concepts][2] + # in the *Amazon Elastic Container Service Developer Guide*. + # + # * `DAEMON` - The daemon scheduling strategy deploys exactly one task + # on each active container instance that meets all of the task + # placement constraints that you specify in your cluster. When using + # this strategy, you don't need to specify a desired number of tasks, + # a task placement strategy, or use Service Auto Scaling policies. For + # more information, see [Service Scheduler Concepts][2] in the *Amazon + # Elastic Container Service Developer Guide*. + # # You can optionally specify a deployment configuration for your # service. The deployment is triggered by changing properties, such as # the task definition or the desired count of a service, with an - # UpdateService operation. + # UpdateService operation. The default value for a replica service for + # `minimumHealthyPercent` is 100%. The default value for a daemon + # service for `minimumHealthyPercent` is 0%. # - # If a service is using the `ECS` deployment controller, the **minimum - # healthy percent** represents a lower limit on the number of tasks in a + # If a service is using the `ECS` deployment controller, the minimum + # healthy percent represents a lower limit on the number of tasks in a # service that must remain in the `RUNNING` state during a deployment, # as a percentage of the desired number of tasks (rounded up to the # nearest integer), and while any container instances are in the # `DRAINING` state if the service contains tasks using the EC2 launch # type. This parameter enables you to deploy without using additional # cluster capacity. For example, if your service has a desired number of - # four tasks and a minimum healthy percent of 50%, the scheduler may + # four tasks and a minimum healthy percent of 50%, the scheduler might # stop two existing tasks to free up cluster capacity before starting # two new tasks. Tasks for services that *do not* use a load balancer - # are considered healthy if they are in the `RUNNING` state; tasks for - # services that *do* use a load balancer are considered healthy if they - # are in the `RUNNING` state and they are reported as healthy by the - # load balancer. The default value for minimum healthy percent is 100%. + # are considered healthy if they're in the `RUNNING` state. Tasks for + # services that *do* use a load balancer are considered healthy if + # they're in the `RUNNING` state and they're reported as healthy by + # the load balancer. The default value for minimum healthy percent is + # 100%. # # If a service is using the `ECS` deployment controller, the **maximum # percent** parameter represents an upper limit on the number of tasks # in a service that are allowed in the `RUNNING` or `PENDING` state # during a deployment, as a percentage of the desired number of tasks @@ -353,27 +422,26 @@ # number of four tasks and a maximum percent value of 200%, the # scheduler may start four new tasks before stopping the four older # tasks (provided that the cluster resources required to do this are # available). The default value for maximum percent is 200%. # - # If a service is using the `CODE_DEPLOY` deployment controller and - # tasks that use the EC2 launch type, the **minimum healthy percent** - # and **maximum percent** values are only used to define the lower and - # upper limit on the number of the tasks in the service that remain in - # the `RUNNING` state while the container instances are in the - # `DRAINING` state. If the tasks in the service use the Fargate launch - # type, the minimum healthy percent and maximum percent values are not - # used, although they are currently visible when describing your - # service. + # If a service is using either the `CODE_DEPLOY` or `EXTERNAL` + # deployment controller types and tasks that use the EC2 launch type, + # the **minimum healthy percent** and **maximum percent** values are + # used only to define the lower and upper limit on the number of the + # tasks in the service that remain in the `RUNNING` state while the + # container instances are in the `DRAINING` state. If the tasks in the + # service use the Fargate launch type, the minimum healthy percent and + # maximum percent values aren't used, although they're currently + # visible when describing your service. # - # Tasks for services that *do not* use a load balancer are considered - # healthy if they are in the `RUNNING` state. Tasks for services that - # *do* use a load balancer are considered healthy if they are in the - # `RUNNING` state and the container instance they are hosted on is - # reported as healthy by the load balancer. The default value for a - # replica service for `minimumHealthyPercent` is 100%. The default value - # for a daemon service for `minimumHealthyPercent` is 0%. + # When creating a service that uses the `EXTERNAL` deployment + # controller, you can specify only parameters that aren't controlled at + # the task set level. The only required parameter is the service name. + # You control your services using the CreateTaskSet operation. For more + # information, see [Amazon ECS Deployment Types][3] in the *Amazon + # Elastic Container Service Developer Guide*. # # When the service scheduler launches new tasks, it determines task # placement in your cluster using the following logic: # # * Determine which of the container instances in your cluster can @@ -398,10 +466,12 @@ # this service. # # # # [1]: https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-load-balancing.html + # [2]: https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs_services.html + # [3]: https://docs.aws.amazon.com/AmazonECS/latest/developerguide/deployment-types.html # # @option params [String] :cluster # The short name or full Amazon Resource Name (ARN) of the cluster on # which to run your service. If you do not specify a cluster, the # default cluster is assumed. @@ -410,15 +480,18 @@ # The name of your service. Up to 255 letters (uppercase and lowercase), # numbers, hyphens, and underscores are allowed. Service names must be # unique within a cluster, but you can have similarly named services in # multiple clusters within a Region or across multiple Regions. # - # @option params [required, String] :task_definition + # @option params [String] :task_definition # The `family` and `revision` (`family:revision`) or full ARN of the # task definition to run in your service. If a `revision` is not # specified, the latest `ACTIVE` revision is used. # + # A task definition must be specified if the service is using the `ECS` + # deployment controller. + # # @option params [Array<Types::LoadBalancer>] :load_balancers # A load balancer object representing the load balancer to use with your # service. # # If the service is using the `ECS` deployment controller, you are @@ -494,13 +567,13 @@ # # # [1]: https://docs.aws.amazon.com/AmazonECS/latest/developerguide/launch_types.html # # @option params [String] :platform_version - # The platform version on which your tasks in the service are running. A - # platform version is only specified for tasks using the Fargate launch - # type. If one is not specified, the `LATEST` platform version is used + # The platform version that your tasks in the service are running on. A + # platform version is specified only for tasks using the Fargate launch + # type. If one isn't specified, the `LATEST` platform version is used # by default. For more information, see [AWS Fargate Platform # Versions][1] in the *Amazon Elastic Container Service Developer # Guide*. # # @@ -580,22 +653,22 @@ # # * `REPLICA`-The replica scheduling strategy places and maintains the # desired number of tasks across your cluster. By default, the service # scheduler spreads tasks across Availability Zones. You can use task # placement strategies and constraints to customize task placement - # decisions. This scheduler strategy is required if using the - # `CODE_DEPLOY` deployment controller. + # decisions. This scheduler strategy is required if the service is + # using the `CODE_DEPLOY` or `EXTERNAL` deployment controller types. # # * `DAEMON`-The daemon scheduling strategy deploys exactly one task on # each active container instance that meets all of the task placement - # constraints that you specify in your cluster. When you are using - # this strategy, there is no need to specify a desired number of - # tasks, a task placement strategy, or use Service Auto Scaling - # policies. + # constraints that you specify in your cluster. When you're using + # this strategy, you don't need to specify a desired number of tasks, + # a task placement strategy, or use Service Auto Scaling policies. # - # <note markdown="1"> Tasks using the Fargate launch type or the `CODE_DEPLOY` deploymenet - # controller do not support the `DAEMON` scheduling strategy. + # <note markdown="1"> Tasks using the Fargate launch type or the `CODE_DEPLOY` or + # `EXTERNAL` deployment controller types don't support the `DAEMON` + # scheduling strategy. # # </note> # # # @@ -754,11 +827,11 @@ # @example Request syntax with placeholder values # # resp = client.create_service({ # cluster: "String", # service_name: "String", # required - # task_definition: "String", # required + # task_definition: "String", # load_balancers: [ # { # target_group_arn: "String", # load_balancer_name: "String", # container_name: "String", @@ -802,11 +875,11 @@ # }, # }, # health_check_grace_period_seconds: 1, # scheduling_strategy: "REPLICA", # accepts REPLICA, DAEMON # deployment_controller: { - # type: "ECS", # required, accepts ECS, CODE_DEPLOY + # type: "ECS", # required, accepts ECS, CODE_DEPLOY, EXTERNAL # }, # tags: [ # { # key: "TagKey", # value: "TagValue", @@ -841,10 +914,12 @@ # resp.service.deployment_configuration.maximum_percent #=> Integer # resp.service.deployment_configuration.minimum_healthy_percent #=> Integer # resp.service.task_sets #=> Array # resp.service.task_sets[0].id #=> String # resp.service.task_sets[0].task_set_arn #=> String + # resp.service.task_sets[0].service_arn #=> String + # resp.service.task_sets[0].cluster_arn #=> String # resp.service.task_sets[0].started_by #=> String # resp.service.task_sets[0].external_id #=> String # resp.service.task_sets[0].status #=> String # resp.service.task_sets[0].task_definition #=> String # resp.service.task_sets[0].computed_desired_count #=> Integer @@ -862,10 +937,15 @@ # resp.service.task_sets[0].load_balancers #=> Array # resp.service.task_sets[0].load_balancers[0].target_group_arn #=> String # resp.service.task_sets[0].load_balancers[0].load_balancer_name #=> String # resp.service.task_sets[0].load_balancers[0].container_name #=> String # resp.service.task_sets[0].load_balancers[0].container_port #=> Integer + # resp.service.task_sets[0].service_registries #=> Array + # resp.service.task_sets[0].service_registries[0].registry_arn #=> String + # resp.service.task_sets[0].service_registries[0].port #=> Integer + # resp.service.task_sets[0].service_registries[0].container_name #=> String + # resp.service.task_sets[0].service_registries[0].container_port #=> Integer # resp.service.task_sets[0].scale.value #=> Float # resp.service.task_sets[0].scale.unit #=> String, one of "PERCENT" # resp.service.task_sets[0].stability_status #=> String, one of "STEADY_STATE", "STABILIZING" # resp.service.task_sets[0].stability_status_at #=> Time # resp.service.deployments #=> Array @@ -901,11 +981,11 @@ # resp.service.network_configuration.awsvpc_configuration.security_groups #=> Array # resp.service.network_configuration.awsvpc_configuration.security_groups[0] #=> String # resp.service.network_configuration.awsvpc_configuration.assign_public_ip #=> String, one of "ENABLED", "DISABLED" # resp.service.health_check_grace_period_seconds #=> Integer # resp.service.scheduling_strategy #=> String, one of "REPLICA", "DAEMON" - # resp.service.deployment_controller.type #=> String, one of "ECS", "CODE_DEPLOY" + # resp.service.deployment_controller.type #=> String, one of "ECS", "CODE_DEPLOY", "EXTERNAL" # resp.service.tags #=> Array # resp.service.tags[0].key #=> String # resp.service.tags[0].value #=> String # resp.service.created_by #=> String # resp.service.enable_ecs_managed_tags #=> Boolean @@ -918,10 +998,166 @@ def create_service(params = {}, options = {}) req = build_request(:create_service, params) req.send_request(options) end + # Create a task set in the specified cluster and service. This is used + # when a service uses the `EXTERNAL` deployment controller type. For + # more information, see [Amazon ECS Deployment Types][1] in the *Amazon + # Elastic Container Service Developer Guide*. + # + # + # + # [1]: http://docs.aws.amazon.com/AmazonECS/latest/developerguide/deployment-types.html + # + # @option params [required, String] :service + # The short name or full Amazon Resource Name (ARN) of the service to + # create the task set in. + # + # @option params [required, String] :cluster + # The short name or full Amazon Resource Name (ARN) of the cluster that + # hosts the service to create the task set in. + # + # @option params [String] :external_id + # An optional non-unique tag that identifies this task set in external + # systems. If the task set is associated with a service discovery + # registry, the tasks in this task set will have the + # `ECS_TASK_SET_EXTERNAL_ID` AWS Cloud Map attribute set to the provided + # value. + # + # @option params [required, String] :task_definition + # The task definition for the tasks in the task set to use. + # + # @option params [Types::NetworkConfiguration] :network_configuration + # An object representing the network configuration for a task or + # service. + # + # @option params [Array<Types::LoadBalancer>] :load_balancers + # A load balancer object representing the load balancer to use with the + # task set. The supported load balancer types are either an Application + # Load Balancer or a Network Load Balancer. + # + # @option params [Array<Types::ServiceRegistry>] :service_registries + # The details of the service discovery registries to assign to this task + # set. For more information, see [Service Discovery][1]. + # + # + # + # [1]: http://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-discovery.html + # + # @option params [String] :launch_type + # The launch type that new tasks in the task set will use. For more + # information, see [Amazon ECS Launch Types][1] in the *Amazon Elastic + # Container Service Developer Guide*. + # + # + # + # [1]: https://docs.aws.amazon.com/AmazonECS/latest/developerguide/launch_types.html + # + # @option params [String] :platform_version + # The platform version that the tasks in the task set should use. A + # platform version is specified only for tasks using the Fargate launch + # type. If one isn't specified, the `LATEST` platform version is used + # by default. + # + # @option params [Types::Scale] :scale + # A floating-point percentage of the desired number of tasks to place + # and keep running in the task set. + # + # @option params [String] :client_token + # Unique, case-sensitive identifier that you provide to ensure the + # idempotency of the request. Up to 32 ASCII characters are allowed. + # + # @return [Types::CreateTaskSetResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods: + # + # * {Types::CreateTaskSetResponse#task_set #task_set} => Types::TaskSet + # + # @example Request syntax with placeholder values + # + # resp = client.create_task_set({ + # service: "String", # required + # cluster: "String", # required + # external_id: "String", + # task_definition: "String", # required + # network_configuration: { + # awsvpc_configuration: { + # subnets: ["String"], # required + # security_groups: ["String"], + # assign_public_ip: "ENABLED", # accepts ENABLED, DISABLED + # }, + # }, + # load_balancers: [ + # { + # target_group_arn: "String", + # load_balancer_name: "String", + # container_name: "String", + # container_port: 1, + # }, + # ], + # service_registries: [ + # { + # registry_arn: "String", + # port: 1, + # container_name: "String", + # container_port: 1, + # }, + # ], + # launch_type: "EC2", # accepts EC2, FARGATE + # platform_version: "String", + # scale: { + # value: 1.0, + # unit: "PERCENT", # accepts PERCENT + # }, + # client_token: "String", + # }) + # + # @example Response structure + # + # resp.task_set.id #=> String + # resp.task_set.task_set_arn #=> String + # resp.task_set.service_arn #=> String + # resp.task_set.cluster_arn #=> String + # resp.task_set.started_by #=> String + # resp.task_set.external_id #=> String + # resp.task_set.status #=> String + # resp.task_set.task_definition #=> String + # resp.task_set.computed_desired_count #=> Integer + # resp.task_set.pending_count #=> Integer + # resp.task_set.running_count #=> Integer + # resp.task_set.created_at #=> Time + # resp.task_set.updated_at #=> Time + # resp.task_set.launch_type #=> String, one of "EC2", "FARGATE" + # resp.task_set.platform_version #=> String + # resp.task_set.network_configuration.awsvpc_configuration.subnets #=> Array + # resp.task_set.network_configuration.awsvpc_configuration.subnets[0] #=> String + # resp.task_set.network_configuration.awsvpc_configuration.security_groups #=> Array + # resp.task_set.network_configuration.awsvpc_configuration.security_groups[0] #=> String + # resp.task_set.network_configuration.awsvpc_configuration.assign_public_ip #=> String, one of "ENABLED", "DISABLED" + # resp.task_set.load_balancers #=> Array + # resp.task_set.load_balancers[0].target_group_arn #=> String + # resp.task_set.load_balancers[0].load_balancer_name #=> String + # resp.task_set.load_balancers[0].container_name #=> String + # resp.task_set.load_balancers[0].container_port #=> Integer + # resp.task_set.service_registries #=> Array + # resp.task_set.service_registries[0].registry_arn #=> String + # resp.task_set.service_registries[0].port #=> Integer + # resp.task_set.service_registries[0].container_name #=> String + # resp.task_set.service_registries[0].container_port #=> Integer + # resp.task_set.scale.value #=> Float + # resp.task_set.scale.unit #=> String, one of "PERCENT" + # resp.task_set.stability_status #=> String, one of "STEADY_STATE", "STABILIZING" + # resp.task_set.stability_status_at #=> Time + # + # @see http://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/CreateTaskSet AWS API Documentation + # + # @overload create_task_set(params = {}) + # @param [Hash] params ({}) + def create_task_set(params = {}, options = {}) + req = build_request(:create_task_set, params) + req.send_request(options) + end + # Modifies the ARN and resource ID format of a resource for a specified # IAM user, IAM role, or the root user for an account. You can specify # whether the new ARN and resource ID format are disabled for new # resources that are created. # @@ -1205,10 +1441,12 @@ # resp.service.deployment_configuration.maximum_percent #=> Integer # resp.service.deployment_configuration.minimum_healthy_percent #=> Integer # resp.service.task_sets #=> Array # resp.service.task_sets[0].id #=> String # resp.service.task_sets[0].task_set_arn #=> String + # resp.service.task_sets[0].service_arn #=> String + # resp.service.task_sets[0].cluster_arn #=> String # resp.service.task_sets[0].started_by #=> String # resp.service.task_sets[0].external_id #=> String # resp.service.task_sets[0].status #=> String # resp.service.task_sets[0].task_definition #=> String # resp.service.task_sets[0].computed_desired_count #=> Integer @@ -1226,10 +1464,15 @@ # resp.service.task_sets[0].load_balancers #=> Array # resp.service.task_sets[0].load_balancers[0].target_group_arn #=> String # resp.service.task_sets[0].load_balancers[0].load_balancer_name #=> String # resp.service.task_sets[0].load_balancers[0].container_name #=> String # resp.service.task_sets[0].load_balancers[0].container_port #=> Integer + # resp.service.task_sets[0].service_registries #=> Array + # resp.service.task_sets[0].service_registries[0].registry_arn #=> String + # resp.service.task_sets[0].service_registries[0].port #=> Integer + # resp.service.task_sets[0].service_registries[0].container_name #=> String + # resp.service.task_sets[0].service_registries[0].container_port #=> Integer # resp.service.task_sets[0].scale.value #=> Float # resp.service.task_sets[0].scale.unit #=> String, one of "PERCENT" # resp.service.task_sets[0].stability_status #=> String, one of "STEADY_STATE", "STABILIZING" # resp.service.task_sets[0].stability_status_at #=> Time # resp.service.deployments #=> Array @@ -1265,11 +1508,11 @@ # resp.service.network_configuration.awsvpc_configuration.security_groups #=> Array # resp.service.network_configuration.awsvpc_configuration.security_groups[0] #=> String # resp.service.network_configuration.awsvpc_configuration.assign_public_ip #=> String, one of "ENABLED", "DISABLED" # resp.service.health_check_grace_period_seconds #=> Integer # resp.service.scheduling_strategy #=> String, one of "REPLICA", "DAEMON" - # resp.service.deployment_controller.type #=> String, one of "ECS", "CODE_DEPLOY" + # resp.service.deployment_controller.type #=> String, one of "ECS", "CODE_DEPLOY", "EXTERNAL" # resp.service.tags #=> Array # resp.service.tags[0].key #=> String # resp.service.tags[0].value #=> String # resp.service.created_by #=> String # resp.service.enable_ecs_managed_tags #=> Boolean @@ -1282,10 +1525,94 @@ def delete_service(params = {}, options = {}) req = build_request(:delete_service, params) req.send_request(options) end + # Deletes a specified task set within a service. This is used when a + # service uses the `EXTERNAL` deployment controller type. For more + # information, see [Amazon ECS Deployment Types][1] in the *Amazon + # Elastic Container Service Developer Guide*. + # + # + # + # [1]: http://docs.aws.amazon.com/AmazonECS/latest/developerguide/deployment-types.html + # + # @option params [required, String] :cluster + # The short name or full Amazon Resource Name (ARN) of the cluster that + # hosts the service that the task set exists in to delete. + # + # @option params [required, String] :service + # The short name or full Amazon Resource Name (ARN) of the service that + # hosts the task set to delete. + # + # @option params [required, String] :task_set + # The task set ID or full Amazon Resource Name (ARN) of the task set to + # delete. + # + # @option params [Boolean] :force + # If `true`, this allows you to delete a task set even if it hasn't + # been scaled down to zero. + # + # @return [Types::DeleteTaskSetResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods: + # + # * {Types::DeleteTaskSetResponse#task_set #task_set} => Types::TaskSet + # + # @example Request syntax with placeholder values + # + # resp = client.delete_task_set({ + # cluster: "String", # required + # service: "String", # required + # task_set: "String", # required + # force: false, + # }) + # + # @example Response structure + # + # resp.task_set.id #=> String + # resp.task_set.task_set_arn #=> String + # resp.task_set.service_arn #=> String + # resp.task_set.cluster_arn #=> String + # resp.task_set.started_by #=> String + # resp.task_set.external_id #=> String + # resp.task_set.status #=> String + # resp.task_set.task_definition #=> String + # resp.task_set.computed_desired_count #=> Integer + # resp.task_set.pending_count #=> Integer + # resp.task_set.running_count #=> Integer + # resp.task_set.created_at #=> Time + # resp.task_set.updated_at #=> Time + # resp.task_set.launch_type #=> String, one of "EC2", "FARGATE" + # resp.task_set.platform_version #=> String + # resp.task_set.network_configuration.awsvpc_configuration.subnets #=> Array + # resp.task_set.network_configuration.awsvpc_configuration.subnets[0] #=> String + # resp.task_set.network_configuration.awsvpc_configuration.security_groups #=> Array + # resp.task_set.network_configuration.awsvpc_configuration.security_groups[0] #=> String + # resp.task_set.network_configuration.awsvpc_configuration.assign_public_ip #=> String, one of "ENABLED", "DISABLED" + # resp.task_set.load_balancers #=> Array + # resp.task_set.load_balancers[0].target_group_arn #=> String + # resp.task_set.load_balancers[0].load_balancer_name #=> String + # resp.task_set.load_balancers[0].container_name #=> String + # resp.task_set.load_balancers[0].container_port #=> Integer + # resp.task_set.service_registries #=> Array + # resp.task_set.service_registries[0].registry_arn #=> String + # resp.task_set.service_registries[0].port #=> Integer + # resp.task_set.service_registries[0].container_name #=> String + # resp.task_set.service_registries[0].container_port #=> Integer + # resp.task_set.scale.value #=> Float + # resp.task_set.scale.unit #=> String, one of "PERCENT" + # resp.task_set.stability_status #=> String, one of "STEADY_STATE", "STABILIZING" + # resp.task_set.stability_status_at #=> Time + # + # @see http://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/DeleteTaskSet AWS API Documentation + # + # @overload delete_task_set(params = {}) + # @param [Hash] params ({}) + def delete_task_set(params = {}, options = {}) + req = build_request(:delete_task_set, params) + req.send_request(options) + end + # Deregisters an Amazon ECS container instance from the specified # cluster. This instance is no longer available to run tasks. # # If you intend to use the container instance for some other purpose # after deregistration, you should stop all of the tasks running on the @@ -1972,10 +2299,12 @@ # resp.services[0].deployment_configuration.maximum_percent #=> Integer # resp.services[0].deployment_configuration.minimum_healthy_percent #=> Integer # resp.services[0].task_sets #=> Array # resp.services[0].task_sets[0].id #=> String # resp.services[0].task_sets[0].task_set_arn #=> String + # resp.services[0].task_sets[0].service_arn #=> String + # resp.services[0].task_sets[0].cluster_arn #=> String # resp.services[0].task_sets[0].started_by #=> String # resp.services[0].task_sets[0].external_id #=> String # resp.services[0].task_sets[0].status #=> String # resp.services[0].task_sets[0].task_definition #=> String # resp.services[0].task_sets[0].computed_desired_count #=> Integer @@ -1993,10 +2322,15 @@ # resp.services[0].task_sets[0].load_balancers #=> Array # resp.services[0].task_sets[0].load_balancers[0].target_group_arn #=> String # resp.services[0].task_sets[0].load_balancers[0].load_balancer_name #=> String # resp.services[0].task_sets[0].load_balancers[0].container_name #=> String # resp.services[0].task_sets[0].load_balancers[0].container_port #=> Integer + # resp.services[0].task_sets[0].service_registries #=> Array + # resp.services[0].task_sets[0].service_registries[0].registry_arn #=> String + # resp.services[0].task_sets[0].service_registries[0].port #=> Integer + # resp.services[0].task_sets[0].service_registries[0].container_name #=> String + # resp.services[0].task_sets[0].service_registries[0].container_port #=> Integer # resp.services[0].task_sets[0].scale.value #=> Float # resp.services[0].task_sets[0].scale.unit #=> String, one of "PERCENT" # resp.services[0].task_sets[0].stability_status #=> String, one of "STEADY_STATE", "STABILIZING" # resp.services[0].task_sets[0].stability_status_at #=> Time # resp.services[0].deployments #=> Array @@ -2032,11 +2366,11 @@ # resp.services[0].network_configuration.awsvpc_configuration.security_groups #=> Array # resp.services[0].network_configuration.awsvpc_configuration.security_groups[0] #=> String # resp.services[0].network_configuration.awsvpc_configuration.assign_public_ip #=> String, one of "ENABLED", "DISABLED" # resp.services[0].health_check_grace_period_seconds #=> Integer # resp.services[0].scheduling_strategy #=> String, one of "REPLICA", "DAEMON" - # resp.services[0].deployment_controller.type #=> String, one of "ECS", "CODE_DEPLOY" + # resp.services[0].deployment_controller.type #=> String, one of "ECS", "CODE_DEPLOY", "EXTERNAL" # resp.services[0].tags #=> Array # resp.services[0].tags[0].key #=> String # resp.services[0].tags[0].value #=> String # resp.services[0].created_by #=> String # resp.services[0].enable_ecs_managed_tags #=> Boolean @@ -2290,10 +2624,93 @@ def describe_task_definition(params = {}, options = {}) req = build_request(:describe_task_definition, params) req.send_request(options) end + # Describes the task sets in the specified cluster and service. This is + # used when a service uses the `EXTERNAL` deployment controller type. + # For more information, see [Amazon ECS Deployment Types][1] in the + # *Amazon Elastic Container Service Developer Guide*. + # + # + # + # [1]: http://docs.aws.amazon.com/AmazonECS/latest/developerguide/deployment-types.html + # + # @option params [required, String] :cluster + # The short name or full Amazon Resource Name (ARN) of the cluster that + # hosts the service that the task sets exist in. + # + # @option params [required, String] :service + # The short name or full Amazon Resource Name (ARN) of the service that + # the task sets exist in. + # + # @option params [Array<String>] :task_sets + # The ID or full Amazon Resource Name (ARN) of task sets to describe. + # + # @return [Types::DescribeTaskSetsResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods: + # + # * {Types::DescribeTaskSetsResponse#task_sets #task_sets} => Array&lt;Types::TaskSet&gt; + # * {Types::DescribeTaskSetsResponse#failures #failures} => Array&lt;Types::Failure&gt; + # + # @example Request syntax with placeholder values + # + # resp = client.describe_task_sets({ + # cluster: "String", # required + # service: "String", # required + # task_sets: ["String"], + # }) + # + # @example Response structure + # + # resp.task_sets #=> Array + # resp.task_sets[0].id #=> String + # resp.task_sets[0].task_set_arn #=> String + # resp.task_sets[0].service_arn #=> String + # resp.task_sets[0].cluster_arn #=> String + # resp.task_sets[0].started_by #=> String + # resp.task_sets[0].external_id #=> String + # resp.task_sets[0].status #=> String + # resp.task_sets[0].task_definition #=> String + # resp.task_sets[0].computed_desired_count #=> Integer + # resp.task_sets[0].pending_count #=> Integer + # resp.task_sets[0].running_count #=> Integer + # resp.task_sets[0].created_at #=> Time + # resp.task_sets[0].updated_at #=> Time + # resp.task_sets[0].launch_type #=> String, one of "EC2", "FARGATE" + # resp.task_sets[0].platform_version #=> String + # resp.task_sets[0].network_configuration.awsvpc_configuration.subnets #=> Array + # resp.task_sets[0].network_configuration.awsvpc_configuration.subnets[0] #=> String + # resp.task_sets[0].network_configuration.awsvpc_configuration.security_groups #=> Array + # resp.task_sets[0].network_configuration.awsvpc_configuration.security_groups[0] #=> String + # resp.task_sets[0].network_configuration.awsvpc_configuration.assign_public_ip #=> String, one of "ENABLED", "DISABLED" + # resp.task_sets[0].load_balancers #=> Array + # resp.task_sets[0].load_balancers[0].target_group_arn #=> String + # resp.task_sets[0].load_balancers[0].load_balancer_name #=> String + # resp.task_sets[0].load_balancers[0].container_name #=> String + # resp.task_sets[0].load_balancers[0].container_port #=> Integer + # resp.task_sets[0].service_registries #=> Array + # resp.task_sets[0].service_registries[0].registry_arn #=> String + # resp.task_sets[0].service_registries[0].port #=> Integer + # resp.task_sets[0].service_registries[0].container_name #=> String + # resp.task_sets[0].service_registries[0].container_port #=> Integer + # resp.task_sets[0].scale.value #=> Float + # resp.task_sets[0].scale.unit #=> String, one of "PERCENT" + # resp.task_sets[0].stability_status #=> String, one of "STEADY_STATE", "STABILIZING" + # resp.task_sets[0].stability_status_at #=> Time + # resp.failures #=> Array + # resp.failures[0].arn #=> String + # resp.failures[0].reason #=> String + # + # @see http://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/DescribeTaskSets AWS API Documentation + # + # @overload describe_task_sets(params = {}) + # @param [Hash] params ({}) + def describe_task_sets(params = {}, options = {}) + req = build_request(:describe_task_sets, params) + req.send_request(options) + end + # Describes a specified task or tasks. # # @option params [String] :cluster # The short name or full Amazon Resource Name (ARN) of the cluster that # hosts the task to describe. If you do not specify a cluster, the @@ -4036,10 +4453,22 @@ # [3]: http://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_definition_parameters.html # # @option params [Types::ProxyConfiguration] :proxy_configuration # The configuration details for the App Mesh proxy. # + # Your Amazon ECS container instances require at least version 1.26.0 of + # the container agent and at least version 1.26.0-1 of the `ecs-init` + # package to enable a proxy configuration. If your container instances + # are launched from the Amazon ECS-optimized AMI version `20190301` or + # later, then they contain the required versions of the container agent + # and `ecs-init`. For more information, see [Amazon ECS-optimized Linux + # AMI][1] in the *Amazon Elastic Container Service Developer Guide*. + # + # + # + # [1]: http://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-optimized_AMI.html + # # @return [Types::RegisterTaskDefinitionResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods: # # * {Types::RegisterTaskDefinitionResponse#task_definition #task_definition} => Types::TaskDefinition # * {Types::RegisterTaskDefinitionResponse#tags #tags} => Array&lt;Types::Tag&gt; # @@ -5024,11 +5453,11 @@ # The short name or full Amazon Resource Name (ARN) of the cluster that # hosts the task to stop. If you do not specify a cluster, the default # cluster is assumed. # # @option params [required, String] :task - # The task ID or full ARN entry of the task to stop. + # The task ID or full Amazon Resource Name (ARN) of the task to stop. # # @option params [String] :reason # An optional message specified when a task is stopped. For example, if # you are using a custom scheduler, you can use this parameter to # specify the reason for stopping the task here, and the message appears @@ -5622,10 +6051,16 @@ # network configuration, platform version, or task definition need to be # updated, a new AWS CodeDeploy deployment should be created. For more # information, see [CreateDeployment][1] in the *AWS CodeDeploy API # Reference*. # + # For services using an external deployment controller, you can update + # only the desired count and health check grace period using this API. + # If the launch type, load balancer, network configuration, platform + # version, or task definition need to be updated, you should create a + # new task set. For more information, see CreateTaskSet. + # # You can add to or subtract from the number of instantiations of a task # definition in a service by specifying the cluster that the service is # running in and a new `desiredCount` parameter. # # If you have updated the Docker image of your application, you can @@ -5868,10 +6303,12 @@ # resp.service.deployment_configuration.maximum_percent #=> Integer # resp.service.deployment_configuration.minimum_healthy_percent #=> Integer # resp.service.task_sets #=> Array # resp.service.task_sets[0].id #=> String # resp.service.task_sets[0].task_set_arn #=> String + # resp.service.task_sets[0].service_arn #=> String + # resp.service.task_sets[0].cluster_arn #=> String # resp.service.task_sets[0].started_by #=> String # resp.service.task_sets[0].external_id #=> String # resp.service.task_sets[0].status #=> String # resp.service.task_sets[0].task_definition #=> String # resp.service.task_sets[0].computed_desired_count #=> Integer @@ -5889,10 +6326,15 @@ # resp.service.task_sets[0].load_balancers #=> Array # resp.service.task_sets[0].load_balancers[0].target_group_arn #=> String # resp.service.task_sets[0].load_balancers[0].load_balancer_name #=> String # resp.service.task_sets[0].load_balancers[0].container_name #=> String # resp.service.task_sets[0].load_balancers[0].container_port #=> Integer + # resp.service.task_sets[0].service_registries #=> Array + # resp.service.task_sets[0].service_registries[0].registry_arn #=> String + # resp.service.task_sets[0].service_registries[0].port #=> Integer + # resp.service.task_sets[0].service_registries[0].container_name #=> String + # resp.service.task_sets[0].service_registries[0].container_port #=> Integer # resp.service.task_sets[0].scale.value #=> Float # resp.service.task_sets[0].scale.unit #=> String, one of "PERCENT" # resp.service.task_sets[0].stability_status #=> String, one of "STEADY_STATE", "STABILIZING" # resp.service.task_sets[0].stability_status_at #=> Time # resp.service.deployments #=> Array @@ -5928,11 +6370,11 @@ # resp.service.network_configuration.awsvpc_configuration.security_groups #=> Array # resp.service.network_configuration.awsvpc_configuration.security_groups[0] #=> String # resp.service.network_configuration.awsvpc_configuration.assign_public_ip #=> String, one of "ENABLED", "DISABLED" # resp.service.health_check_grace_period_seconds #=> Integer # resp.service.scheduling_strategy #=> String, one of "REPLICA", "DAEMON" - # resp.service.deployment_controller.type #=> String, one of "ECS", "CODE_DEPLOY" + # resp.service.deployment_controller.type #=> String, one of "ECS", "CODE_DEPLOY", "EXTERNAL" # resp.service.tags #=> Array # resp.service.tags[0].key #=> String # resp.service.tags[0].value #=> String # resp.service.created_by #=> String # resp.service.enable_ecs_managed_tags #=> Boolean @@ -5945,10 +6387,178 @@ def update_service(params = {}, options = {}) req = build_request(:update_service, params) req.send_request(options) end + # Modifies which task set in a service is the primary task set. Any + # parameters that are updated on the primary task set in a service will + # transition to the service. This is used when a service uses the + # `EXTERNAL` deployment controller type. For more information, see + # [Amazon ECS Deployment Types][1] in the *Amazon Elastic Container + # Service Developer Guide*. + # + # + # + # [1]: http://docs.aws.amazon.com/AmazonECS/latest/developerguide/deployment-types.html + # + # @option params [required, String] :cluster + # The short name or full Amazon Resource Name (ARN) of the cluster that + # hosts the service that the task set exists in. + # + # @option params [required, String] :service + # The short name or full Amazon Resource Name (ARN) of the service that + # the task set exists in. + # + # @option params [required, String] :primary_task_set + # The short name or full Amazon Resource Name (ARN) of the task set to + # set as the primary task set in the deployment. + # + # @return [Types::UpdateServicePrimaryTaskSetResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods: + # + # * {Types::UpdateServicePrimaryTaskSetResponse#task_set #task_set} => Types::TaskSet + # + # @example Request syntax with placeholder values + # + # resp = client.update_service_primary_task_set({ + # cluster: "String", # required + # service: "String", # required + # primary_task_set: "String", # required + # }) + # + # @example Response structure + # + # resp.task_set.id #=> String + # resp.task_set.task_set_arn #=> String + # resp.task_set.service_arn #=> String + # resp.task_set.cluster_arn #=> String + # resp.task_set.started_by #=> String + # resp.task_set.external_id #=> String + # resp.task_set.status #=> String + # resp.task_set.task_definition #=> String + # resp.task_set.computed_desired_count #=> Integer + # resp.task_set.pending_count #=> Integer + # resp.task_set.running_count #=> Integer + # resp.task_set.created_at #=> Time + # resp.task_set.updated_at #=> Time + # resp.task_set.launch_type #=> String, one of "EC2", "FARGATE" + # resp.task_set.platform_version #=> String + # resp.task_set.network_configuration.awsvpc_configuration.subnets #=> Array + # resp.task_set.network_configuration.awsvpc_configuration.subnets[0] #=> String + # resp.task_set.network_configuration.awsvpc_configuration.security_groups #=> Array + # resp.task_set.network_configuration.awsvpc_configuration.security_groups[0] #=> String + # resp.task_set.network_configuration.awsvpc_configuration.assign_public_ip #=> String, one of "ENABLED", "DISABLED" + # resp.task_set.load_balancers #=> Array + # resp.task_set.load_balancers[0].target_group_arn #=> String + # resp.task_set.load_balancers[0].load_balancer_name #=> String + # resp.task_set.load_balancers[0].container_name #=> String + # resp.task_set.load_balancers[0].container_port #=> Integer + # resp.task_set.service_registries #=> Array + # resp.task_set.service_registries[0].registry_arn #=> String + # resp.task_set.service_registries[0].port #=> Integer + # resp.task_set.service_registries[0].container_name #=> String + # resp.task_set.service_registries[0].container_port #=> Integer + # resp.task_set.scale.value #=> Float + # resp.task_set.scale.unit #=> String, one of "PERCENT" + # resp.task_set.stability_status #=> String, one of "STEADY_STATE", "STABILIZING" + # resp.task_set.stability_status_at #=> Time + # + # @see http://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/UpdateServicePrimaryTaskSet AWS API Documentation + # + # @overload update_service_primary_task_set(params = {}) + # @param [Hash] params ({}) + def update_service_primary_task_set(params = {}, options = {}) + req = build_request(:update_service_primary_task_set, params) + req.send_request(options) + end + + # Modifies a task set. This is used when a service uses the `EXTERNAL` + # deployment controller type. For more information, see [Amazon ECS + # Deployment Types][1] in the *Amazon Elastic Container Service + # Developer Guide*. + # + # + # + # [1]: http://docs.aws.amazon.com/AmazonECS/latest/developerguide/deployment-types.html + # + # @option params [required, String] :cluster + # The short name or full Amazon Resource Name (ARN) of the cluster that + # hosts the service that the task set exists in. + # + # @option params [required, String] :service + # The short name or full Amazon Resource Name (ARN) of the service that + # the task set exists in. + # + # @option params [required, String] :task_set + # The short name or full Amazon Resource Name (ARN) of the task set to + # update. + # + # @option params [required, Types::Scale] :scale + # A floating-point percentage of the desired number of tasks to place + # and keep running in the task set. + # + # @return [Types::UpdateTaskSetResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods: + # + # * {Types::UpdateTaskSetResponse#task_set #task_set} => Types::TaskSet + # + # @example Request syntax with placeholder values + # + # resp = client.update_task_set({ + # cluster: "String", # required + # service: "String", # required + # task_set: "String", # required + # scale: { # required + # value: 1.0, + # unit: "PERCENT", # accepts PERCENT + # }, + # }) + # + # @example Response structure + # + # resp.task_set.id #=> String + # resp.task_set.task_set_arn #=> String + # resp.task_set.service_arn #=> String + # resp.task_set.cluster_arn #=> String + # resp.task_set.started_by #=> String + # resp.task_set.external_id #=> String + # resp.task_set.status #=> String + # resp.task_set.task_definition #=> String + # resp.task_set.computed_desired_count #=> Integer + # resp.task_set.pending_count #=> Integer + # resp.task_set.running_count #=> Integer + # resp.task_set.created_at #=> Time + # resp.task_set.updated_at #=> Time + # resp.task_set.launch_type #=> String, one of "EC2", "FARGATE" + # resp.task_set.platform_version #=> String + # resp.task_set.network_configuration.awsvpc_configuration.subnets #=> Array + # resp.task_set.network_configuration.awsvpc_configuration.subnets[0] #=> String + # resp.task_set.network_configuration.awsvpc_configuration.security_groups #=> Array + # resp.task_set.network_configuration.awsvpc_configuration.security_groups[0] #=> String + # resp.task_set.network_configuration.awsvpc_configuration.assign_public_ip #=> String, one of "ENABLED", "DISABLED" + # resp.task_set.load_balancers #=> Array + # resp.task_set.load_balancers[0].target_group_arn #=> String + # resp.task_set.load_balancers[0].load_balancer_name #=> String + # resp.task_set.load_balancers[0].container_name #=> String + # resp.task_set.load_balancers[0].container_port #=> Integer + # resp.task_set.service_registries #=> Array + # resp.task_set.service_registries[0].registry_arn #=> String + # resp.task_set.service_registries[0].port #=> Integer + # resp.task_set.service_registries[0].container_name #=> String + # resp.task_set.service_registries[0].container_port #=> Integer + # resp.task_set.scale.value #=> Float + # resp.task_set.scale.unit #=> String, one of "PERCENT" + # resp.task_set.stability_status #=> String, one of "STEADY_STATE", "STABILIZING" + # resp.task_set.stability_status_at #=> Time + # + # @see http://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/UpdateTaskSet AWS API Documentation + # + # @overload update_task_set(params = {}) + # @param [Hash] params ({}) + def update_task_set(params = {}, options = {}) + req = build_request(:update_task_set, params) + req.send_request(options) + end + # @!endgroup # @param params ({}) # @api private def build_request(operation_name, params = {}) @@ -5958,10 +6568,10 @@ operation: config.api.operation(operation_name), client: self, params: params, config: config) context[:gem_name] = 'aws-sdk-ecs' - context[:gem_version] = '1.35.0' + context[:gem_version] = '1.36.0' Seahorse::Client::Request.new(handlers, context) end # Polls an API operation until a resource enters a desired state. #