Amazon EC2 Auto Scaling · JSON Structure

Ec2 Auto Scaling Put Scaling Policy Type Structure

PutScalingPolicyType schema from Auto Scaling

Type: object Properties: 14 Required: 2
Amazon Web ServicesAuto ScalingComputeEC2High AvailabilityScaling

PutScalingPolicyType is a JSON Structure definition published by Amazon EC2 Auto Scaling, describing 14 properties, of which 2 are required. It conforms to the https://json-structure.org/meta/core/v0/# meta-schema.

Properties

AutoScalingGroupName PolicyName PolicyType AdjustmentType MinAdjustmentStep MinAdjustmentMagnitude ScalingAdjustment Cooldown MetricAggregationType StepAdjustments EstimatedInstanceWarmup TargetTrackingConfiguration Enabled PredictiveScalingConfiguration

Meta-schema: https://json-structure.org/meta/core/v0/#

JSON Structure

Raw ↑
{
  "$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-put-scaling-policy-type-structure.json",
  "name": "PutScalingPolicyType",
  "description": "PutScalingPolicyType schema from Auto Scaling",
  "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 policy."
        }
      ]
    },
    "PolicyType": {
      "allOf": [
        {
          "$ref": "#/components/schemas/XmlStringMaxLen64"
        },
        {
          "description": "<p>One of the following policy types: </p> <ul> <li> <p> <code>TargetTrackingScaling</code> </p> </li> <li> <p> <code>StepScaling</code> </p> </li> <li> <p> <code>SimpleScaling</code> (default)</p> </li> <li> <p> <code>PredictiveScaling</code> </p> </li> </ul>"
        }
      ]
    },
    "AdjustmentType": {
      "allOf": [
        {
          "$ref": "#/components/schemas/XmlStringMaxLen255"
        },
        {
          "description": "<p>Specifies how the scaling adjustment is interpreted (for example, an absolute number or a percentage). The valid values are <code>ChangeInCapacity</code>, <code>ExactCapacity</code>, and <code>PercentChangeInCapacity</code>.</p> <p>Required if the policy type is <code>StepScaling</code> or <code>SimpleScaling</code>. For more information, see <a href=\"https://docs.aws.amazon.com/autoscaling/ec2/userguide/as-scaling-simple-step.html#as-scaling-adjustment\">Scaling adjustment types</a> in the <i>Amazon EC2 Auto Scaling User Guide</i>.</p>"
        }
      ]
    },
    "MinAdjustmentStep": {
      "allOf": [
        {
          "$ref": "#/components/schemas/MinAdjustmentStep"
        },
        {
          "description": "Available for backward compatibility. Use <code>MinAdjustmentMagnitude</code> instead."
        }
      ]
    },
    "MinAdjustmentMagnitude": {
      "allOf": [
        {
          "$ref": "#/components/schemas/MinAdjustmentMagnitude"
        },
        {
          "description": "<p>The minimum value to scale by when the adjustment type is <code>PercentChangeInCapacity</code>. For example, suppose that you create a step scaling policy to scale out an Auto Scaling group by 25 percent and you specify a <code>MinAdjustmentMagnitude</code> of 2. If the group has 4 instances and the scaling policy is performed, 25 percent of 4 is 1. However, because you specified a <code>MinAdjustmentMagnitude</code> of 2, Amazon EC2 Auto Scaling scales out the group by 2 instances.</p> <p>Valid only if the policy type is <code>StepScaling</code> or <code>SimpleScaling</code>. For more information, see <a href=\"https://docs.aws.amazon.com/autoscaling/ec2/userguide/as-scaling-simple-step.html#as-scaling-adjustment\">Scaling adjustment types</a> in the <i>Amazon EC2 Auto Scaling User Guide</i>.</p> <note> <p>Some Auto Scaling groups use instance weights. In this case, set the <code>MinAdjustmentMagnitude</code> to a value that is at least as large as your largest instance weight.</p> </note>"
        }
      ]
    },
    "ScalingAdjustment": {
      "allOf": [
        {
          "$ref": "#/components/schemas/PolicyIncrement"
        },
        {
          "description": "<p>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. For exact capacity, you must specify a positive value.</p> <p>Required if the policy type is <code>SimpleScaling</code>. (Not used with any other policy type.) </p>"
        }
      ]
    },
    "Cooldown": {
      "allOf": [
        {
          "$ref": "#/components/schemas/Cooldown"
        },
        {
          "description": "<p>A cooldown period, in seconds, that applies to a specific simple scaling policy. When a cooldown period is specified here, it overrides the default cooldown.</p> <p>Valid only if the policy type is <code>SimpleScaling</code>. For more information, see <a href=\"https://docs.aws.amazon.com/autoscaling/ec2/userguide/Cooldown.html\">Scaling cooldowns for Amazon EC2 Auto Scaling</a> in the <i>Amazon EC2 Auto Scaling User Guide</i>.</p> <p>Default: None</p>"
        }
      ]
    },
    "MetricAggregationType": {
      "allOf": [
        {
          "$ref": "#/components/schemas/XmlStringMaxLen32"
        },
        {
          "description": "<p>The aggregation type for the CloudWatch metrics. The valid values are <code>Minimum</code>, <code>Maximum</code>, and <code>Average</code>. If the aggregation type is null, the value is treated as <code>Average</code>.</p> <p>Valid only if the policy type is <code>StepScaling</code>.</p>"
        }
      ]
    },
    "StepAdjustments": {
      "allOf": [
        {
          "$ref": "#/components/schemas/StepAdjustments"
        },
        {
          "description": "<p>A set of adjustments that enable you to scale based on the size of the alarm breach.</p> <p>Required if the policy type is <code>StepScaling</code>. (Not used with any other policy type.) </p>"
        }
      ]
    },
    "EstimatedInstanceWarmup": {
      "allOf": [
        {
          "$ref": "#/components/schemas/EstimatedInstanceWarmup"
        },
        {
          "description": "<p> <i>Not needed if the default instance warmup is defined for the group.</i> </p> <p>The estimated time, in seconds, until a newly launched instance can contribute to the CloudWatch metrics. This warm-up period applies to instances launched due to a specific target tracking or step scaling policy. When a warm-up period is specified here, it overrides the default instance warmup.</p> <p>Valid only if the policy type is <code>TargetTrackingScaling</code> or <code>StepScaling</code>.</p> <note> <p>The default is to use the value for the default instance warmup defined for the group. If default instance warmup is null, then <code>EstimatedInstanceWarmup</code> falls back to the value of default cooldown.</p> </note>"
        }
      ]
    },
    "TargetTrackingConfiguration": {
      "allOf": [
        {
          "$ref": "#/components/schemas/TargetTrackingConfiguration"
        },
        {
          "description": "<p>A target tracking scaling policy. Provides support for predefined or custom metrics.</p> <p>The following predefined metrics are available:</p> <ul> <li> <p> <code>ASGAverageCPUUtilization</code> </p> </li> <li> <p> <code>ASGAverageNetworkIn</code> </p> </li> <li> <p> <code>ASGAverageNetworkOut</code> </p> </li> <li> <p> <code>ALBRequestCountPerTarget</code> </p> </li> </ul> <p>If you specify <code>ALBRequestCountPerTarget</code> for the metric, you must specify the <code>ResourceLabel</code> property with the <code>PredefinedMetricSpecification</code>.</p> <p>For more information, see <a href=\"https://docs.aws.amazon.com/autoscaling/ec2/APIReference/API_TargetTrackingConfiguration.html\">TargetTrackingConfiguration</a> in the <i>Amazon EC2 Auto Scaling API Reference</i>.</p> <p>Required if the policy type is <code>TargetTrackingScaling</code>.</p>"
        }
      ]
    },
    "Enabled": {
      "allOf": [
        {
          "$ref": "#/components/schemas/ScalingPolicyEnabled"
        },
        {
          "description": "Indicates whether the scaling policy is enabled or disabled. The default is enabled. For more information, see <a href=\"https://docs.aws.amazon.com/autoscaling/ec2/userguide/as-enable-disable-scaling-policy.html\">Disabling a scaling policy for an Auto Scaling group</a> in the <i>Amazon EC2 Auto Scaling User Guide</i>."
        }
      ]
    },
    "PredictiveScalingConfiguration": {
      "allOf": [
        {
          "$ref": "#/components/schemas/PredictiveScalingConfiguration"
        },
        {
          "description": "<p>A predictive scaling policy. Provides support for predefined and custom metrics.</p> <p>Predefined metrics include CPU utilization, network in/out, and the Application Load Balancer request count.</p> <p>For more information, see <a href=\"https://docs.aws.amazon.com/autoscaling/ec2/APIReference/API_PredictiveScalingConfiguration.html\">PredictiveScalingConfiguration</a> in the <i>Amazon EC2 Auto Scaling API Reference</i>.</p> <p>Required if the policy type is <code>PredictiveScaling</code>.</p>"
        }
      ]
    }
  },
  "required": [
    "AutoScalingGroupName",
    "PolicyName"
  ]
}