import { Value } from '../../../cloudformation/Value';
import { CustomizedMetricSpecificationProps } from './CustomizedMetricSpecificationProps';
import { PredefinedMetricSpecificationProps } from './PredefinedMetricSpecificationProps';
/**
  <code>TargetTrackingConfiguration</code> is a property of the <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-as-policy.html">AWS::AutoScaling::ScalingPolicy</a> resource that specifies a target tracking scaling policy configuration for Amazon EC2 Auto Scaling.
  For full documentation go to <a href="http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-scalingpolicy-targettrackingconfiguration.html">the AWS Docs</a>
*/
export interface TargetTrackingConfigurationProps {
    /** <code>TargetValue</code>  <a name="cfn-autoscaling-scalingpolicy-targettrackingconfiguration-targetvalue"></a>
  The target value for the metric.<br />
  Some metrics are based on a count instead of a percentage, such as the request count for an Application Load Balancer or the number of messages in an SQS queue. If the scaling policy specifies one of these metrics, specify the target utilization as the optimal average request or message count per instance during any one-minute interval.
  
  Required: Yes<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> */
    targetValue: Value<number>;
    /** <code>CustomizedMetricSpecification</code>  <a name="cfn-autoscaling-scalingpolicy-targettrackingconfiguration-customizedmetricspecification"></a>
  A customized metric. You must specify either a predefined metric or a customized metric.<br />
  
  Required: Conditional<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> */
    customizedMetricSpecification?: CustomizedMetricSpecificationProps;
    /** <code>DisableScaleIn</code>  <a name="cfn-autoscaling-scalingpolicy-targettrackingconfiguration-disablescalein"></a>
  Indicates whether scaling in by the target tracking scaling policy is disabled. If scaling in is disabled, the target tracking scaling policy doesn’t remove instances from the Auto Scaling group. Otherwise, the target tracking scaling policy can remove instances from the Auto Scaling group. The default is <code>false</code>.<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> */
    disableScaleIn?: Value<boolean>;
    /** <code>PredefinedMetricSpecification</code>  <a name="cfn-autoscaling-scalingpolicy-targettrackingconfiguration-predefinedmetricspecification"></a>
  A predefined metric. You must specify either a predefined metric or a customized metric.<br />
  
  Required: Conditional<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> */
    predefinedMetricSpecification?: PredefinedMetricSpecificationProps;
}
