# BasicStepScalingPolicyProps

- Source: [`aws-applicationautoscaling/lib/step-scaling-policy.ts`](https://github.com/aws/aws-cdk/blob/v2.274.0/packages/aws-cdk-lib/aws-applicationautoscaling/lib/step-scaling-policy.ts#L10)
- Type last changed: v2.125.0 · 1 Feb 2024

## Example

```ts
declare const capacity: ScalableAttribute;
declare const cpuUtilization: cloudwatch.Metric;

capacity.scaleOnMetric('ScaleToCPU', {
  metric: cpuUtilization,
  scalingSteps: [
    { upper: 10, change: -1 },
    { lower: 50, change: +1 },
    { lower: 70, change: +3 },
  ],

  // Change this to AdjustmentType.PercentChangeInCapacity to interpret the
  // 'change' numbers before as percentages instead of capacity counts.
  adjustmentType: appscaling.AdjustmentType.CHANGE_IN_CAPACITY,
});
```

## Properties

- `adjustmentType`: [AdjustmentType](/cdk/api/v2/docs/aws-cdk-lib.aws_applicationautoscaling.AdjustmentType.html) = ChangeInCapacity — How the adjustment numbers inside 'intervals' are interpreted.

- `cooldown`: [Duration](/cdk/api/v2/docs/aws-cdk-lib.Duration.html) — Grace period after scaling activity.

  **Default:** No cooldown period

  Subsequent scale outs during the cooldown period are squashed so that only
  the biggest scale out happens.

  Subsequent scale ins during the cooldown period are ignored.

- `datapointsToAlarm`: number — The number of data points out of the evaluation periods that must be breaching to trigger a scaling action.

  **Default:** Same as `evaluationPeriods`

  Creates an "M out of N" alarm, where this property is the M and the value set for
  `evaluationPeriods` is the N value.

  Only has meaning if `evaluationPeriods != 1`.

- `evaluationPeriods`: number = 1 — How many evaluation periods of the metric to wait before triggering a scaling action.

  Raising this value can be used to smooth out the metric, at the expense
  of slower response times.

  If `datapointsToAlarm` is not set, then all data points in the evaluation period
  must meet the criteria to trigger a scaling action.

- `metric`: [IMetric](/cdk/api/v2/docs/aws-cdk-lib.aws_cloudwatch.IMetric.html) (required) — Metric to scale on.

- `metricAggregationType`: [MetricAggregationType](/cdk/api/v2/docs/aws-cdk-lib.aws_applicationautoscaling.MetricAggregationType.html) — Aggregation to apply to all data points over the evaluation periods.

  **Default:** The statistic from the metric if applicable (MIN, MAX, AVERAGE), otherwise AVERAGE.

  Only has meaning if `evaluationPeriods != 1`.

- `minAdjustmentMagnitude`: number — Minimum absolute number to adjust capacity with as result of percentage scaling.

  **Default:** No minimum scaling effect

  Only when using AdjustmentType = PercentChangeInCapacity, this number controls
  the minimum absolute effect size.

- `scalingSteps`: [ScalingInterval](/cdk/api/v2/docs/aws-cdk-lib.aws_applicationautoscaling.ScalingInterval.html)[] (required) — The intervals for scaling.

  Maps a range of metric values to a particular scaling behavior.

  Must be between 2 and 40 steps.
