import { DeploymentAlarmsProps } from './DeploymentAlarmsProps';
import { DeploymentCircuitBreakerProps } from './DeploymentCircuitBreakerProps';
import { Value } from '../../../cloudformation/Value';
/**
  The <code>DeploymentConfiguration</code> property specifies optional deployment parameters that control how many tasks run during the deployment and the ordering of stopping and starting tasks.
  For full documentation go to <a href="http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-service-deploymentconfiguration.html">the AWS Docs</a>
*/
export interface DeploymentConfigurationProps {
    /** <code>Alarms</code>  <a name="cfn-ecs-service-deploymentconfiguration-alarms"></a>
  Information about the CloudWatch alarms.<br />
  
  Required: No<br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt">No interruption</a> */
    alarms?: DeploymentAlarmsProps;
    /** <code>DeploymentCircuitBreaker</code>  <a name="cfn-ecs-service-deploymentconfiguration-deploymentcircuitbreaker"></a>
  The deployment circuit breaker can only be used for services using the rolling update (<code>ECS</code>) deployment type.
  The <strong>deployment circuit breaker</strong> 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 <a href="https://docs.aws.amazon.com/AmazonECS/latest/developerguide/deployment-type-ecs.html">Rolling update</a> in the
  Amazon Elastic Container Service Developer Guide: r />
  
  Required: No<br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt">No interruption</a> */
    deploymentCircuitBreaker?: DeploymentCircuitBreakerProps;
    /** <code>MaximumPercent</code>  <a name="cfn-ecs-service-deploymentconfiguration-maximumpercent"></a>
  If a service is using the rolling update (<code>ECS</code>) deployment type, the <code>maximumPercent</code> parameter represents an upper limit on the number of your service’s tasks that are allowed in the <code>RUNNING</code> or <code>PENDING</code> state during a deployment, as a percentage of the <code>desiredCount</code> (rounded down to the nearest integer). This parameter enables you to define the deployment batch size. For example, if your service is using the <code>REPLICA</code> service scheduler and has a <code>desiredCount</code> of four tasks and a <code>maximumPercent</code> 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 <code>maximumPercent</code> value for a service using the <code>REPLICA</code> service scheduler is 200%.<br />
  If a service is using either the blue/green (<code>CODE_DEPLOY</code>) or <code>EXTERNAL</code> deployment types and tasks that use the EC2 launch type, the <strong>maximum percent</strong> 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 <code>RUNNING</code> state while the container instances are in the <code>DRAINING</code> 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.<br />
  
  Required: No<br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt">No interruption</a> */
    maximumPercent?: Value<number>;
    /** <code>MinimumHealthyPercent</code>  <a name="cfn-ecs-service-deploymentconfiguration-minimumhealthypercent"></a>
  If a service is using the rolling update (<code>ECS</code>) deployment type, the <code>minimumHealthyPercent</code> represents a lower limit on the number of your service’s tasks that must remain in the <code>RUNNING</code> state during a deployment, as a percentage of the <code>desiredCount</code> (rounded up to the nearest integer). This parameter enables you to deploy without using additional cluster capacity. For example, if your service has a <code>desiredCount</code> of four tasks and a <code>minimumHealthyPercent</code> of 50%, the service scheduler may stop two existing tasks to free up cluster capacity before starting two new tasks.<br />
  For services that
  do not: se a load balancer, the following should be noted: */
    minimumHealthyPercent?: Value<number>;
}
