/** * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. * SPDX-License-Identifier: Apache-2.0. */ #pragma once #include namespace Aws { namespace Utils { namespace Json { class JsonValue; class JsonView; } // namespace Json } // namespace Utils namespace ECS { namespace Model { /** *

Optional deployment parameters that control how many tasks run during a * deployment and the ordering of stopping and starting tasks.

See * Also:

AWS * API Reference

*/ class AWS_ECS_API DeploymentConfiguration { public: DeploymentConfiguration(); DeploymentConfiguration(Aws::Utils::Json::JsonView jsonValue); DeploymentConfiguration& operator=(Aws::Utils::Json::JsonView jsonValue); Aws::Utils::Json::JsonValue Jsonize() const; /** *

If a service is using the rolling update (ECS) deployment type, * 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 (rounded down 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 define the deployment * batch size. For example, if your service has a desired 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 blue/green (CODE_DEPLOY) or * EXTERNAL deployment types and tasks that use the EC2 launch type, * the maximum percent value is set to the default value and is used to * define the 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 maximum percent value is not used, although it is returned when * describing your service.

*/ inline int GetMaximumPercent() const{ return m_maximumPercent; } /** *

If a service is using the rolling update (ECS) deployment type, * 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 (rounded down 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 define the deployment * batch size. For example, if your service has a desired 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 blue/green (CODE_DEPLOY) or * EXTERNAL deployment types and tasks that use the EC2 launch type, * the maximum percent value is set to the default value and is used to * define the 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 maximum percent value is not used, although it is returned when * describing your service.

*/ inline bool MaximumPercentHasBeenSet() const { return m_maximumPercentHasBeenSet; } /** *

If a service is using the rolling update (ECS) deployment type, * 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 (rounded down 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 define the deployment * batch size. For example, if your service has a desired 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 blue/green (CODE_DEPLOY) or * EXTERNAL deployment types and tasks that use the EC2 launch type, * the maximum percent value is set to the default value and is used to * define the 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 maximum percent value is not used, although it is returned when * describing your service.

*/ inline void SetMaximumPercent(int value) { m_maximumPercentHasBeenSet = true; m_maximumPercent = value; } /** *

If a service is using the rolling update (ECS) deployment type, * 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 (rounded down 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 define the deployment * batch size. For example, if your service has a desired 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 blue/green (CODE_DEPLOY) or * EXTERNAL deployment types and tasks that use the EC2 launch type, * the maximum percent value is set to the default value and is used to * define the 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 maximum percent value is not used, although it is returned when * describing your service.

*/ inline DeploymentConfiguration& WithMaximumPercent(int value) { SetMaximumPercent(value); return *this;} /** *

If a service is using the rolling update (ECS) deployment type, * 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 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%.

If a service is using the blue/green * (CODE_DEPLOY) or EXTERNAL deployment types and tasks * that use the EC2 launch type, the minimum healthy percent value is set to * the default value and is used to define the lower 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 value is not * used, although it is returned when describing your service.

*/ inline int GetMinimumHealthyPercent() const{ return m_minimumHealthyPercent; } /** *

If a service is using the rolling update (ECS) deployment type, * 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 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%.

If a service is using the blue/green * (CODE_DEPLOY) or EXTERNAL deployment types and tasks * that use the EC2 launch type, the minimum healthy percent value is set to * the default value and is used to define the lower 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 value is not * used, although it is returned when describing your service.

*/ inline bool MinimumHealthyPercentHasBeenSet() const { return m_minimumHealthyPercentHasBeenSet; } /** *

If a service is using the rolling update (ECS) deployment type, * 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 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%.

If a service is using the blue/green * (CODE_DEPLOY) or EXTERNAL deployment types and tasks * that use the EC2 launch type, the minimum healthy percent value is set to * the default value and is used to define the lower 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 value is not * used, although it is returned when describing your service.

*/ inline void SetMinimumHealthyPercent(int value) { m_minimumHealthyPercentHasBeenSet = true; m_minimumHealthyPercent = value; } /** *

If a service is using the rolling update (ECS) deployment type, * 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 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%.

If a service is using the blue/green * (CODE_DEPLOY) or EXTERNAL deployment types and tasks * that use the EC2 launch type, the minimum healthy percent value is set to * the default value and is used to define the lower 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 value is not * used, although it is returned when describing your service.

*/ inline DeploymentConfiguration& WithMinimumHealthyPercent(int value) { SetMinimumHealthyPercent(value); return *this;} private: int m_maximumPercent; bool m_maximumPercentHasBeenSet; int m_minimumHealthyPercent; bool m_minimumHealthyPercentHasBeenSet; }; } // namespace Model } // namespace ECS } // namespace Aws