{ "$schema": "https://json-structure.org/meta/core/v0/#", "$id": "https://raw.githubusercontent.com/api-evangelist/amazon-ec2-auto-scaling/refs/heads/main/json-structure/ec2-auto-scaling-scaling-policy-structure.json", "name": "ScalingPolicy", "description": "Describes a scaling policy.", "type": "object", "properties": { "AutoScalingGroupName": { "allOf": [ { "$ref": "#/components/schemas/XmlStringMaxLen255" }, { "description": "The name of the Auto Scaling group." } ] }, "PolicyName": { "allOf": [ { "$ref": "#/components/schemas/XmlStringMaxLen255" }, { "description": "The name of the scaling policy." } ] }, "PolicyARN": { "allOf": [ { "$ref": "#/components/schemas/ResourceName" }, { "description": "The Amazon Resource Name (ARN) of the policy." } ] }, "PolicyType": { "allOf": [ { "$ref": "#/components/schemas/XmlStringMaxLen64" }, { "description": "
One of the following policy types:
TargetTrackingScaling
StepScaling
SimpleScaling (default)
PredictiveScaling
For more information, see Target tracking scaling policies and Step and simple scaling policies in the Amazon EC2 Auto Scaling User Guide.
" } ] }, "AdjustmentType": { "allOf": [ { "$ref": "#/components/schemas/XmlStringMaxLen255" }, { "description": "Specifies how the scaling adjustment is interpreted (for example, an absolute number or a percentage). The valid values areChangeInCapacity, ExactCapacity, and PercentChangeInCapacity."
}
]
},
"MinAdjustmentStep": {
"allOf": [
{
"$ref": "#/components/schemas/MinAdjustmentStep"
},
{
"description": "Available for backward compatibility. Use MinAdjustmentMagnitude instead."
}
]
},
"MinAdjustmentMagnitude": {
"allOf": [
{
"$ref": "#/components/schemas/MinAdjustmentMagnitude"
},
{
"description": "The minimum value to scale by when the adjustment type is PercentChangeInCapacity. "
}
]
},
"ScalingAdjustment": {
"allOf": [
{
"$ref": "#/components/schemas/PolicyIncrement"
},
{
"description": "The amount by which to scale, based on the specified adjustment type. A positive value adds to the current capacity while a negative number removes from the current capacity."
}
]
},
"Cooldown": {
"allOf": [
{
"$ref": "#/components/schemas/Cooldown"
},
{
"description": "The duration of the policy's cooldown period, in seconds."
}
]
},
"StepAdjustments": {
"allOf": [
{
"$ref": "#/components/schemas/StepAdjustments"
},
{
"description": "A set of adjustments that enable you to scale based on the size of the alarm breach."
}
]
},
"MetricAggregationType": {
"allOf": [
{
"$ref": "#/components/schemas/XmlStringMaxLen32"
},
{
"description": "The aggregation type for the CloudWatch metrics. The valid values are Minimum, Maximum, and Average."
}
]
},
"EstimatedInstanceWarmup": {
"allOf": [
{
"$ref": "#/components/schemas/EstimatedInstanceWarmup"
},
{
"description": "The estimated time, in seconds, until a newly launched instance can contribute to the CloudWatch metrics."
}
]
},
"Alarms": {
"allOf": [
{
"$ref": "#/components/schemas/Alarms"
},
{
"description": "The CloudWatch alarms related to the policy."
}
]
},
"TargetTrackingConfiguration": {
"allOf": [
{
"$ref": "#/components/schemas/TargetTrackingConfiguration"
},
{
"description": "A target tracking scaling policy."
}
]
},
"Enabled": {
"allOf": [
{
"$ref": "#/components/schemas/ScalingPolicyEnabled"
},
{
"description": "Indicates whether the policy is enabled (true) or disabled (false)."
}
]
},
"PredictiveScalingConfiguration": {
"allOf": [
{
"$ref": "#/components/schemas/PredictiveScalingConfiguration"
},
{
"description": "A predictive scaling policy."
}
]
}
}
}