/** * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. * SPDX-License-Identifier: Apache-2.0. */ #pragma once #include #include #include #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 DeploymentConfiguration { public: AWS_ECS_API DeploymentConfiguration(); AWS_ECS_API DeploymentConfiguration(Aws::Utils::Json::JsonView jsonValue); AWS_ECS_API DeploymentConfiguration& operator=(Aws::Utils::Json::JsonView jsonValue); AWS_ECS_API Aws::Utils::Json::JsonValue Jsonize() const; /** *

The deployment circuit breaker can only be used for services using the * rolling update (ECS) deployment type.

The * deployment circuit breaker determines whether a service deployment will * fail if the service can't reach a steady state. If you use the deployment * circuit breaker, a service deployment will transition to a failed state and stop * launching new tasks. If you use the rollback option, when a service deployment * fails, the service is rolled back to the last deployment that completed * successfully. For more information, see Rolling * update in the Amazon Elastic Container Service Developer Guide

*/ inline const DeploymentCircuitBreaker& GetDeploymentCircuitBreaker() const{ return m_deploymentCircuitBreaker; } /** *

The deployment circuit breaker can only be used for services using the * rolling update (ECS) deployment type.

The * deployment circuit breaker determines whether a service deployment will * fail if the service can't reach a steady state. If you use the deployment * circuit breaker, a service deployment will transition to a failed state and stop * launching new tasks. If you use the rollback option, when a service deployment * fails, the service is rolled back to the last deployment that completed * successfully. For more information, see Rolling * update in the Amazon Elastic Container Service Developer Guide

*/ inline bool DeploymentCircuitBreakerHasBeenSet() const { return m_deploymentCircuitBreakerHasBeenSet; } /** *

The deployment circuit breaker can only be used for services using the * rolling update (ECS) deployment type.

The * deployment circuit breaker determines whether a service deployment will * fail if the service can't reach a steady state. If you use the deployment * circuit breaker, a service deployment will transition to a failed state and stop * launching new tasks. If you use the rollback option, when a service deployment * fails, the service is rolled back to the last deployment that completed * successfully. For more information, see Rolling * update in the Amazon Elastic Container Service Developer Guide

*/ inline void SetDeploymentCircuitBreaker(const DeploymentCircuitBreaker& value) { m_deploymentCircuitBreakerHasBeenSet = true; m_deploymentCircuitBreaker = value; } /** *

The deployment circuit breaker can only be used for services using the * rolling update (ECS) deployment type.

The * deployment circuit breaker determines whether a service deployment will * fail if the service can't reach a steady state. If you use the deployment * circuit breaker, a service deployment will transition to a failed state and stop * launching new tasks. If you use the rollback option, when a service deployment * fails, the service is rolled back to the last deployment that completed * successfully. For more information, see Rolling * update in the Amazon Elastic Container Service Developer Guide

*/ inline void SetDeploymentCircuitBreaker(DeploymentCircuitBreaker&& value) { m_deploymentCircuitBreakerHasBeenSet = true; m_deploymentCircuitBreaker = std::move(value); } /** *

The deployment circuit breaker can only be used for services using the * rolling update (ECS) deployment type.

The * deployment circuit breaker determines whether a service deployment will * fail if the service can't reach a steady state. If you use the deployment * circuit breaker, a service deployment will transition to a failed state and stop * launching new tasks. If you use the rollback option, when a service deployment * fails, the service is rolled back to the last deployment that completed * successfully. For more information, see Rolling * update in the Amazon Elastic Container Service Developer Guide

*/ inline DeploymentConfiguration& WithDeploymentCircuitBreaker(const DeploymentCircuitBreaker& value) { SetDeploymentCircuitBreaker(value); return *this;} /** *

The deployment circuit breaker can only be used for services using the * rolling update (ECS) deployment type.

The * deployment circuit breaker determines whether a service deployment will * fail if the service can't reach a steady state. If you use the deployment * circuit breaker, a service deployment will transition to a failed state and stop * launching new tasks. If you use the rollback option, when a service deployment * fails, the service is rolled back to the last deployment that completed * successfully. For more information, see Rolling * update in the Amazon Elastic Container Service Developer Guide

*/ inline DeploymentConfiguration& WithDeploymentCircuitBreaker(DeploymentCircuitBreaker&& value) { SetDeploymentCircuitBreaker(std::move(value)); return *this;} /** *

If a service is using the rolling update (ECS) deployment type, * the maximumPercent parameter represents an upper limit on the * number of your service's tasks that are allowed in the RUNNING or * PENDING state during a deployment, as a percentage of the * desiredCount (rounded down to the nearest integer). This parameter * enables you to define the deployment batch size. For example, if your service is * using the REPLICA service scheduler and has a * desiredCount of four tasks and a maximumPercent 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 maximumPercent value for a service using the * REPLICA service scheduler is 200%.

If a service is using * either 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 maximumPercent parameter represents an upper limit on the * number of your service's tasks that are allowed in the RUNNING or * PENDING state during a deployment, as a percentage of the * desiredCount (rounded down to the nearest integer). This parameter * enables you to define the deployment batch size. For example, if your service is * using the REPLICA service scheduler and has a * desiredCount of four tasks and a maximumPercent 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 maximumPercent value for a service using the * REPLICA service scheduler is 200%.

If a service is using * either 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 maximumPercent parameter represents an upper limit on the * number of your service's tasks that are allowed in the RUNNING or * PENDING state during a deployment, as a percentage of the * desiredCount (rounded down to the nearest integer). This parameter * enables you to define the deployment batch size. For example, if your service is * using the REPLICA service scheduler and has a * desiredCount of four tasks and a maximumPercent 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 maximumPercent value for a service using the * REPLICA service scheduler is 200%.

If a service is using * either 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 maximumPercent parameter represents an upper limit on the * number of your service's tasks that are allowed in the RUNNING or * PENDING state during a deployment, as a percentage of the * desiredCount (rounded down to the nearest integer). This parameter * enables you to define the deployment batch size. For example, if your service is * using the REPLICA service scheduler and has a * desiredCount of four tasks and a maximumPercent 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 maximumPercent value for a service using the * REPLICA service scheduler is 200%.

If a service is using * either 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 minimumHealthyPercent represents a lower limit on the number of * your service's tasks that must remain in the RUNNING state during a * deployment, as a percentage of the desiredCount (rounded up to the * nearest integer). This parameter enables you to deploy without using additional * cluster capacity. For example, if your service has a desiredCount * of four tasks and a minimumHealthyPercent of 50%, the service * scheduler may stop two existing tasks to free up cluster capacity before * starting two new tasks.

For services that do not use a load * balancer, the following should be noted:

  • A service is * considered healthy if all essential containers within the tasks in the service * pass their health checks.

  • If a task has no essential * containers with a health check defined, the service scheduler will wait for 40 * seconds after a task reaches a RUNNING state before the task is * counted towards the minimum healthy percent total.

  • If a task * has one or more essential containers with a health check defined, the service * scheduler will wait for the task to reach a healthy status before counting it * towards the minimum healthy percent total. A task is considered healthy when all * essential containers within the task have passed their health checks. The amount * of time the service scheduler can wait for is determined by the container health * check settings.

For services are that do use a load * balancer, the following should be noted:

  • If a task has no * essential containers with a health check defined, the service scheduler will * wait for the load balancer target group health check to return a healthy status * before counting the task towards the minimum healthy percent total.

  • *
  • If a task has an essential container with a health check defined, the * service scheduler will wait for both the task to reach a healthy status and the * load balancer target group health check to return a healthy status before * counting the task towards the minimum healthy percent total.

*

If a service is using either the blue/green (CODE_DEPLOY) or * EXTERNAL deployment types and is running 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 a service is using either * the blue/green (CODE_DEPLOY) or EXTERNAL deployment * types and is running tasks that 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 minimumHealthyPercent represents a lower limit on the number of * your service's tasks that must remain in the RUNNING state during a * deployment, as a percentage of the desiredCount (rounded up to the * nearest integer). This parameter enables you to deploy without using additional * cluster capacity. For example, if your service has a desiredCount * of four tasks and a minimumHealthyPercent of 50%, the service * scheduler may stop two existing tasks to free up cluster capacity before * starting two new tasks.

For services that do not use a load * balancer, the following should be noted:

  • A service is * considered healthy if all essential containers within the tasks in the service * pass their health checks.

  • If a task has no essential * containers with a health check defined, the service scheduler will wait for 40 * seconds after a task reaches a RUNNING state before the task is * counted towards the minimum healthy percent total.

  • If a task * has one or more essential containers with a health check defined, the service * scheduler will wait for the task to reach a healthy status before counting it * towards the minimum healthy percent total. A task is considered healthy when all * essential containers within the task have passed their health checks. The amount * of time the service scheduler can wait for is determined by the container health * check settings.

For services are that do use a load * balancer, the following should be noted:

  • If a task has no * essential containers with a health check defined, the service scheduler will * wait for the load balancer target group health check to return a healthy status * before counting the task towards the minimum healthy percent total.

  • *
  • If a task has an essential container with a health check defined, the * service scheduler will wait for both the task to reach a healthy status and the * load balancer target group health check to return a healthy status before * counting the task towards the minimum healthy percent total.

*

If a service is using either the blue/green (CODE_DEPLOY) or * EXTERNAL deployment types and is running 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 a service is using either * the blue/green (CODE_DEPLOY) or EXTERNAL deployment * types and is running tasks that 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 minimumHealthyPercent represents a lower limit on the number of * your service's tasks that must remain in the RUNNING state during a * deployment, as a percentage of the desiredCount (rounded up to the * nearest integer). This parameter enables you to deploy without using additional * cluster capacity. For example, if your service has a desiredCount * of four tasks and a minimumHealthyPercent of 50%, the service * scheduler may stop two existing tasks to free up cluster capacity before * starting two new tasks.

For services that do not use a load * balancer, the following should be noted:

  • A service is * considered healthy if all essential containers within the tasks in the service * pass their health checks.

  • If a task has no essential * containers with a health check defined, the service scheduler will wait for 40 * seconds after a task reaches a RUNNING state before the task is * counted towards the minimum healthy percent total.

  • If a task * has one or more essential containers with a health check defined, the service * scheduler will wait for the task to reach a healthy status before counting it * towards the minimum healthy percent total. A task is considered healthy when all * essential containers within the task have passed their health checks. The amount * of time the service scheduler can wait for is determined by the container health * check settings.

For services are that do use a load * balancer, the following should be noted:

  • If a task has no * essential containers with a health check defined, the service scheduler will * wait for the load balancer target group health check to return a healthy status * before counting the task towards the minimum healthy percent total.

  • *
  • If a task has an essential container with a health check defined, the * service scheduler will wait for both the task to reach a healthy status and the * load balancer target group health check to return a healthy status before * counting the task towards the minimum healthy percent total.

*

If a service is using either the blue/green (CODE_DEPLOY) or * EXTERNAL deployment types and is running 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 a service is using either * the blue/green (CODE_DEPLOY) or EXTERNAL deployment * types and is running tasks that 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 minimumHealthyPercent represents a lower limit on the number of * your service's tasks that must remain in the RUNNING state during a * deployment, as a percentage of the desiredCount (rounded up to the * nearest integer). This parameter enables you to deploy without using additional * cluster capacity. For example, if your service has a desiredCount * of four tasks and a minimumHealthyPercent of 50%, the service * scheduler may stop two existing tasks to free up cluster capacity before * starting two new tasks.

For services that do not use a load * balancer, the following should be noted:

  • A service is * considered healthy if all essential containers within the tasks in the service * pass their health checks.

  • If a task has no essential * containers with a health check defined, the service scheduler will wait for 40 * seconds after a task reaches a RUNNING state before the task is * counted towards the minimum healthy percent total.

  • If a task * has one or more essential containers with a health check defined, the service * scheduler will wait for the task to reach a healthy status before counting it * towards the minimum healthy percent total. A task is considered healthy when all * essential containers within the task have passed their health checks. The amount * of time the service scheduler can wait for is determined by the container health * check settings.

For services are that do use a load * balancer, the following should be noted:

  • If a task has no * essential containers with a health check defined, the service scheduler will * wait for the load balancer target group health check to return a healthy status * before counting the task towards the minimum healthy percent total.

  • *
  • If a task has an essential container with a health check defined, the * service scheduler will wait for both the task to reach a healthy status and the * load balancer target group health check to return a healthy status before * counting the task towards the minimum healthy percent total.

*

If a service is using either the blue/green (CODE_DEPLOY) or * EXTERNAL deployment types and is running 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 a service is using either * the blue/green (CODE_DEPLOY) or EXTERNAL deployment * types and is running tasks that 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;} /** *

Information about the CloudWatch alarms.

*/ inline const DeploymentAlarms& GetAlarms() const{ return m_alarms; } /** *

Information about the CloudWatch alarms.

*/ inline bool AlarmsHasBeenSet() const { return m_alarmsHasBeenSet; } /** *

Information about the CloudWatch alarms.

*/ inline void SetAlarms(const DeploymentAlarms& value) { m_alarmsHasBeenSet = true; m_alarms = value; } /** *

Information about the CloudWatch alarms.

*/ inline void SetAlarms(DeploymentAlarms&& value) { m_alarmsHasBeenSet = true; m_alarms = std::move(value); } /** *

Information about the CloudWatch alarms.

*/ inline DeploymentConfiguration& WithAlarms(const DeploymentAlarms& value) { SetAlarms(value); return *this;} /** *

Information about the CloudWatch alarms.

*/ inline DeploymentConfiguration& WithAlarms(DeploymentAlarms&& value) { SetAlarms(std::move(value)); return *this;} private: DeploymentCircuitBreaker m_deploymentCircuitBreaker; bool m_deploymentCircuitBreakerHasBeenSet = false; int m_maximumPercent; bool m_maximumPercentHasBeenSet = false; int m_minimumHealthyPercent; bool m_minimumHealthyPercentHasBeenSet = false; DeploymentAlarms m_alarms; bool m_alarmsHasBeenSet = false; }; } // namespace Model } // namespace ECS } // namespace Aws