1. Packages
  2. AWS
  3. API Docs
  4. autoscaling
  5. Policy
AWS v6.76.0 published on Tuesday, Apr 8, 2025 by Pulumi

aws.autoscaling.Policy

Explore with Pulumi AI

Provides an AutoScaling Scaling Policy resource.

NOTE: You may want to omit desired_capacity attribute from attached aws.autoscaling.Group when using autoscaling policies. It’s good practice to pick either manual or dynamic (policy-based) scaling.

Example Usage

import * as pulumi from "@pulumi/pulumi";
import * as aws from "@pulumi/aws";

const bar = new aws.autoscaling.Group("bar", {
    availabilityZones: ["us-east-1a"],
    name: "foobar3-test",
    maxSize: 5,
    minSize: 2,
    healthCheckGracePeriod: 300,
    healthCheckType: "ELB",
    forceDelete: true,
    launchConfiguration: foo.name,
});
const bat = new aws.autoscaling.Policy("bat", {
    name: "foobar3-test",
    scalingAdjustment: 4,
    adjustmentType: "ChangeInCapacity",
    cooldown: 300,
    autoscalingGroupName: bar.name,
});
Copy
import pulumi
import pulumi_aws as aws

bar = aws.autoscaling.Group("bar",
    availability_zones=["us-east-1a"],
    name="foobar3-test",
    max_size=5,
    min_size=2,
    health_check_grace_period=300,
    health_check_type="ELB",
    force_delete=True,
    launch_configuration=foo["name"])
bat = aws.autoscaling.Policy("bat",
    name="foobar3-test",
    scaling_adjustment=4,
    adjustment_type="ChangeInCapacity",
    cooldown=300,
    autoscaling_group_name=bar.name)
Copy
package main

import (
	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/autoscaling"
	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ec2"
	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		bar, err := autoscaling.NewGroup(ctx, "bar", &autoscaling.GroupArgs{
			AvailabilityZones: pulumi.StringArray{
				pulumi.String("us-east-1a"),
			},
			Name:                   pulumi.String("foobar3-test"),
			MaxSize:                pulumi.Int(5),
			MinSize:                pulumi.Int(2),
			HealthCheckGracePeriod: pulumi.Int(300),
			HealthCheckType:        pulumi.String("ELB"),
			ForceDelete:            pulumi.Bool(true),
			LaunchConfiguration:    pulumi.Any(foo.Name),
		})
		if err != nil {
			return err
		}
		_, err = autoscaling.NewPolicy(ctx, "bat", &autoscaling.PolicyArgs{
			Name:                 pulumi.String("foobar3-test"),
			ScalingAdjustment:    pulumi.Int(4),
			AdjustmentType:       pulumi.String("ChangeInCapacity"),
			Cooldown:             pulumi.Int(300),
			AutoscalingGroupName: bar.Name,
		})
		if err != nil {
			return err
		}
		return nil
	})
}
Copy
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Aws = Pulumi.Aws;

return await Deployment.RunAsync(() => 
{
    var bar = new Aws.AutoScaling.Group("bar", new()
    {
        AvailabilityZones = new[]
        {
            "us-east-1a",
        },
        Name = "foobar3-test",
        MaxSize = 5,
        MinSize = 2,
        HealthCheckGracePeriod = 300,
        HealthCheckType = "ELB",
        ForceDelete = true,
        LaunchConfiguration = foo.Name,
    });

    var bat = new Aws.AutoScaling.Policy("bat", new()
    {
        Name = "foobar3-test",
        ScalingAdjustment = 4,
        AdjustmentType = "ChangeInCapacity",
        Cooldown = 300,
        AutoscalingGroupName = bar.Name,
    });

});
Copy
package generated_program;

import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.aws.autoscaling.Group;
import com.pulumi.aws.autoscaling.GroupArgs;
import com.pulumi.aws.autoscaling.Policy;
import com.pulumi.aws.autoscaling.PolicyArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;

public class App {
    public static void main(String[] args) {
        Pulumi.run(App::stack);
    }

    public static void stack(Context ctx) {
        var bar = new Group("bar", GroupArgs.builder()
            .availabilityZones("us-east-1a")
            .name("foobar3-test")
            .maxSize(5)
            .minSize(2)
            .healthCheckGracePeriod(300)
            .healthCheckType("ELB")
            .forceDelete(true)
            .launchConfiguration(foo.name())
            .build());

        var bat = new Policy("bat", PolicyArgs.builder()
            .name("foobar3-test")
            .scalingAdjustment(4)
            .adjustmentType("ChangeInCapacity")
            .cooldown(300)
            .autoscalingGroupName(bar.name())
            .build());

    }
}
Copy
resources:
  bat:
    type: aws:autoscaling:Policy
    properties:
      name: foobar3-test
      scalingAdjustment: 4
      adjustmentType: ChangeInCapacity
      cooldown: 300
      autoscalingGroupName: ${bar.name}
  bar:
    type: aws:autoscaling:Group
    properties:
      availabilityZones:
        - us-east-1a
      name: foobar3-test
      maxSize: 5
      minSize: 2
      healthCheckGracePeriod: 300
      healthCheckType: ELB
      forceDelete: true
      launchConfiguration: ${foo.name}
Copy

Create target tracking scaling policy using metric math

import * as pulumi from "@pulumi/pulumi";
import * as aws from "@pulumi/aws";

const example = new aws.autoscaling.Policy("example", {
    autoscalingGroupName: "my-test-asg",
    name: "foo",
    policyType: "TargetTrackingScaling",
    targetTrackingConfiguration: {
        targetValue: 100,
        customizedMetricSpecification: {
            metrics: [
                {
                    label: "Get the queue size (the number of messages waiting to be processed)",
                    id: "m1",
                    metricStat: {
                        metric: {
                            namespace: "AWS/SQS",
                            metricName: "ApproximateNumberOfMessagesVisible",
                            dimensions: [{
                                name: "QueueName",
                                value: "my-queue",
                            }],
                        },
                        stat: "Sum",
                        period: 10,
                    },
                    returnData: false,
                },
                {
                    label: "Get the group size (the number of InService instances)",
                    id: "m2",
                    metricStat: {
                        metric: {
                            namespace: "AWS/AutoScaling",
                            metricName: "GroupInServiceInstances",
                            dimensions: [{
                                name: "AutoScalingGroupName",
                                value: "my-asg",
                            }],
                        },
                        stat: "Average",
                        period: 10,
                    },
                    returnData: false,
                },
                {
                    label: "Calculate the backlog per instance",
                    id: "e1",
                    expression: "m1 / m2",
                    returnData: true,
                },
            ],
        },
    },
});
Copy
import pulumi
import pulumi_aws as aws

example = aws.autoscaling.Policy("example",
    autoscaling_group_name="my-test-asg",
    name="foo",
    policy_type="TargetTrackingScaling",
    target_tracking_configuration={
        "target_value": 100,
        "customized_metric_specification": {
            "metrics": [
                {
                    "label": "Get the queue size (the number of messages waiting to be processed)",
                    "id": "m1",
                    "metric_stat": {
                        "metric": {
                            "namespace": "AWS/SQS",
                            "metric_name": "ApproximateNumberOfMessagesVisible",
                            "dimensions": [{
                                "name": "QueueName",
                                "value": "my-queue",
                            }],
                        },
                        "stat": "Sum",
                        "period": 10,
                    },
                    "return_data": False,
                },
                {
                    "label": "Get the group size (the number of InService instances)",
                    "id": "m2",
                    "metric_stat": {
                        "metric": {
                            "namespace": "AWS/AutoScaling",
                            "metric_name": "GroupInServiceInstances",
                            "dimensions": [{
                                "name": "AutoScalingGroupName",
                                "value": "my-asg",
                            }],
                        },
                        "stat": "Average",
                        "period": 10,
                    },
                    "return_data": False,
                },
                {
                    "label": "Calculate the backlog per instance",
                    "id": "e1",
                    "expression": "m1 / m2",
                    "return_data": True,
                },
            ],
        },
    })
Copy
package main

import (
	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/autoscaling"
	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := autoscaling.NewPolicy(ctx, "example", &autoscaling.PolicyArgs{
			AutoscalingGroupName: pulumi.String("my-test-asg"),
			Name:                 pulumi.String("foo"),
			PolicyType:           pulumi.String("TargetTrackingScaling"),
			TargetTrackingConfiguration: &autoscaling.PolicyTargetTrackingConfigurationArgs{
				TargetValue: pulumi.Float64(100),
				CustomizedMetricSpecification: &autoscaling.PolicyTargetTrackingConfigurationCustomizedMetricSpecificationArgs{
					Metrics: autoscaling.PolicyTargetTrackingConfigurationCustomizedMetricSpecificationMetricArray{
						&autoscaling.PolicyTargetTrackingConfigurationCustomizedMetricSpecificationMetricArgs{
							Label: pulumi.String("Get the queue size (the number of messages waiting to be processed)"),
							Id:    pulumi.String("m1"),
							MetricStat: &autoscaling.PolicyTargetTrackingConfigurationCustomizedMetricSpecificationMetricMetricStatArgs{
								Metric: &autoscaling.PolicyTargetTrackingConfigurationCustomizedMetricSpecificationMetricMetricStatMetricArgs{
									Namespace:  pulumi.String("AWS/SQS"),
									MetricName: pulumi.String("ApproximateNumberOfMessagesVisible"),
									Dimensions: autoscaling.PolicyTargetTrackingConfigurationCustomizedMetricSpecificationMetricMetricStatMetricDimensionArray{
										&autoscaling.PolicyTargetTrackingConfigurationCustomizedMetricSpecificationMetricMetricStatMetricDimensionArgs{
											Name:  pulumi.String("QueueName"),
											Value: pulumi.String("my-queue"),
										},
									},
								},
								Stat:   pulumi.String("Sum"),
								Period: pulumi.Int(10),
							},
							ReturnData: pulumi.Bool(false),
						},
						&autoscaling.PolicyTargetTrackingConfigurationCustomizedMetricSpecificationMetricArgs{
							Label: pulumi.String("Get the group size (the number of InService instances)"),
							Id:    pulumi.String("m2"),
							MetricStat: &autoscaling.PolicyTargetTrackingConfigurationCustomizedMetricSpecificationMetricMetricStatArgs{
								Metric: &autoscaling.PolicyTargetTrackingConfigurationCustomizedMetricSpecificationMetricMetricStatMetricArgs{
									Namespace:  pulumi.String("AWS/AutoScaling"),
									MetricName: pulumi.String("GroupInServiceInstances"),
									Dimensions: autoscaling.PolicyTargetTrackingConfigurationCustomizedMetricSpecificationMetricMetricStatMetricDimensionArray{
										&autoscaling.PolicyTargetTrackingConfigurationCustomizedMetricSpecificationMetricMetricStatMetricDimensionArgs{
											Name:  pulumi.String("AutoScalingGroupName"),
											Value: pulumi.String("my-asg"),
										},
									},
								},
								Stat:   pulumi.String("Average"),
								Period: pulumi.Int(10),
							},
							ReturnData: pulumi.Bool(false),
						},
						&autoscaling.PolicyTargetTrackingConfigurationCustomizedMetricSpecificationMetricArgs{
							Label:      pulumi.String("Calculate the backlog per instance"),
							Id:         pulumi.String("e1"),
							Expression: pulumi.String("m1 / m2"),
							ReturnData: pulumi.Bool(true),
						},
					},
				},
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}
Copy
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Aws = Pulumi.Aws;

return await Deployment.RunAsync(() => 
{
    var example = new Aws.AutoScaling.Policy("example", new()
    {
        AutoscalingGroupName = "my-test-asg",
        Name = "foo",
        PolicyType = "TargetTrackingScaling",
        TargetTrackingConfiguration = new Aws.AutoScaling.Inputs.PolicyTargetTrackingConfigurationArgs
        {
            TargetValue = 100,
            CustomizedMetricSpecification = new Aws.AutoScaling.Inputs.PolicyTargetTrackingConfigurationCustomizedMetricSpecificationArgs
            {
                Metrics = new[]
                {
                    new Aws.AutoScaling.Inputs.PolicyTargetTrackingConfigurationCustomizedMetricSpecificationMetricArgs
                    {
                        Label = "Get the queue size (the number of messages waiting to be processed)",
                        Id = "m1",
                        MetricStat = new Aws.AutoScaling.Inputs.PolicyTargetTrackingConfigurationCustomizedMetricSpecificationMetricMetricStatArgs
                        {
                            Metric = new Aws.AutoScaling.Inputs.PolicyTargetTrackingConfigurationCustomizedMetricSpecificationMetricMetricStatMetricArgs
                            {
                                Namespace = "AWS/SQS",
                                MetricName = "ApproximateNumberOfMessagesVisible",
                                Dimensions = new[]
                                {
                                    new Aws.AutoScaling.Inputs.PolicyTargetTrackingConfigurationCustomizedMetricSpecificationMetricMetricStatMetricDimensionArgs
                                    {
                                        Name = "QueueName",
                                        Value = "my-queue",
                                    },
                                },
                            },
                            Stat = "Sum",
                            Period = 10,
                        },
                        ReturnData = false,
                    },
                    new Aws.AutoScaling.Inputs.PolicyTargetTrackingConfigurationCustomizedMetricSpecificationMetricArgs
                    {
                        Label = "Get the group size (the number of InService instances)",
                        Id = "m2",
                        MetricStat = new Aws.AutoScaling.Inputs.PolicyTargetTrackingConfigurationCustomizedMetricSpecificationMetricMetricStatArgs
                        {
                            Metric = new Aws.AutoScaling.Inputs.PolicyTargetTrackingConfigurationCustomizedMetricSpecificationMetricMetricStatMetricArgs
                            {
                                Namespace = "AWS/AutoScaling",
                                MetricName = "GroupInServiceInstances",
                                Dimensions = new[]
                                {
                                    new Aws.AutoScaling.Inputs.PolicyTargetTrackingConfigurationCustomizedMetricSpecificationMetricMetricStatMetricDimensionArgs
                                    {
                                        Name = "AutoScalingGroupName",
                                        Value = "my-asg",
                                    },
                                },
                            },
                            Stat = "Average",
                            Period = 10,
                        },
                        ReturnData = false,
                    },
                    new Aws.AutoScaling.Inputs.PolicyTargetTrackingConfigurationCustomizedMetricSpecificationMetricArgs
                    {
                        Label = "Calculate the backlog per instance",
                        Id = "e1",
                        Expression = "m1 / m2",
                        ReturnData = true,
                    },
                },
            },
        },
    });

});
Copy
package generated_program;

import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.aws.autoscaling.Policy;
import com.pulumi.aws.autoscaling.PolicyArgs;
import com.pulumi.aws.autoscaling.inputs.PolicyTargetTrackingConfigurationArgs;
import com.pulumi.aws.autoscaling.inputs.PolicyTargetTrackingConfigurationCustomizedMetricSpecificationArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;

public class App {
    public static void main(String[] args) {
        Pulumi.run(App::stack);
    }

    public static void stack(Context ctx) {
        var example = new Policy("example", PolicyArgs.builder()
            .autoscalingGroupName("my-test-asg")
            .name("foo")
            .policyType("TargetTrackingScaling")
            .targetTrackingConfiguration(PolicyTargetTrackingConfigurationArgs.builder()
                .targetValue(100)
                .customizedMetricSpecification(PolicyTargetTrackingConfigurationCustomizedMetricSpecificationArgs.builder()
                    .metrics(                    
                        PolicyTargetTrackingConfigurationCustomizedMetricSpecificationMetricArgs.builder()
                            .label("Get the queue size (the number of messages waiting to be processed)")
                            .id("m1")
                            .metricStat(PolicyTargetTrackingConfigurationCustomizedMetricSpecificationMetricMetricStatArgs.builder()
                                .metric(PolicyTargetTrackingConfigurationCustomizedMetricSpecificationMetricMetricStatMetricArgs.builder()
                                    .namespace("AWS/SQS")
                                    .metricName("ApproximateNumberOfMessagesVisible")
                                    .dimensions(PolicyTargetTrackingConfigurationCustomizedMetricSpecificationMetricMetricStatMetricDimensionArgs.builder()
                                        .name("QueueName")
                                        .value("my-queue")
                                        .build())
                                    .build())
                                .stat("Sum")
                                .period(10)
                                .build())
                            .returnData(false)
                            .build(),
                        PolicyTargetTrackingConfigurationCustomizedMetricSpecificationMetricArgs.builder()
                            .label("Get the group size (the number of InService instances)")
                            .id("m2")
                            .metricStat(PolicyTargetTrackingConfigurationCustomizedMetricSpecificationMetricMetricStatArgs.builder()
                                .metric(PolicyTargetTrackingConfigurationCustomizedMetricSpecificationMetricMetricStatMetricArgs.builder()
                                    .namespace("AWS/AutoScaling")
                                    .metricName("GroupInServiceInstances")
                                    .dimensions(PolicyTargetTrackingConfigurationCustomizedMetricSpecificationMetricMetricStatMetricDimensionArgs.builder()
                                        .name("AutoScalingGroupName")
                                        .value("my-asg")
                                        .build())
                                    .build())
                                .stat("Average")
                                .period(10)
                                .build())
                            .returnData(false)
                            .build(),
                        PolicyTargetTrackingConfigurationCustomizedMetricSpecificationMetricArgs.builder()
                            .label("Calculate the backlog per instance")
                            .id("e1")
                            .expression("m1 / m2")
                            .returnData(true)
                            .build())
                    .build())
                .build())
            .build());

    }
}
Copy
resources:
  example:
    type: aws:autoscaling:Policy
    properties:
      autoscalingGroupName: my-test-asg
      name: foo
      policyType: TargetTrackingScaling
      targetTrackingConfiguration:
        targetValue: 100
        customizedMetricSpecification:
          metrics:
            - label: Get the queue size (the number of messages waiting to be processed)
              id: m1
              metricStat:
                metric:
                  namespace: AWS/SQS
                  metricName: ApproximateNumberOfMessagesVisible
                  dimensions:
                    - name: QueueName
                      value: my-queue
                stat: Sum
                period: 10
              returnData: false
            - label: Get the group size (the number of InService instances)
              id: m2
              metricStat:
                metric:
                  namespace: AWS/AutoScaling
                  metricName: GroupInServiceInstances
                  dimensions:
                    - name: AutoScalingGroupName
                      value: my-asg
                stat: Average
                period: 10
              returnData: false
            - label: Calculate the backlog per instance
              id: e1
              expression: m1 / m2
              returnData: true
Copy

Create predictive scaling policy using customized metrics

import * as pulumi from "@pulumi/pulumi";
import * as aws from "@pulumi/aws";

const example = new aws.autoscaling.Policy("example", {
    autoscalingGroupName: "my-test-asg",
    name: "foo",
    policyType: "PredictiveScaling",
    predictiveScalingConfiguration: {
        metricSpecification: {
            targetValue: 10,
            customizedLoadMetricSpecification: {
                metricDataQueries: [{
                    id: "load_sum",
                    expression: "SUM(SEARCH('{AWS/EC2,AutoScalingGroupName} MetricName=\"CPUUtilization\" my-test-asg', 'Sum', 3600))",
                }],
            },
            customizedCapacityMetricSpecification: {
                metricDataQueries: [{
                    id: "capacity_sum",
                    expression: "SUM(SEARCH('{AWS/AutoScaling,AutoScalingGroupName} MetricName=\"GroupInServiceIntances\" my-test-asg', 'Average', 300))",
                }],
            },
            customizedScalingMetricSpecification: {
                metricDataQueries: [
                    {
                        id: "capacity_sum",
                        expression: "SUM(SEARCH('{AWS/AutoScaling,AutoScalingGroupName} MetricName=\"GroupInServiceIntances\" my-test-asg', 'Average', 300))",
                        returnData: false,
                    },
                    {
                        id: "load_sum",
                        expression: "SUM(SEARCH('{AWS/EC2,AutoScalingGroupName} MetricName=\"CPUUtilization\" my-test-asg', 'Sum', 300))",
                        returnData: false,
                    },
                    {
                        id: "weighted_average",
                        expression: "load_sum / (capacity_sum * PERIOD(capacity_sum) / 60)",
                    },
                ],
            },
        },
    },
});
Copy
import pulumi
import pulumi_aws as aws

example = aws.autoscaling.Policy("example",
    autoscaling_group_name="my-test-asg",
    name="foo",
    policy_type="PredictiveScaling",
    predictive_scaling_configuration={
        "metric_specification": {
            "target_value": 10,
            "customized_load_metric_specification": {
                "metric_data_queries": [{
                    "id": "load_sum",
                    "expression": "SUM(SEARCH('{AWS/EC2,AutoScalingGroupName} MetricName=\"CPUUtilization\" my-test-asg', 'Sum', 3600))",
                }],
            },
            "customized_capacity_metric_specification": {
                "metric_data_queries": [{
                    "id": "capacity_sum",
                    "expression": "SUM(SEARCH('{AWS/AutoScaling,AutoScalingGroupName} MetricName=\"GroupInServiceIntances\" my-test-asg', 'Average', 300))",
                }],
            },
            "customized_scaling_metric_specification": {
                "metric_data_queries": [
                    {
                        "id": "capacity_sum",
                        "expression": "SUM(SEARCH('{AWS/AutoScaling,AutoScalingGroupName} MetricName=\"GroupInServiceIntances\" my-test-asg', 'Average', 300))",
                        "return_data": False,
                    },
                    {
                        "id": "load_sum",
                        "expression": "SUM(SEARCH('{AWS/EC2,AutoScalingGroupName} MetricName=\"CPUUtilization\" my-test-asg', 'Sum', 300))",
                        "return_data": False,
                    },
                    {
                        "id": "weighted_average",
                        "expression": "load_sum / (capacity_sum * PERIOD(capacity_sum) / 60)",
                    },
                ],
            },
        },
    })
Copy
package main

import (
	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/autoscaling"
	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := autoscaling.NewPolicy(ctx, "example", &autoscaling.PolicyArgs{
			AutoscalingGroupName: pulumi.String("my-test-asg"),
			Name:                 pulumi.String("foo"),
			PolicyType:           pulumi.String("PredictiveScaling"),
			PredictiveScalingConfiguration: &autoscaling.PolicyPredictiveScalingConfigurationArgs{
				MetricSpecification: &autoscaling.PolicyPredictiveScalingConfigurationMetricSpecificationArgs{
					TargetValue: pulumi.Float64(10),
					CustomizedLoadMetricSpecification: &autoscaling.PolicyPredictiveScalingConfigurationMetricSpecificationCustomizedLoadMetricSpecificationArgs{
						MetricDataQueries: autoscaling.PolicyPredictiveScalingConfigurationMetricSpecificationCustomizedLoadMetricSpecificationMetricDataQueryArray{
							&autoscaling.PolicyPredictiveScalingConfigurationMetricSpecificationCustomizedLoadMetricSpecificationMetricDataQueryArgs{
								Id:         pulumi.String("load_sum"),
								Expression: pulumi.String("SUM(SEARCH('{AWS/EC2,AutoScalingGroupName} MetricName=\"CPUUtilization\" my-test-asg', 'Sum', 3600))"),
							},
						},
					},
					CustomizedCapacityMetricSpecification: &autoscaling.PolicyPredictiveScalingConfigurationMetricSpecificationCustomizedCapacityMetricSpecificationArgs{
						MetricDataQueries: autoscaling.PolicyPredictiveScalingConfigurationMetricSpecificationCustomizedCapacityMetricSpecificationMetricDataQueryArray{
							&autoscaling.PolicyPredictiveScalingConfigurationMetricSpecificationCustomizedCapacityMetricSpecificationMetricDataQueryArgs{
								Id:         pulumi.String("capacity_sum"),
								Expression: pulumi.String("SUM(SEARCH('{AWS/AutoScaling,AutoScalingGroupName} MetricName=\"GroupInServiceIntances\" my-test-asg', 'Average', 300))"),
							},
						},
					},
					CustomizedScalingMetricSpecification: &autoscaling.PolicyPredictiveScalingConfigurationMetricSpecificationCustomizedScalingMetricSpecificationArgs{
						MetricDataQueries: autoscaling.PolicyPredictiveScalingConfigurationMetricSpecificationCustomizedScalingMetricSpecificationMetricDataQueryArray{
							&autoscaling.PolicyPredictiveScalingConfigurationMetricSpecificationCustomizedScalingMetricSpecificationMetricDataQueryArgs{
								Id:         pulumi.String("capacity_sum"),
								Expression: pulumi.String("SUM(SEARCH('{AWS/AutoScaling,AutoScalingGroupName} MetricName=\"GroupInServiceIntances\" my-test-asg', 'Average', 300))"),
								ReturnData: pulumi.Bool(false),
							},
							&autoscaling.PolicyPredictiveScalingConfigurationMetricSpecificationCustomizedScalingMetricSpecificationMetricDataQueryArgs{
								Id:         pulumi.String("load_sum"),
								Expression: pulumi.String("SUM(SEARCH('{AWS/EC2,AutoScalingGroupName} MetricName=\"CPUUtilization\" my-test-asg', 'Sum', 300))"),
								ReturnData: pulumi.Bool(false),
							},
							&autoscaling.PolicyPredictiveScalingConfigurationMetricSpecificationCustomizedScalingMetricSpecificationMetricDataQueryArgs{
								Id:         pulumi.String("weighted_average"),
								Expression: pulumi.String("load_sum / (capacity_sum * PERIOD(capacity_sum) / 60)"),
							},
						},
					},
				},
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}
Copy
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Aws = Pulumi.Aws;

return await Deployment.RunAsync(() => 
{
    var example = new Aws.AutoScaling.Policy("example", new()
    {
        AutoscalingGroupName = "my-test-asg",
        Name = "foo",
        PolicyType = "PredictiveScaling",
        PredictiveScalingConfiguration = new Aws.AutoScaling.Inputs.PolicyPredictiveScalingConfigurationArgs
        {
            MetricSpecification = new Aws.AutoScaling.Inputs.PolicyPredictiveScalingConfigurationMetricSpecificationArgs
            {
                TargetValue = 10,
                CustomizedLoadMetricSpecification = new Aws.AutoScaling.Inputs.PolicyPredictiveScalingConfigurationMetricSpecificationCustomizedLoadMetricSpecificationArgs
                {
                    MetricDataQueries = new[]
                    {
                        new Aws.AutoScaling.Inputs.PolicyPredictiveScalingConfigurationMetricSpecificationCustomizedLoadMetricSpecificationMetricDataQueryArgs
                        {
                            Id = "load_sum",
                            Expression = "SUM(SEARCH('{AWS/EC2,AutoScalingGroupName} MetricName=\"CPUUtilization\" my-test-asg', 'Sum', 3600))",
                        },
                    },
                },
                CustomizedCapacityMetricSpecification = new Aws.AutoScaling.Inputs.PolicyPredictiveScalingConfigurationMetricSpecificationCustomizedCapacityMetricSpecificationArgs
                {
                    MetricDataQueries = new[]
                    {
                        new Aws.AutoScaling.Inputs.PolicyPredictiveScalingConfigurationMetricSpecificationCustomizedCapacityMetricSpecificationMetricDataQueryArgs
                        {
                            Id = "capacity_sum",
                            Expression = "SUM(SEARCH('{AWS/AutoScaling,AutoScalingGroupName} MetricName=\"GroupInServiceIntances\" my-test-asg', 'Average', 300))",
                        },
                    },
                },
                CustomizedScalingMetricSpecification = new Aws.AutoScaling.Inputs.PolicyPredictiveScalingConfigurationMetricSpecificationCustomizedScalingMetricSpecificationArgs
                {
                    MetricDataQueries = new[]
                    {
                        new Aws.AutoScaling.Inputs.PolicyPredictiveScalingConfigurationMetricSpecificationCustomizedScalingMetricSpecificationMetricDataQueryArgs
                        {
                            Id = "capacity_sum",
                            Expression = "SUM(SEARCH('{AWS/AutoScaling,AutoScalingGroupName} MetricName=\"GroupInServiceIntances\" my-test-asg', 'Average', 300))",
                            ReturnData = false,
                        },
                        new Aws.AutoScaling.Inputs.PolicyPredictiveScalingConfigurationMetricSpecificationCustomizedScalingMetricSpecificationMetricDataQueryArgs
                        {
                            Id = "load_sum",
                            Expression = "SUM(SEARCH('{AWS/EC2,AutoScalingGroupName} MetricName=\"CPUUtilization\" my-test-asg', 'Sum', 300))",
                            ReturnData = false,
                        },
                        new Aws.AutoScaling.Inputs.PolicyPredictiveScalingConfigurationMetricSpecificationCustomizedScalingMetricSpecificationMetricDataQueryArgs
                        {
                            Id = "weighted_average",
                            Expression = "load_sum / (capacity_sum * PERIOD(capacity_sum) / 60)",
                        },
                    },
                },
            },
        },
    });

});
Copy
package generated_program;

import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.aws.autoscaling.Policy;
import com.pulumi.aws.autoscaling.PolicyArgs;
import com.pulumi.aws.autoscaling.inputs.PolicyPredictiveScalingConfigurationArgs;
import com.pulumi.aws.autoscaling.inputs.PolicyPredictiveScalingConfigurationMetricSpecificationArgs;
import com.pulumi.aws.autoscaling.inputs.PolicyPredictiveScalingConfigurationMetricSpecificationCustomizedLoadMetricSpecificationArgs;
import com.pulumi.aws.autoscaling.inputs.PolicyPredictiveScalingConfigurationMetricSpecificationCustomizedCapacityMetricSpecificationArgs;
import com.pulumi.aws.autoscaling.inputs.PolicyPredictiveScalingConfigurationMetricSpecificationCustomizedScalingMetricSpecificationArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;

public class App {
    public static void main(String[] args) {
        Pulumi.run(App::stack);
    }

    public static void stack(Context ctx) {
        var example = new Policy("example", PolicyArgs.builder()
            .autoscalingGroupName("my-test-asg")
            .name("foo")
            .policyType("PredictiveScaling")
            .predictiveScalingConfiguration(PolicyPredictiveScalingConfigurationArgs.builder()
                .metricSpecification(PolicyPredictiveScalingConfigurationMetricSpecificationArgs.builder()
                    .targetValue(10)
                    .customizedLoadMetricSpecification(PolicyPredictiveScalingConfigurationMetricSpecificationCustomizedLoadMetricSpecificationArgs.builder()
                        .metricDataQueries(PolicyPredictiveScalingConfigurationMetricSpecificationCustomizedLoadMetricSpecificationMetricDataQueryArgs.builder()
                            .id("load_sum")
                            .expression("SUM(SEARCH('{AWS/EC2,AutoScalingGroupName} MetricName=\"CPUUtilization\" my-test-asg', 'Sum', 3600))")
                            .build())
                        .build())
                    .customizedCapacityMetricSpecification(PolicyPredictiveScalingConfigurationMetricSpecificationCustomizedCapacityMetricSpecificationArgs.builder()
                        .metricDataQueries(PolicyPredictiveScalingConfigurationMetricSpecificationCustomizedCapacityMetricSpecificationMetricDataQueryArgs.builder()
                            .id("capacity_sum")
                            .expression("SUM(SEARCH('{AWS/AutoScaling,AutoScalingGroupName} MetricName=\"GroupInServiceIntances\" my-test-asg', 'Average', 300))")
                            .build())
                        .build())
                    .customizedScalingMetricSpecification(PolicyPredictiveScalingConfigurationMetricSpecificationCustomizedScalingMetricSpecificationArgs.builder()
                        .metricDataQueries(                        
                            PolicyPredictiveScalingConfigurationMetricSpecificationCustomizedScalingMetricSpecificationMetricDataQueryArgs.builder()
                                .id("capacity_sum")
                                .expression("SUM(SEARCH('{AWS/AutoScaling,AutoScalingGroupName} MetricName=\"GroupInServiceIntances\" my-test-asg', 'Average', 300))")
                                .returnData(false)
                                .build(),
                            PolicyPredictiveScalingConfigurationMetricSpecificationCustomizedScalingMetricSpecificationMetricDataQueryArgs.builder()
                                .id("load_sum")
                                .expression("SUM(SEARCH('{AWS/EC2,AutoScalingGroupName} MetricName=\"CPUUtilization\" my-test-asg', 'Sum', 300))")
                                .returnData(false)
                                .build(),
                            PolicyPredictiveScalingConfigurationMetricSpecificationCustomizedScalingMetricSpecificationMetricDataQueryArgs.builder()
                                .id("weighted_average")
                                .expression("load_sum / (capacity_sum * PERIOD(capacity_sum) / 60)")
                                .build())
                        .build())
                    .build())
                .build())
            .build());

    }
}
Copy
resources:
  example:
    type: aws:autoscaling:Policy
    properties:
      autoscalingGroupName: my-test-asg
      name: foo
      policyType: PredictiveScaling
      predictiveScalingConfiguration:
        metricSpecification:
          targetValue: 10
          customizedLoadMetricSpecification:
            metricDataQueries:
              - id: load_sum
                expression: SUM(SEARCH('{AWS/EC2,AutoScalingGroupName} MetricName="CPUUtilization" my-test-asg', 'Sum', 3600))
          customizedCapacityMetricSpecification:
            metricDataQueries:
              - id: capacity_sum
                expression: SUM(SEARCH('{AWS/AutoScaling,AutoScalingGroupName} MetricName="GroupInServiceIntances" my-test-asg', 'Average', 300))
          customizedScalingMetricSpecification:
            metricDataQueries:
              - id: capacity_sum
                expression: SUM(SEARCH('{AWS/AutoScaling,AutoScalingGroupName} MetricName="GroupInServiceIntances" my-test-asg', 'Average', 300))
                returnData: false
              - id: load_sum
                expression: SUM(SEARCH('{AWS/EC2,AutoScalingGroupName} MetricName="CPUUtilization" my-test-asg', 'Sum', 300))
                returnData: false
              - id: weighted_average
                expression: load_sum / (capacity_sum * PERIOD(capacity_sum) / 60)
Copy

Create predictive scaling policy using customized scaling and predefined load metric

import * as pulumi from "@pulumi/pulumi";
import * as aws from "@pulumi/aws";

const example = new aws.autoscaling.Policy("example", {
    autoscalingGroupName: "my-test-asg",
    name: "foo",
    policyType: "PredictiveScaling",
    predictiveScalingConfiguration: {
        metricSpecification: {
            targetValue: 10,
            predefinedLoadMetricSpecification: {
                predefinedMetricType: "ASGTotalCPUUtilization",
                resourceLabel: "app/my-alb/778d41231b141a0f/targetgroup/my-alb-target-group/943f017f100becff",
            },
            customizedScalingMetricSpecification: {
                metricDataQueries: [{
                    id: "scaling",
                    metricStat: {
                        metric: {
                            metricName: "CPUUtilization",
                            namespace: "AWS/EC2",
                            dimensions: [{
                                name: "AutoScalingGroupName",
                                value: "my-test-asg",
                            }],
                        },
                        stat: "Average",
                    },
                }],
            },
        },
    },
});
Copy
import pulumi
import pulumi_aws as aws

example = aws.autoscaling.Policy("example",
    autoscaling_group_name="my-test-asg",
    name="foo",
    policy_type="PredictiveScaling",
    predictive_scaling_configuration={
        "metric_specification": {
            "target_value": 10,
            "predefined_load_metric_specification": {
                "predefined_metric_type": "ASGTotalCPUUtilization",
                "resource_label": "app/my-alb/778d41231b141a0f/targetgroup/my-alb-target-group/943f017f100becff",
            },
            "customized_scaling_metric_specification": {
                "metric_data_queries": [{
                    "id": "scaling",
                    "metric_stat": {
                        "metric": {
                            "metric_name": "CPUUtilization",
                            "namespace": "AWS/EC2",
                            "dimensions": [{
                                "name": "AutoScalingGroupName",
                                "value": "my-test-asg",
                            }],
                        },
                        "stat": "Average",
                    },
                }],
            },
        },
    })
Copy
package main

import (
	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/autoscaling"
	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := autoscaling.NewPolicy(ctx, "example", &autoscaling.PolicyArgs{
			AutoscalingGroupName: pulumi.String("my-test-asg"),
			Name:                 pulumi.String("foo"),
			PolicyType:           pulumi.String("PredictiveScaling"),
			PredictiveScalingConfiguration: &autoscaling.PolicyPredictiveScalingConfigurationArgs{
				MetricSpecification: &autoscaling.PolicyPredictiveScalingConfigurationMetricSpecificationArgs{
					TargetValue: pulumi.Float64(10),
					PredefinedLoadMetricSpecification: &autoscaling.PolicyPredictiveScalingConfigurationMetricSpecificationPredefinedLoadMetricSpecificationArgs{
						PredefinedMetricType: pulumi.String("ASGTotalCPUUtilization"),
						ResourceLabel:        pulumi.String("app/my-alb/778d41231b141a0f/targetgroup/my-alb-target-group/943f017f100becff"),
					},
					CustomizedScalingMetricSpecification: &autoscaling.PolicyPredictiveScalingConfigurationMetricSpecificationCustomizedScalingMetricSpecificationArgs{
						MetricDataQueries: autoscaling.PolicyPredictiveScalingConfigurationMetricSpecificationCustomizedScalingMetricSpecificationMetricDataQueryArray{
							&autoscaling.PolicyPredictiveScalingConfigurationMetricSpecificationCustomizedScalingMetricSpecificationMetricDataQueryArgs{
								Id: pulumi.String("scaling"),
								MetricStat: &autoscaling.PolicyPredictiveScalingConfigurationMetricSpecificationCustomizedScalingMetricSpecificationMetricDataQueryMetricStatArgs{
									Metric: &autoscaling.PolicyPredictiveScalingConfigurationMetricSpecificationCustomizedScalingMetricSpecificationMetricDataQueryMetricStatMetricArgs{
										MetricName: pulumi.String("CPUUtilization"),
										Namespace:  pulumi.String("AWS/EC2"),
										Dimensions: autoscaling.PolicyPredictiveScalingConfigurationMetricSpecificationCustomizedScalingMetricSpecificationMetricDataQueryMetricStatMetricDimensionArray{
											&autoscaling.PolicyPredictiveScalingConfigurationMetricSpecificationCustomizedScalingMetricSpecificationMetricDataQueryMetricStatMetricDimensionArgs{
												Name:  pulumi.String("AutoScalingGroupName"),
												Value: pulumi.String("my-test-asg"),
											},
										},
									},
									Stat: pulumi.String("Average"),
								},
							},
						},
					},
				},
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}
Copy
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Aws = Pulumi.Aws;

return await Deployment.RunAsync(() => 
{
    var example = new Aws.AutoScaling.Policy("example", new()
    {
        AutoscalingGroupName = "my-test-asg",
        Name = "foo",
        PolicyType = "PredictiveScaling",
        PredictiveScalingConfiguration = new Aws.AutoScaling.Inputs.PolicyPredictiveScalingConfigurationArgs
        {
            MetricSpecification = new Aws.AutoScaling.Inputs.PolicyPredictiveScalingConfigurationMetricSpecificationArgs
            {
                TargetValue = 10,
                PredefinedLoadMetricSpecification = new Aws.AutoScaling.Inputs.PolicyPredictiveScalingConfigurationMetricSpecificationPredefinedLoadMetricSpecificationArgs
                {
                    PredefinedMetricType = "ASGTotalCPUUtilization",
                    ResourceLabel = "app/my-alb/778d41231b141a0f/targetgroup/my-alb-target-group/943f017f100becff",
                },
                CustomizedScalingMetricSpecification = new Aws.AutoScaling.Inputs.PolicyPredictiveScalingConfigurationMetricSpecificationCustomizedScalingMetricSpecificationArgs
                {
                    MetricDataQueries = new[]
                    {
                        new Aws.AutoScaling.Inputs.PolicyPredictiveScalingConfigurationMetricSpecificationCustomizedScalingMetricSpecificationMetricDataQueryArgs
                        {
                            Id = "scaling",
                            MetricStat = new Aws.AutoScaling.Inputs.PolicyPredictiveScalingConfigurationMetricSpecificationCustomizedScalingMetricSpecificationMetricDataQueryMetricStatArgs
                            {
                                Metric = new Aws.AutoScaling.Inputs.PolicyPredictiveScalingConfigurationMetricSpecificationCustomizedScalingMetricSpecificationMetricDataQueryMetricStatMetricArgs
                                {
                                    MetricName = "CPUUtilization",
                                    Namespace = "AWS/EC2",
                                    Dimensions = new[]
                                    {
                                        new Aws.AutoScaling.Inputs.PolicyPredictiveScalingConfigurationMetricSpecificationCustomizedScalingMetricSpecificationMetricDataQueryMetricStatMetricDimensionArgs
                                        {
                                            Name = "AutoScalingGroupName",
                                            Value = "my-test-asg",
                                        },
                                    },
                                },
                                Stat = "Average",
                            },
                        },
                    },
                },
            },
        },
    });

});
Copy
package generated_program;

import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.aws.autoscaling.Policy;
import com.pulumi.aws.autoscaling.PolicyArgs;
import com.pulumi.aws.autoscaling.inputs.PolicyPredictiveScalingConfigurationArgs;
import com.pulumi.aws.autoscaling.inputs.PolicyPredictiveScalingConfigurationMetricSpecificationArgs;
import com.pulumi.aws.autoscaling.inputs.PolicyPredictiveScalingConfigurationMetricSpecificationPredefinedLoadMetricSpecificationArgs;
import com.pulumi.aws.autoscaling.inputs.PolicyPredictiveScalingConfigurationMetricSpecificationCustomizedScalingMetricSpecificationArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;

public class App {
    public static void main(String[] args) {
        Pulumi.run(App::stack);
    }

    public static void stack(Context ctx) {
        var example = new Policy("example", PolicyArgs.builder()
            .autoscalingGroupName("my-test-asg")
            .name("foo")
            .policyType("PredictiveScaling")
            .predictiveScalingConfiguration(PolicyPredictiveScalingConfigurationArgs.builder()
                .metricSpecification(PolicyPredictiveScalingConfigurationMetricSpecificationArgs.builder()
                    .targetValue(10)
                    .predefinedLoadMetricSpecification(PolicyPredictiveScalingConfigurationMetricSpecificationPredefinedLoadMetricSpecificationArgs.builder()
                        .predefinedMetricType("ASGTotalCPUUtilization")
                        .resourceLabel("app/my-alb/778d41231b141a0f/targetgroup/my-alb-target-group/943f017f100becff")
                        .build())
                    .customizedScalingMetricSpecification(PolicyPredictiveScalingConfigurationMetricSpecificationCustomizedScalingMetricSpecificationArgs.builder()
                        .metricDataQueries(PolicyPredictiveScalingConfigurationMetricSpecificationCustomizedScalingMetricSpecificationMetricDataQueryArgs.builder()
                            .id("scaling")
                            .metricStat(PolicyPredictiveScalingConfigurationMetricSpecificationCustomizedScalingMetricSpecificationMetricDataQueryMetricStatArgs.builder()
                                .metric(PolicyPredictiveScalingConfigurationMetricSpecificationCustomizedScalingMetricSpecificationMetricDataQueryMetricStatMetricArgs.builder()
                                    .metricName("CPUUtilization")
                                    .namespace("AWS/EC2")
                                    .dimensions(PolicyPredictiveScalingConfigurationMetricSpecificationCustomizedScalingMetricSpecificationMetricDataQueryMetricStatMetricDimensionArgs.builder()
                                        .name("AutoScalingGroupName")
                                        .value("my-test-asg")
                                        .build())
                                    .build())
                                .stat("Average")
                                .build())
                            .build())
                        .build())
                    .build())
                .build())
            .build());

    }
}
Copy
resources:
  example:
    type: aws:autoscaling:Policy
    properties:
      autoscalingGroupName: my-test-asg
      name: foo
      policyType: PredictiveScaling
      predictiveScalingConfiguration:
        metricSpecification:
          targetValue: 10
          predefinedLoadMetricSpecification:
            predefinedMetricType: ASGTotalCPUUtilization
            resourceLabel: app/my-alb/778d41231b141a0f/targetgroup/my-alb-target-group/943f017f100becff
          customizedScalingMetricSpecification:
            metricDataQueries:
              - id: scaling
                metricStat:
                  metric:
                    metricName: CPUUtilization
                    namespace: AWS/EC2
                    dimensions:
                      - name: AutoScalingGroupName
                        value: my-test-asg
                  stat: Average
Copy

Create Policy Resource

Resources are created with functions called constructors. To learn more about declaring and configuring resources, see Resources.

Constructor syntax

new Policy(name: string, args: PolicyArgs, opts?: CustomResourceOptions);
@overload
def Policy(resource_name: str,
           args: PolicyArgs,
           opts: Optional[ResourceOptions] = None)

@overload
def Policy(resource_name: str,
           opts: Optional[ResourceOptions] = None,
           autoscaling_group_name: Optional[str] = None,
           min_adjustment_magnitude: Optional[int] = None,
           cooldown: Optional[int] = None,
           enabled: Optional[bool] = None,
           estimated_instance_warmup: Optional[int] = None,
           metric_aggregation_type: Optional[str] = None,
           adjustment_type: Optional[str] = None,
           name: Optional[str] = None,
           policy_type: Optional[str] = None,
           predictive_scaling_configuration: Optional[PolicyPredictiveScalingConfigurationArgs] = None,
           scaling_adjustment: Optional[int] = None,
           step_adjustments: Optional[Sequence[PolicyStepAdjustmentArgs]] = None,
           target_tracking_configuration: Optional[PolicyTargetTrackingConfigurationArgs] = None)
func NewPolicy(ctx *Context, name string, args PolicyArgs, opts ...ResourceOption) (*Policy, error)
public Policy(string name, PolicyArgs args, CustomResourceOptions? opts = null)
public Policy(String name, PolicyArgs args)
public Policy(String name, PolicyArgs args, CustomResourceOptions options)
type: aws:autoscaling:Policy
properties: # The arguments to resource properties.
options: # Bag of options to control resource's behavior.

Parameters

name This property is required. string
The unique name of the resource.
args This property is required. PolicyArgs
The arguments to resource properties.
opts CustomResourceOptions
Bag of options to control resource's behavior.
resource_name This property is required. str
The unique name of the resource.
args This property is required. PolicyArgs
The arguments to resource properties.
opts ResourceOptions
Bag of options to control resource's behavior.
ctx Context
Context object for the current deployment.
name This property is required. string
The unique name of the resource.
args This property is required. PolicyArgs
The arguments to resource properties.
opts ResourceOption
Bag of options to control resource's behavior.
name This property is required. string
The unique name of the resource.
args This property is required. PolicyArgs
The arguments to resource properties.
opts CustomResourceOptions
Bag of options to control resource's behavior.
name This property is required. String
The unique name of the resource.
args This property is required. PolicyArgs
The arguments to resource properties.
options CustomResourceOptions
Bag of options to control resource's behavior.

Constructor example

The following reference example uses placeholder values for all input properties.

var examplepolicyResourceResourceFromAutoscalingpolicy = new Aws.AutoScaling.Policy("examplepolicyResourceResourceFromAutoscalingpolicy", new()
{
    AutoscalingGroupName = "string",
    MinAdjustmentMagnitude = 0,
    Cooldown = 0,
    Enabled = false,
    EstimatedInstanceWarmup = 0,
    MetricAggregationType = "string",
    AdjustmentType = "string",
    Name = "string",
    PolicyType = "string",
    PredictiveScalingConfiguration = new Aws.AutoScaling.Inputs.PolicyPredictiveScalingConfigurationArgs
    {
        MetricSpecification = new Aws.AutoScaling.Inputs.PolicyPredictiveScalingConfigurationMetricSpecificationArgs
        {
            TargetValue = 0,
            CustomizedCapacityMetricSpecification = new Aws.AutoScaling.Inputs.PolicyPredictiveScalingConfigurationMetricSpecificationCustomizedCapacityMetricSpecificationArgs
            {
                MetricDataQueries = new[]
                {
                    new Aws.AutoScaling.Inputs.PolicyPredictiveScalingConfigurationMetricSpecificationCustomizedCapacityMetricSpecificationMetricDataQueryArgs
                    {
                        Id = "string",
                        Expression = "string",
                        Label = "string",
                        MetricStat = new Aws.AutoScaling.Inputs.PolicyPredictiveScalingConfigurationMetricSpecificationCustomizedCapacityMetricSpecificationMetricDataQueryMetricStatArgs
                        {
                            Metric = new Aws.AutoScaling.Inputs.PolicyPredictiveScalingConfigurationMetricSpecificationCustomizedCapacityMetricSpecificationMetricDataQueryMetricStatMetricArgs
                            {
                                MetricName = "string",
                                Namespace = "string",
                                Dimensions = new[]
                                {
                                    new Aws.AutoScaling.Inputs.PolicyPredictiveScalingConfigurationMetricSpecificationCustomizedCapacityMetricSpecificationMetricDataQueryMetricStatMetricDimensionArgs
                                    {
                                        Name = "string",
                                        Value = "string",
                                    },
                                },
                            },
                            Stat = "string",
                            Unit = "string",
                        },
                        ReturnData = false,
                    },
                },
            },
            CustomizedLoadMetricSpecification = new Aws.AutoScaling.Inputs.PolicyPredictiveScalingConfigurationMetricSpecificationCustomizedLoadMetricSpecificationArgs
            {
                MetricDataQueries = new[]
                {
                    new Aws.AutoScaling.Inputs.PolicyPredictiveScalingConfigurationMetricSpecificationCustomizedLoadMetricSpecificationMetricDataQueryArgs
                    {
                        Id = "string",
                        Expression = "string",
                        Label = "string",
                        MetricStat = new Aws.AutoScaling.Inputs.PolicyPredictiveScalingConfigurationMetricSpecificationCustomizedLoadMetricSpecificationMetricDataQueryMetricStatArgs
                        {
                            Metric = new Aws.AutoScaling.Inputs.PolicyPredictiveScalingConfigurationMetricSpecificationCustomizedLoadMetricSpecificationMetricDataQueryMetricStatMetricArgs
                            {
                                MetricName = "string",
                                Namespace = "string",
                                Dimensions = new[]
                                {
                                    new Aws.AutoScaling.Inputs.PolicyPredictiveScalingConfigurationMetricSpecificationCustomizedLoadMetricSpecificationMetricDataQueryMetricStatMetricDimensionArgs
                                    {
                                        Name = "string",
                                        Value = "string",
                                    },
                                },
                            },
                            Stat = "string",
                            Unit = "string",
                        },
                        ReturnData = false,
                    },
                },
            },
            CustomizedScalingMetricSpecification = new Aws.AutoScaling.Inputs.PolicyPredictiveScalingConfigurationMetricSpecificationCustomizedScalingMetricSpecificationArgs
            {
                MetricDataQueries = new[]
                {
                    new Aws.AutoScaling.Inputs.PolicyPredictiveScalingConfigurationMetricSpecificationCustomizedScalingMetricSpecificationMetricDataQueryArgs
                    {
                        Id = "string",
                        Expression = "string",
                        Label = "string",
                        MetricStat = new Aws.AutoScaling.Inputs.PolicyPredictiveScalingConfigurationMetricSpecificationCustomizedScalingMetricSpecificationMetricDataQueryMetricStatArgs
                        {
                            Metric = new Aws.AutoScaling.Inputs.PolicyPredictiveScalingConfigurationMetricSpecificationCustomizedScalingMetricSpecificationMetricDataQueryMetricStatMetricArgs
                            {
                                MetricName = "string",
                                Namespace = "string",
                                Dimensions = new[]
                                {
                                    new Aws.AutoScaling.Inputs.PolicyPredictiveScalingConfigurationMetricSpecificationCustomizedScalingMetricSpecificationMetricDataQueryMetricStatMetricDimensionArgs
                                    {
                                        Name = "string",
                                        Value = "string",
                                    },
                                },
                            },
                            Stat = "string",
                            Unit = "string",
                        },
                        ReturnData = false,
                    },
                },
            },
            PredefinedLoadMetricSpecification = new Aws.AutoScaling.Inputs.PolicyPredictiveScalingConfigurationMetricSpecificationPredefinedLoadMetricSpecificationArgs
            {
                PredefinedMetricType = "string",
                ResourceLabel = "string",
            },
            PredefinedMetricPairSpecification = new Aws.AutoScaling.Inputs.PolicyPredictiveScalingConfigurationMetricSpecificationPredefinedMetricPairSpecificationArgs
            {
                PredefinedMetricType = "string",
                ResourceLabel = "string",
            },
            PredefinedScalingMetricSpecification = new Aws.AutoScaling.Inputs.PolicyPredictiveScalingConfigurationMetricSpecificationPredefinedScalingMetricSpecificationArgs
            {
                PredefinedMetricType = "string",
                ResourceLabel = "string",
            },
        },
        MaxCapacityBreachBehavior = "string",
        MaxCapacityBuffer = "string",
        Mode = "string",
        SchedulingBufferTime = "string",
    },
    ScalingAdjustment = 0,
    StepAdjustments = new[]
    {
        new Aws.AutoScaling.Inputs.PolicyStepAdjustmentArgs
        {
            ScalingAdjustment = 0,
            MetricIntervalLowerBound = "string",
            MetricIntervalUpperBound = "string",
        },
    },
    TargetTrackingConfiguration = new Aws.AutoScaling.Inputs.PolicyTargetTrackingConfigurationArgs
    {
        TargetValue = 0,
        CustomizedMetricSpecification = new Aws.AutoScaling.Inputs.PolicyTargetTrackingConfigurationCustomizedMetricSpecificationArgs
        {
            MetricDimensions = new[]
            {
                new Aws.AutoScaling.Inputs.PolicyTargetTrackingConfigurationCustomizedMetricSpecificationMetricDimensionArgs
                {
                    Name = "string",
                    Value = "string",
                },
            },
            MetricName = "string",
            Metrics = new[]
            {
                new Aws.AutoScaling.Inputs.PolicyTargetTrackingConfigurationCustomizedMetricSpecificationMetricArgs
                {
                    Id = "string",
                    Expression = "string",
                    Label = "string",
                    MetricStat = new Aws.AutoScaling.Inputs.PolicyTargetTrackingConfigurationCustomizedMetricSpecificationMetricMetricStatArgs
                    {
                        Metric = new Aws.AutoScaling.Inputs.PolicyTargetTrackingConfigurationCustomizedMetricSpecificationMetricMetricStatMetricArgs
                        {
                            MetricName = "string",
                            Namespace = "string",
                            Dimensions = new[]
                            {
                                new Aws.AutoScaling.Inputs.PolicyTargetTrackingConfigurationCustomizedMetricSpecificationMetricMetricStatMetricDimensionArgs
                                {
                                    Name = "string",
                                    Value = "string",
                                },
                            },
                        },
                        Stat = "string",
                        Period = 0,
                        Unit = "string",
                    },
                    ReturnData = false,
                },
            },
            Namespace = "string",
            Period = 0,
            Statistic = "string",
            Unit = "string",
        },
        DisableScaleIn = false,
        PredefinedMetricSpecification = new Aws.AutoScaling.Inputs.PolicyTargetTrackingConfigurationPredefinedMetricSpecificationArgs
        {
            PredefinedMetricType = "string",
            ResourceLabel = "string",
        },
    },
});
Copy
example, err := autoscaling.NewPolicy(ctx, "examplepolicyResourceResourceFromAutoscalingpolicy", &autoscaling.PolicyArgs{
	AutoscalingGroupName:    pulumi.String("string"),
	MinAdjustmentMagnitude:  pulumi.Int(0),
	Cooldown:                pulumi.Int(0),
	Enabled:                 pulumi.Bool(false),
	EstimatedInstanceWarmup: pulumi.Int(0),
	MetricAggregationType:   pulumi.String("string"),
	AdjustmentType:          pulumi.String("string"),
	Name:                    pulumi.String("string"),
	PolicyType:              pulumi.String("string"),
	PredictiveScalingConfiguration: &autoscaling.PolicyPredictiveScalingConfigurationArgs{
		MetricSpecification: &autoscaling.PolicyPredictiveScalingConfigurationMetricSpecificationArgs{
			TargetValue: pulumi.Float64(0),
			CustomizedCapacityMetricSpecification: &autoscaling.PolicyPredictiveScalingConfigurationMetricSpecificationCustomizedCapacityMetricSpecificationArgs{
				MetricDataQueries: autoscaling.PolicyPredictiveScalingConfigurationMetricSpecificationCustomizedCapacityMetricSpecificationMetricDataQueryArray{
					&autoscaling.PolicyPredictiveScalingConfigurationMetricSpecificationCustomizedCapacityMetricSpecificationMetricDataQueryArgs{
						Id:         pulumi.String("string"),
						Expression: pulumi.String("string"),
						Label:      pulumi.String("string"),
						MetricStat: &autoscaling.PolicyPredictiveScalingConfigurationMetricSpecificationCustomizedCapacityMetricSpecificationMetricDataQueryMetricStatArgs{
							Metric: &autoscaling.PolicyPredictiveScalingConfigurationMetricSpecificationCustomizedCapacityMetricSpecificationMetricDataQueryMetricStatMetricArgs{
								MetricName: pulumi.String("string"),
								Namespace:  pulumi.String("string"),
								Dimensions: autoscaling.PolicyPredictiveScalingConfigurationMetricSpecificationCustomizedCapacityMetricSpecificationMetricDataQueryMetricStatMetricDimensionArray{
									&autoscaling.PolicyPredictiveScalingConfigurationMetricSpecificationCustomizedCapacityMetricSpecificationMetricDataQueryMetricStatMetricDimensionArgs{
										Name:  pulumi.String("string"),
										Value: pulumi.String("string"),
									},
								},
							},
							Stat: pulumi.String("string"),
							Unit: pulumi.String("string"),
						},
						ReturnData: pulumi.Bool(false),
					},
				},
			},
			CustomizedLoadMetricSpecification: &autoscaling.PolicyPredictiveScalingConfigurationMetricSpecificationCustomizedLoadMetricSpecificationArgs{
				MetricDataQueries: autoscaling.PolicyPredictiveScalingConfigurationMetricSpecificationCustomizedLoadMetricSpecificationMetricDataQueryArray{
					&autoscaling.PolicyPredictiveScalingConfigurationMetricSpecificationCustomizedLoadMetricSpecificationMetricDataQueryArgs{
						Id:         pulumi.String("string"),
						Expression: pulumi.String("string"),
						Label:      pulumi.String("string"),
						MetricStat: &autoscaling.PolicyPredictiveScalingConfigurationMetricSpecificationCustomizedLoadMetricSpecificationMetricDataQueryMetricStatArgs{
							Metric: &autoscaling.PolicyPredictiveScalingConfigurationMetricSpecificationCustomizedLoadMetricSpecificationMetricDataQueryMetricStatMetricArgs{
								MetricName: pulumi.String("string"),
								Namespace:  pulumi.String("string"),
								Dimensions: autoscaling.PolicyPredictiveScalingConfigurationMetricSpecificationCustomizedLoadMetricSpecificationMetricDataQueryMetricStatMetricDimensionArray{
									&autoscaling.PolicyPredictiveScalingConfigurationMetricSpecificationCustomizedLoadMetricSpecificationMetricDataQueryMetricStatMetricDimensionArgs{
										Name:  pulumi.String("string"),
										Value: pulumi.String("string"),
									},
								},
							},
							Stat: pulumi.String("string"),
							Unit: pulumi.String("string"),
						},
						ReturnData: pulumi.Bool(false),
					},
				},
			},
			CustomizedScalingMetricSpecification: &autoscaling.PolicyPredictiveScalingConfigurationMetricSpecificationCustomizedScalingMetricSpecificationArgs{
				MetricDataQueries: autoscaling.PolicyPredictiveScalingConfigurationMetricSpecificationCustomizedScalingMetricSpecificationMetricDataQueryArray{
					&autoscaling.PolicyPredictiveScalingConfigurationMetricSpecificationCustomizedScalingMetricSpecificationMetricDataQueryArgs{
						Id:         pulumi.String("string"),
						Expression: pulumi.String("string"),
						Label:      pulumi.String("string"),
						MetricStat: &autoscaling.PolicyPredictiveScalingConfigurationMetricSpecificationCustomizedScalingMetricSpecificationMetricDataQueryMetricStatArgs{
							Metric: &autoscaling.PolicyPredictiveScalingConfigurationMetricSpecificationCustomizedScalingMetricSpecificationMetricDataQueryMetricStatMetricArgs{
								MetricName: pulumi.String("string"),
								Namespace:  pulumi.String("string"),
								Dimensions: autoscaling.PolicyPredictiveScalingConfigurationMetricSpecificationCustomizedScalingMetricSpecificationMetricDataQueryMetricStatMetricDimensionArray{
									&autoscaling.PolicyPredictiveScalingConfigurationMetricSpecificationCustomizedScalingMetricSpecificationMetricDataQueryMetricStatMetricDimensionArgs{
										Name:  pulumi.String("string"),
										Value: pulumi.String("string"),
									},
								},
							},
							Stat: pulumi.String("string"),
							Unit: pulumi.String("string"),
						},
						ReturnData: pulumi.Bool(false),
					},
				},
			},
			PredefinedLoadMetricSpecification: &autoscaling.PolicyPredictiveScalingConfigurationMetricSpecificationPredefinedLoadMetricSpecificationArgs{
				PredefinedMetricType: pulumi.String("string"),
				ResourceLabel:        pulumi.String("string"),
			},
			PredefinedMetricPairSpecification: &autoscaling.PolicyPredictiveScalingConfigurationMetricSpecificationPredefinedMetricPairSpecificationArgs{
				PredefinedMetricType: pulumi.String("string"),
				ResourceLabel:        pulumi.String("string"),
			},
			PredefinedScalingMetricSpecification: &autoscaling.PolicyPredictiveScalingConfigurationMetricSpecificationPredefinedScalingMetricSpecificationArgs{
				PredefinedMetricType: pulumi.String("string"),
				ResourceLabel:        pulumi.String("string"),
			},
		},
		MaxCapacityBreachBehavior: pulumi.String("string"),
		MaxCapacityBuffer:         pulumi.String("string"),
		Mode:                      pulumi.String("string"),
		SchedulingBufferTime:      pulumi.String("string"),
	},
	ScalingAdjustment: pulumi.Int(0),
	StepAdjustments: autoscaling.PolicyStepAdjustmentArray{
		&autoscaling.PolicyStepAdjustmentArgs{
			ScalingAdjustment:        pulumi.Int(0),
			MetricIntervalLowerBound: pulumi.String("string"),
			MetricIntervalUpperBound: pulumi.String("string"),
		},
	},
	TargetTrackingConfiguration: &autoscaling.PolicyTargetTrackingConfigurationArgs{
		TargetValue: pulumi.Float64(0),
		CustomizedMetricSpecification: &autoscaling.PolicyTargetTrackingConfigurationCustomizedMetricSpecificationArgs{
			MetricDimensions: autoscaling.PolicyTargetTrackingConfigurationCustomizedMetricSpecificationMetricDimensionArray{
				&autoscaling.PolicyTargetTrackingConfigurationCustomizedMetricSpecificationMetricDimensionArgs{
					Name:  pulumi.String("string"),
					Value: pulumi.String("string"),
				},
			},
			MetricName: pulumi.String("string"),
			Metrics: autoscaling.PolicyTargetTrackingConfigurationCustomizedMetricSpecificationMetricArray{
				&autoscaling.PolicyTargetTrackingConfigurationCustomizedMetricSpecificationMetricArgs{
					Id:         pulumi.String("string"),
					Expression: pulumi.String("string"),
					Label:      pulumi.String("string"),
					MetricStat: &autoscaling.PolicyTargetTrackingConfigurationCustomizedMetricSpecificationMetricMetricStatArgs{
						Metric: &autoscaling.PolicyTargetTrackingConfigurationCustomizedMetricSpecificationMetricMetricStatMetricArgs{
							MetricName: pulumi.String("string"),
							Namespace:  pulumi.String("string"),
							Dimensions: autoscaling.PolicyTargetTrackingConfigurationCustomizedMetricSpecificationMetricMetricStatMetricDimensionArray{
								&autoscaling.PolicyTargetTrackingConfigurationCustomizedMetricSpecificationMetricMetricStatMetricDimensionArgs{
									Name:  pulumi.String("string"),
									Value: pulumi.String("string"),
								},
							},
						},
						Stat:   pulumi.String("string"),
						Period: pulumi.Int(0),
						Unit:   pulumi.String("string"),
					},
					ReturnData: pulumi.Bool(false),
				},
			},
			Namespace: pulumi.String("string"),
			Period:    pulumi.Int(0),
			Statistic: pulumi.String("string"),
			Unit:      pulumi.String("string"),
		},
		DisableScaleIn: pulumi.Bool(false),
		PredefinedMetricSpecification: &autoscaling.PolicyTargetTrackingConfigurationPredefinedMetricSpecificationArgs{
			PredefinedMetricType: pulumi.String("string"),
			ResourceLabel:        pulumi.String("string"),
		},
	},
})
Copy
var examplepolicyResourceResourceFromAutoscalingpolicy = new Policy("examplepolicyResourceResourceFromAutoscalingpolicy", PolicyArgs.builder()
    .autoscalingGroupName("string")
    .minAdjustmentMagnitude(0)
    .cooldown(0)
    .enabled(false)
    .estimatedInstanceWarmup(0)
    .metricAggregationType("string")
    .adjustmentType("string")
    .name("string")
    .policyType("string")
    .predictiveScalingConfiguration(PolicyPredictiveScalingConfigurationArgs.builder()
        .metricSpecification(PolicyPredictiveScalingConfigurationMetricSpecificationArgs.builder()
            .targetValue(0)
            .customizedCapacityMetricSpecification(PolicyPredictiveScalingConfigurationMetricSpecificationCustomizedCapacityMetricSpecificationArgs.builder()
                .metricDataQueries(PolicyPredictiveScalingConfigurationMetricSpecificationCustomizedCapacityMetricSpecificationMetricDataQueryArgs.builder()
                    .id("string")
                    .expression("string")
                    .label("string")
                    .metricStat(PolicyPredictiveScalingConfigurationMetricSpecificationCustomizedCapacityMetricSpecificationMetricDataQueryMetricStatArgs.builder()
                        .metric(PolicyPredictiveScalingConfigurationMetricSpecificationCustomizedCapacityMetricSpecificationMetricDataQueryMetricStatMetricArgs.builder()
                            .metricName("string")
                            .namespace("string")
                            .dimensions(PolicyPredictiveScalingConfigurationMetricSpecificationCustomizedCapacityMetricSpecificationMetricDataQueryMetricStatMetricDimensionArgs.builder()
                                .name("string")
                                .value("string")
                                .build())
                            .build())
                        .stat("string")
                        .unit("string")
                        .build())
                    .returnData(false)
                    .build())
                .build())
            .customizedLoadMetricSpecification(PolicyPredictiveScalingConfigurationMetricSpecificationCustomizedLoadMetricSpecificationArgs.builder()
                .metricDataQueries(PolicyPredictiveScalingConfigurationMetricSpecificationCustomizedLoadMetricSpecificationMetricDataQueryArgs.builder()
                    .id("string")
                    .expression("string")
                    .label("string")
                    .metricStat(PolicyPredictiveScalingConfigurationMetricSpecificationCustomizedLoadMetricSpecificationMetricDataQueryMetricStatArgs.builder()
                        .metric(PolicyPredictiveScalingConfigurationMetricSpecificationCustomizedLoadMetricSpecificationMetricDataQueryMetricStatMetricArgs.builder()
                            .metricName("string")
                            .namespace("string")
                            .dimensions(PolicyPredictiveScalingConfigurationMetricSpecificationCustomizedLoadMetricSpecificationMetricDataQueryMetricStatMetricDimensionArgs.builder()
                                .name("string")
                                .value("string")
                                .build())
                            .build())
                        .stat("string")
                        .unit("string")
                        .build())
                    .returnData(false)
                    .build())
                .build())
            .customizedScalingMetricSpecification(PolicyPredictiveScalingConfigurationMetricSpecificationCustomizedScalingMetricSpecificationArgs.builder()
                .metricDataQueries(PolicyPredictiveScalingConfigurationMetricSpecificationCustomizedScalingMetricSpecificationMetricDataQueryArgs.builder()
                    .id("string")
                    .expression("string")
                    .label("string")
                    .metricStat(PolicyPredictiveScalingConfigurationMetricSpecificationCustomizedScalingMetricSpecificationMetricDataQueryMetricStatArgs.builder()
                        .metric(PolicyPredictiveScalingConfigurationMetricSpecificationCustomizedScalingMetricSpecificationMetricDataQueryMetricStatMetricArgs.builder()
                            .metricName("string")
                            .namespace("string")
                            .dimensions(PolicyPredictiveScalingConfigurationMetricSpecificationCustomizedScalingMetricSpecificationMetricDataQueryMetricStatMetricDimensionArgs.builder()
                                .name("string")
                                .value("string")
                                .build())
                            .build())
                        .stat("string")
                        .unit("string")
                        .build())
                    .returnData(false)
                    .build())
                .build())
            .predefinedLoadMetricSpecification(PolicyPredictiveScalingConfigurationMetricSpecificationPredefinedLoadMetricSpecificationArgs.builder()
                .predefinedMetricType("string")
                .resourceLabel("string")
                .build())
            .predefinedMetricPairSpecification(PolicyPredictiveScalingConfigurationMetricSpecificationPredefinedMetricPairSpecificationArgs.builder()
                .predefinedMetricType("string")
                .resourceLabel("string")
                .build())
            .predefinedScalingMetricSpecification(PolicyPredictiveScalingConfigurationMetricSpecificationPredefinedScalingMetricSpecificationArgs.builder()
                .predefinedMetricType("string")
                .resourceLabel("string")
                .build())
            .build())
        .maxCapacityBreachBehavior("string")
        .maxCapacityBuffer("string")
        .mode("string")
        .schedulingBufferTime("string")
        .build())
    .scalingAdjustment(0)
    .stepAdjustments(PolicyStepAdjustmentArgs.builder()
        .scalingAdjustment(0)
        .metricIntervalLowerBound("string")
        .metricIntervalUpperBound("string")
        .build())
    .targetTrackingConfiguration(PolicyTargetTrackingConfigurationArgs.builder()
        .targetValue(0)
        .customizedMetricSpecification(PolicyTargetTrackingConfigurationCustomizedMetricSpecificationArgs.builder()
            .metricDimensions(PolicyTargetTrackingConfigurationCustomizedMetricSpecificationMetricDimensionArgs.builder()
                .name("string")
                .value("string")
                .build())
            .metricName("string")
            .metrics(PolicyTargetTrackingConfigurationCustomizedMetricSpecificationMetricArgs.builder()
                .id("string")
                .expression("string")
                .label("string")
                .metricStat(PolicyTargetTrackingConfigurationCustomizedMetricSpecificationMetricMetricStatArgs.builder()
                    .metric(PolicyTargetTrackingConfigurationCustomizedMetricSpecificationMetricMetricStatMetricArgs.builder()
                        .metricName("string")
                        .namespace("string")
                        .dimensions(PolicyTargetTrackingConfigurationCustomizedMetricSpecificationMetricMetricStatMetricDimensionArgs.builder()
                            .name("string")
                            .value("string")
                            .build())
                        .build())
                    .stat("string")
                    .period(0)
                    .unit("string")
                    .build())
                .returnData(false)
                .build())
            .namespace("string")
            .period(0)
            .statistic("string")
            .unit("string")
            .build())
        .disableScaleIn(false)
        .predefinedMetricSpecification(PolicyTargetTrackingConfigurationPredefinedMetricSpecificationArgs.builder()
            .predefinedMetricType("string")
            .resourceLabel("string")
            .build())
        .build())
    .build());
Copy
examplepolicy_resource_resource_from_autoscalingpolicy = aws.autoscaling.Policy("examplepolicyResourceResourceFromAutoscalingpolicy",
    autoscaling_group_name="string",
    min_adjustment_magnitude=0,
    cooldown=0,
    enabled=False,
    estimated_instance_warmup=0,
    metric_aggregation_type="string",
    adjustment_type="string",
    name="string",
    policy_type="string",
    predictive_scaling_configuration={
        "metric_specification": {
            "target_value": 0,
            "customized_capacity_metric_specification": {
                "metric_data_queries": [{
                    "id": "string",
                    "expression": "string",
                    "label": "string",
                    "metric_stat": {
                        "metric": {
                            "metric_name": "string",
                            "namespace": "string",
                            "dimensions": [{
                                "name": "string",
                                "value": "string",
                            }],
                        },
                        "stat": "string",
                        "unit": "string",
                    },
                    "return_data": False,
                }],
            },
            "customized_load_metric_specification": {
                "metric_data_queries": [{
                    "id": "string",
                    "expression": "string",
                    "label": "string",
                    "metric_stat": {
                        "metric": {
                            "metric_name": "string",
                            "namespace": "string",
                            "dimensions": [{
                                "name": "string",
                                "value": "string",
                            }],
                        },
                        "stat": "string",
                        "unit": "string",
                    },
                    "return_data": False,
                }],
            },
            "customized_scaling_metric_specification": {
                "metric_data_queries": [{
                    "id": "string",
                    "expression": "string",
                    "label": "string",
                    "metric_stat": {
                        "metric": {
                            "metric_name": "string",
                            "namespace": "string",
                            "dimensions": [{
                                "name": "string",
                                "value": "string",
                            }],
                        },
                        "stat": "string",
                        "unit": "string",
                    },
                    "return_data": False,
                }],
            },
            "predefined_load_metric_specification": {
                "predefined_metric_type": "string",
                "resource_label": "string",
            },
            "predefined_metric_pair_specification": {
                "predefined_metric_type": "string",
                "resource_label": "string",
            },
            "predefined_scaling_metric_specification": {
                "predefined_metric_type": "string",
                "resource_label": "string",
            },
        },
        "max_capacity_breach_behavior": "string",
        "max_capacity_buffer": "string",
        "mode": "string",
        "scheduling_buffer_time": "string",
    },
    scaling_adjustment=0,
    step_adjustments=[{
        "scaling_adjustment": 0,
        "metric_interval_lower_bound": "string",
        "metric_interval_upper_bound": "string",
    }],
    target_tracking_configuration={
        "target_value": 0,
        "customized_metric_specification": {
            "metric_dimensions": [{
                "name": "string",
                "value": "string",
            }],
            "metric_name": "string",
            "metrics": [{
                "id": "string",
                "expression": "string",
                "label": "string",
                "metric_stat": {
                    "metric": {
                        "metric_name": "string",
                        "namespace": "string",
                        "dimensions": [{
                            "name": "string",
                            "value": "string",
                        }],
                    },
                    "stat": "string",
                    "period": 0,
                    "unit": "string",
                },
                "return_data": False,
            }],
            "namespace": "string",
            "period": 0,
            "statistic": "string",
            "unit": "string",
        },
        "disable_scale_in": False,
        "predefined_metric_specification": {
            "predefined_metric_type": "string",
            "resource_label": "string",
        },
    })
Copy
const examplepolicyResourceResourceFromAutoscalingpolicy = new aws.autoscaling.Policy("examplepolicyResourceResourceFromAutoscalingpolicy", {
    autoscalingGroupName: "string",
    minAdjustmentMagnitude: 0,
    cooldown: 0,
    enabled: false,
    estimatedInstanceWarmup: 0,
    metricAggregationType: "string",
    adjustmentType: "string",
    name: "string",
    policyType: "string",
    predictiveScalingConfiguration: {
        metricSpecification: {
            targetValue: 0,
            customizedCapacityMetricSpecification: {
                metricDataQueries: [{
                    id: "string",
                    expression: "string",
                    label: "string",
                    metricStat: {
                        metric: {
                            metricName: "string",
                            namespace: "string",
                            dimensions: [{
                                name: "string",
                                value: "string",
                            }],
                        },
                        stat: "string",
                        unit: "string",
                    },
                    returnData: false,
                }],
            },
            customizedLoadMetricSpecification: {
                metricDataQueries: [{
                    id: "string",
                    expression: "string",
                    label: "string",
                    metricStat: {
                        metric: {
                            metricName: "string",
                            namespace: "string",
                            dimensions: [{
                                name: "string",
                                value: "string",
                            }],
                        },
                        stat: "string",
                        unit: "string",
                    },
                    returnData: false,
                }],
            },
            customizedScalingMetricSpecification: {
                metricDataQueries: [{
                    id: "string",
                    expression: "string",
                    label: "string",
                    metricStat: {
                        metric: {
                            metricName: "string",
                            namespace: "string",
                            dimensions: [{
                                name: "string",
                                value: "string",
                            }],
                        },
                        stat: "string",
                        unit: "string",
                    },
                    returnData: false,
                }],
            },
            predefinedLoadMetricSpecification: {
                predefinedMetricType: "string",
                resourceLabel: "string",
            },
            predefinedMetricPairSpecification: {
                predefinedMetricType: "string",
                resourceLabel: "string",
            },
            predefinedScalingMetricSpecification: {
                predefinedMetricType: "string",
                resourceLabel: "string",
            },
        },
        maxCapacityBreachBehavior: "string",
        maxCapacityBuffer: "string",
        mode: "string",
        schedulingBufferTime: "string",
    },
    scalingAdjustment: 0,
    stepAdjustments: [{
        scalingAdjustment: 0,
        metricIntervalLowerBound: "string",
        metricIntervalUpperBound: "string",
    }],
    targetTrackingConfiguration: {
        targetValue: 0,
        customizedMetricSpecification: {
            metricDimensions: [{
                name: "string",
                value: "string",
            }],
            metricName: "string",
            metrics: [{
                id: "string",
                expression: "string",
                label: "string",
                metricStat: {
                    metric: {
                        metricName: "string",
                        namespace: "string",
                        dimensions: [{
                            name: "string",
                            value: "string",
                        }],
                    },
                    stat: "string",
                    period: 0,
                    unit: "string",
                },
                returnData: false,
            }],
            namespace: "string",
            period: 0,
            statistic: "string",
            unit: "string",
        },
        disableScaleIn: false,
        predefinedMetricSpecification: {
            predefinedMetricType: "string",
            resourceLabel: "string",
        },
    },
});
Copy
type: aws:autoscaling:Policy
properties:
    adjustmentType: string
    autoscalingGroupName: string
    cooldown: 0
    enabled: false
    estimatedInstanceWarmup: 0
    metricAggregationType: string
    minAdjustmentMagnitude: 0
    name: string
    policyType: string
    predictiveScalingConfiguration:
        maxCapacityBreachBehavior: string
        maxCapacityBuffer: string
        metricSpecification:
            customizedCapacityMetricSpecification:
                metricDataQueries:
                    - expression: string
                      id: string
                      label: string
                      metricStat:
                        metric:
                            dimensions:
                                - name: string
                                  value: string
                            metricName: string
                            namespace: string
                        stat: string
                        unit: string
                      returnData: false
            customizedLoadMetricSpecification:
                metricDataQueries:
                    - expression: string
                      id: string
                      label: string
                      metricStat:
                        metric:
                            dimensions:
                                - name: string
                                  value: string
                            metricName: string
                            namespace: string
                        stat: string
                        unit: string
                      returnData: false
            customizedScalingMetricSpecification:
                metricDataQueries:
                    - expression: string
                      id: string
                      label: string
                      metricStat:
                        metric:
                            dimensions:
                                - name: string
                                  value: string
                            metricName: string
                            namespace: string
                        stat: string
                        unit: string
                      returnData: false
            predefinedLoadMetricSpecification:
                predefinedMetricType: string
                resourceLabel: string
            predefinedMetricPairSpecification:
                predefinedMetricType: string
                resourceLabel: string
            predefinedScalingMetricSpecification:
                predefinedMetricType: string
                resourceLabel: string
            targetValue: 0
        mode: string
        schedulingBufferTime: string
    scalingAdjustment: 0
    stepAdjustments:
        - metricIntervalLowerBound: string
          metricIntervalUpperBound: string
          scalingAdjustment: 0
    targetTrackingConfiguration:
        customizedMetricSpecification:
            metricDimensions:
                - name: string
                  value: string
            metricName: string
            metrics:
                - expression: string
                  id: string
                  label: string
                  metricStat:
                    metric:
                        dimensions:
                            - name: string
                              value: string
                        metricName: string
                        namespace: string
                    period: 0
                    stat: string
                    unit: string
                  returnData: false
            namespace: string
            period: 0
            statistic: string
            unit: string
        disableScaleIn: false
        predefinedMetricSpecification:
            predefinedMetricType: string
            resourceLabel: string
        targetValue: 0
Copy

Policy Resource Properties

To learn more about resource properties and how to use them, see Inputs and Outputs in the Architecture and Concepts docs.

Inputs

In Python, inputs that are objects can be passed either as argument classes or as dictionary literals.

The Policy resource accepts the following input properties:

AutoscalingGroupName
This property is required.
Changes to this property will trigger replacement.
string
Name of the autoscaling group.
AdjustmentType string
Whether the adjustment is an absolute number or a percentage of the current capacity. Valid values are ChangeInCapacity, ExactCapacity, and PercentChangeInCapacity.
Cooldown int
Amount of time, in seconds, after a scaling activity completes and before the next scaling activity can start.
Enabled bool

Whether the scaling policy is enabled or disabled. Default: true.

The following argument is only available to "SimpleScaling" and "StepScaling" type policies:

EstimatedInstanceWarmup int
Estimated time, in seconds, until a newly launched instance will contribute CloudWatch metrics. Without a value, AWS will default to the group's specified cooldown period.
MetricAggregationType string
Aggregation type for the policy's metrics. Valid values are "Minimum", "Maximum", and "Average". Without a value, AWS will treat the aggregation type as "Average".
MinAdjustmentMagnitude int

Minimum value to scale by when adjustment_type is set to PercentChangeInCapacity.

The following arguments are only available to "SimpleScaling" type policies:

Name Changes to this property will trigger replacement. string
Name of the policy.
PolicyType string
Policy type, either "SimpleScaling", "StepScaling", "TargetTrackingScaling", or "PredictiveScaling". If this value isn't provided, AWS will default to "SimpleScaling."
PredictiveScalingConfiguration PolicyPredictiveScalingConfiguration
Predictive scaling policy configuration to use with Amazon EC2 Auto Scaling.
ScalingAdjustment int
Number of members by which to scale, when the adjustment bounds are breached. A positive value scales up. A negative value scales down.
StepAdjustments List<PolicyStepAdjustment>

Set of adjustments that manage group scaling. These have the following structure:

import * as pulumi from "@pulumi/pulumi";
import * as aws from "@pulumi/aws";

const example = new aws.autoscaling.Policy("example", {stepAdjustments: [ { scalingAdjustment: -1, metricIntervalLowerBound: "1", metricIntervalUpperBound: "2", }, { scalingAdjustment: 1, metricIntervalLowerBound: "2", metricIntervalUpperBound: "3", }, ]});

import pulumi
import pulumi_aws as aws

example = aws.autoscaling.Policy("example", step_adjustments=[
    {
        "scaling_adjustment": -1,
        "metric_interval_lower_bound": "1",
        "metric_interval_upper_bound": "2",
    },
    {
        "scaling_adjustment": 1,
        "metric_interval_lower_bound": "2",
        "metric_interval_upper_bound": "3",
    },
])
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Aws = Pulumi.Aws;

return await Deployment.RunAsync(() => 
{
    var example = new Aws.AutoScaling.Policy("example", new()
    {
        StepAdjustments = new[]
        {
            new Aws.AutoScaling.Inputs.PolicyStepAdjustmentArgs
            {
                ScalingAdjustment = -1,
                MetricIntervalLowerBound = "1",
                MetricIntervalUpperBound = "2",
            },
            new Aws.AutoScaling.Inputs.PolicyStepAdjustmentArgs
            {
                ScalingAdjustment = 1,
                MetricIntervalLowerBound = "2",
                MetricIntervalUpperBound = "3",
            },
        },
    });

});
package main

import (
	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/autoscaling"
	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := autoscaling.NewPolicy(ctx, "example", &autoscaling.PolicyArgs{
			StepAdjustments: autoscaling.PolicyStepAdjustmentArray{
				&autoscaling.PolicyStepAdjustmentArgs{
					ScalingAdjustment:        pulumi.Int(-1),
					MetricIntervalLowerBound: pulumi.String("1"),
					MetricIntervalUpperBound: pulumi.String("2"),
				},
				&autoscaling.PolicyStepAdjustmentArgs{
					ScalingAdjustment:        pulumi.Int(1),
					MetricIntervalLowerBound: pulumi.String("2"),
					MetricIntervalUpperBound: pulumi.String("3"),
				},
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}
package generated_program;

import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.aws.autoscaling.Policy;
import com.pulumi.aws.autoscaling.PolicyArgs;
import com.pulumi.aws.autoscaling.inputs.PolicyStepAdjustmentArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;

public class App {
    public static void main(String[] args) {
        Pulumi.run(App::stack);
    }

    public static void stack(Context ctx) {
        var example = new Policy("example", PolicyArgs.builder()
            .stepAdjustments(            
                PolicyStepAdjustmentArgs.builder()
                    .scalingAdjustment(-1)
                    .metricIntervalLowerBound(1)
                    .metricIntervalUpperBound(2)
                    .build(),
                PolicyStepAdjustmentArgs.builder()
                    .scalingAdjustment(1)
                    .metricIntervalLowerBound(2)
                    .metricIntervalUpperBound(3)
                    .build())
            .build());

    }
}
resources:
  example:
    type: aws:autoscaling:Policy
    properties:
      stepAdjustments:
        - scalingAdjustment: -1
          metricIntervalLowerBound: 1
          metricIntervalUpperBound: 2
        - scalingAdjustment: 1
          metricIntervalLowerBound: 2
          metricIntervalUpperBound: 3

The following fields are available in step adjustments:

TargetTrackingConfiguration PolicyTargetTrackingConfiguration

Target tracking policy. These have the following structure:

import * as pulumi from "@pulumi/pulumi";
import * as aws from "@pulumi/aws";

const example = new aws.autoscaling.Policy("example", {targetTrackingConfiguration: { predefinedMetricSpecification: { predefinedMetricType: "ASGAverageCPUUtilization", }, targetValue: 40, }});

import pulumi
import pulumi_aws as aws

example = aws.autoscaling.Policy("example", target_tracking_configuration={
    "predefined_metric_specification": {
        "predefined_metric_type": "ASGAverageCPUUtilization",
    },
    "target_value": 40,
})
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Aws = Pulumi.Aws;

return await Deployment.RunAsync(() => 
{
    var example = new Aws.AutoScaling.Policy("example", new()
    {
        TargetTrackingConfiguration = new Aws.AutoScaling.Inputs.PolicyTargetTrackingConfigurationArgs
        {
            PredefinedMetricSpecification = new Aws.AutoScaling.Inputs.PolicyTargetTrackingConfigurationPredefinedMetricSpecificationArgs
            {
                PredefinedMetricType = "ASGAverageCPUUtilization",
            },
            TargetValue = 40,
        },
    });

});
package main

import (
	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/autoscaling"
	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := autoscaling.NewPolicy(ctx, "example", &autoscaling.PolicyArgs{
			TargetTrackingConfiguration: &autoscaling.PolicyTargetTrackingConfigurationArgs{
				PredefinedMetricSpecification: &autoscaling.PolicyTargetTrackingConfigurationPredefinedMetricSpecificationArgs{
					PredefinedMetricType: pulumi.String("ASGAverageCPUUtilization"),
				},
				TargetValue: pulumi.Float64(40),
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}
package generated_program;

import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.aws.autoscaling.Policy;
import com.pulumi.aws.autoscaling.PolicyArgs;
import com.pulumi.aws.autoscaling.inputs.PolicyTargetTrackingConfigurationArgs;
import com.pulumi.aws.autoscaling.inputs.PolicyTargetTrackingConfigurationPredefinedMetricSpecificationArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;

public class App {
    public static void main(String[] args) {
        Pulumi.run(App::stack);
    }

    public static void stack(Context ctx) {
        var example = new Policy("example", PolicyArgs.builder()
            .targetTrackingConfiguration(PolicyTargetTrackingConfigurationArgs.builder()
                .predefinedMetricSpecification(PolicyTargetTrackingConfigurationPredefinedMetricSpecificationArgs.builder()
                    .predefinedMetricType("ASGAverageCPUUtilization")
                    .build())
                .targetValue(40)
                .build())
            .build());

    }
}
resources:
  example:
    type: aws:autoscaling:Policy
    properties:
      targetTrackingConfiguration:
        predefinedMetricSpecification:
          predefinedMetricType: ASGAverageCPUUtilization
        targetValue: 40

The following fields are available in target tracking configuration:

AutoscalingGroupName
This property is required.
Changes to this property will trigger replacement.
string
Name of the autoscaling group.
AdjustmentType string
Whether the adjustment is an absolute number or a percentage of the current capacity. Valid values are ChangeInCapacity, ExactCapacity, and PercentChangeInCapacity.
Cooldown int
Amount of time, in seconds, after a scaling activity completes and before the next scaling activity can start.
Enabled bool

Whether the scaling policy is enabled or disabled. Default: true.

The following argument is only available to "SimpleScaling" and "StepScaling" type policies:

EstimatedInstanceWarmup int
Estimated time, in seconds, until a newly launched instance will contribute CloudWatch metrics. Without a value, AWS will default to the group's specified cooldown period.
MetricAggregationType string
Aggregation type for the policy's metrics. Valid values are "Minimum", "Maximum", and "Average". Without a value, AWS will treat the aggregation type as "Average".
MinAdjustmentMagnitude int

Minimum value to scale by when adjustment_type is set to PercentChangeInCapacity.

The following arguments are only available to "SimpleScaling" type policies:

Name Changes to this property will trigger replacement. string
Name of the policy.
PolicyType string
Policy type, either "SimpleScaling", "StepScaling", "TargetTrackingScaling", or "PredictiveScaling". If this value isn't provided, AWS will default to "SimpleScaling."
PredictiveScalingConfiguration PolicyPredictiveScalingConfigurationArgs
Predictive scaling policy configuration to use with Amazon EC2 Auto Scaling.
ScalingAdjustment int
Number of members by which to scale, when the adjustment bounds are breached. A positive value scales up. A negative value scales down.
StepAdjustments []PolicyStepAdjustmentArgs

Set of adjustments that manage group scaling. These have the following structure:

import * as pulumi from "@pulumi/pulumi";
import * as aws from "@pulumi/aws";

const example = new aws.autoscaling.Policy("example", {stepAdjustments: [ { scalingAdjustment: -1, metricIntervalLowerBound: "1", metricIntervalUpperBound: "2", }, { scalingAdjustment: 1, metricIntervalLowerBound: "2", metricIntervalUpperBound: "3", }, ]});

import pulumi
import pulumi_aws as aws

example = aws.autoscaling.Policy("example", step_adjustments=[
    {
        "scaling_adjustment": -1,
        "metric_interval_lower_bound": "1",
        "metric_interval_upper_bound": "2",
    },
    {
        "scaling_adjustment": 1,
        "metric_interval_lower_bound": "2",
        "metric_interval_upper_bound": "3",
    },
])
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Aws = Pulumi.Aws;

return await Deployment.RunAsync(() => 
{
    var example = new Aws.AutoScaling.Policy("example", new()
    {
        StepAdjustments = new[]
        {
            new Aws.AutoScaling.Inputs.PolicyStepAdjustmentArgs
            {
                ScalingAdjustment = -1,
                MetricIntervalLowerBound = "1",
                MetricIntervalUpperBound = "2",
            },
            new Aws.AutoScaling.Inputs.PolicyStepAdjustmentArgs
            {
                ScalingAdjustment = 1,
                MetricIntervalLowerBound = "2",
                MetricIntervalUpperBound = "3",
            },
        },
    });

});
package main

import (
	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/autoscaling"
	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := autoscaling.NewPolicy(ctx, "example", &autoscaling.PolicyArgs{
			StepAdjustments: autoscaling.PolicyStepAdjustmentArray{
				&autoscaling.PolicyStepAdjustmentArgs{
					ScalingAdjustment:        pulumi.Int(-1),
					MetricIntervalLowerBound: pulumi.String("1"),
					MetricIntervalUpperBound: pulumi.String("2"),
				},
				&autoscaling.PolicyStepAdjustmentArgs{
					ScalingAdjustment:        pulumi.Int(1),
					MetricIntervalLowerBound: pulumi.String("2"),
					MetricIntervalUpperBound: pulumi.String("3"),
				},
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}
package generated_program;

import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.aws.autoscaling.Policy;
import com.pulumi.aws.autoscaling.PolicyArgs;
import com.pulumi.aws.autoscaling.inputs.PolicyStepAdjustmentArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;

public class App {
    public static void main(String[] args) {
        Pulumi.run(App::stack);
    }

    public static void stack(Context ctx) {
        var example = new Policy("example", PolicyArgs.builder()
            .stepAdjustments(            
                PolicyStepAdjustmentArgs.builder()
                    .scalingAdjustment(-1)
                    .metricIntervalLowerBound(1)
                    .metricIntervalUpperBound(2)
                    .build(),
                PolicyStepAdjustmentArgs.builder()
                    .scalingAdjustment(1)
                    .metricIntervalLowerBound(2)
                    .metricIntervalUpperBound(3)
                    .build())
            .build());

    }
}
resources:
  example:
    type: aws:autoscaling:Policy
    properties:
      stepAdjustments:
        - scalingAdjustment: -1
          metricIntervalLowerBound: 1
          metricIntervalUpperBound: 2
        - scalingAdjustment: 1
          metricIntervalLowerBound: 2
          metricIntervalUpperBound: 3

The following fields are available in step adjustments:

TargetTrackingConfiguration PolicyTargetTrackingConfigurationArgs

Target tracking policy. These have the following structure:

import * as pulumi from "@pulumi/pulumi";
import * as aws from "@pulumi/aws";

const example = new aws.autoscaling.Policy("example", {targetTrackingConfiguration: { predefinedMetricSpecification: { predefinedMetricType: "ASGAverageCPUUtilization", }, targetValue: 40, }});

import pulumi
import pulumi_aws as aws

example = aws.autoscaling.Policy("example", target_tracking_configuration={
    "predefined_metric_specification": {
        "predefined_metric_type": "ASGAverageCPUUtilization",
    },
    "target_value": 40,
})
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Aws = Pulumi.Aws;

return await Deployment.RunAsync(() => 
{
    var example = new Aws.AutoScaling.Policy("example", new()
    {
        TargetTrackingConfiguration = new Aws.AutoScaling.Inputs.PolicyTargetTrackingConfigurationArgs
        {
            PredefinedMetricSpecification = new Aws.AutoScaling.Inputs.PolicyTargetTrackingConfigurationPredefinedMetricSpecificationArgs
            {
                PredefinedMetricType = "ASGAverageCPUUtilization",
            },
            TargetValue = 40,
        },
    });

});
package main

import (
	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/autoscaling"
	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := autoscaling.NewPolicy(ctx, "example", &autoscaling.PolicyArgs{
			TargetTrackingConfiguration: &autoscaling.PolicyTargetTrackingConfigurationArgs{
				PredefinedMetricSpecification: &autoscaling.PolicyTargetTrackingConfigurationPredefinedMetricSpecificationArgs{
					PredefinedMetricType: pulumi.String("ASGAverageCPUUtilization"),
				},
				TargetValue: pulumi.Float64(40),
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}
package generated_program;

import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.aws.autoscaling.Policy;
import com.pulumi.aws.autoscaling.PolicyArgs;
import com.pulumi.aws.autoscaling.inputs.PolicyTargetTrackingConfigurationArgs;
import com.pulumi.aws.autoscaling.inputs.PolicyTargetTrackingConfigurationPredefinedMetricSpecificationArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;

public class App {
    public static void main(String[] args) {
        Pulumi.run(App::stack);
    }

    public static void stack(Context ctx) {
        var example = new Policy("example", PolicyArgs.builder()
            .targetTrackingConfiguration(PolicyTargetTrackingConfigurationArgs.builder()
                .predefinedMetricSpecification(PolicyTargetTrackingConfigurationPredefinedMetricSpecificationArgs.builder()
                    .predefinedMetricType("ASGAverageCPUUtilization")
                    .build())
                .targetValue(40)
                .build())
            .build());

    }
}
resources:
  example:
    type: aws:autoscaling:Policy
    properties:
      targetTrackingConfiguration:
        predefinedMetricSpecification:
          predefinedMetricType: ASGAverageCPUUtilization
        targetValue: 40

The following fields are available in target tracking configuration:

autoscalingGroupName
This property is required.
Changes to this property will trigger replacement.
String
Name of the autoscaling group.
adjustmentType String
Whether the adjustment is an absolute number or a percentage of the current capacity. Valid values are ChangeInCapacity, ExactCapacity, and PercentChangeInCapacity.
cooldown Integer
Amount of time, in seconds, after a scaling activity completes and before the next scaling activity can start.
enabled Boolean

Whether the scaling policy is enabled or disabled. Default: true.

The following argument is only available to "SimpleScaling" and "StepScaling" type policies:

estimatedInstanceWarmup Integer
Estimated time, in seconds, until a newly launched instance will contribute CloudWatch metrics. Without a value, AWS will default to the group's specified cooldown period.
metricAggregationType String
Aggregation type for the policy's metrics. Valid values are "Minimum", "Maximum", and "Average". Without a value, AWS will treat the aggregation type as "Average".
minAdjustmentMagnitude Integer

Minimum value to scale by when adjustment_type is set to PercentChangeInCapacity.

The following arguments are only available to "SimpleScaling" type policies:

name Changes to this property will trigger replacement. String
Name of the policy.
policyType String
Policy type, either "SimpleScaling", "StepScaling", "TargetTrackingScaling", or "PredictiveScaling". If this value isn't provided, AWS will default to "SimpleScaling."
predictiveScalingConfiguration PolicyPredictiveScalingConfiguration
Predictive scaling policy configuration to use with Amazon EC2 Auto Scaling.
scalingAdjustment Integer
Number of members by which to scale, when the adjustment bounds are breached. A positive value scales up. A negative value scales down.
stepAdjustments List<PolicyStepAdjustment>

Set of adjustments that manage group scaling. These have the following structure:

import * as pulumi from "@pulumi/pulumi";
import * as aws from "@pulumi/aws";

const example = new aws.autoscaling.Policy("example", {stepAdjustments: [ { scalingAdjustment: -1, metricIntervalLowerBound: "1", metricIntervalUpperBound: "2", }, { scalingAdjustment: 1, metricIntervalLowerBound: "2", metricIntervalUpperBound: "3", }, ]});

import pulumi
import pulumi_aws as aws

example = aws.autoscaling.Policy("example", step_adjustments=[
    {
        "scaling_adjustment": -1,
        "metric_interval_lower_bound": "1",
        "metric_interval_upper_bound": "2",
    },
    {
        "scaling_adjustment": 1,
        "metric_interval_lower_bound": "2",
        "metric_interval_upper_bound": "3",
    },
])
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Aws = Pulumi.Aws;

return await Deployment.RunAsync(() => 
{
    var example = new Aws.AutoScaling.Policy("example", new()
    {
        StepAdjustments = new[]
        {
            new Aws.AutoScaling.Inputs.PolicyStepAdjustmentArgs
            {
                ScalingAdjustment = -1,
                MetricIntervalLowerBound = "1",
                MetricIntervalUpperBound = "2",
            },
            new Aws.AutoScaling.Inputs.PolicyStepAdjustmentArgs
            {
                ScalingAdjustment = 1,
                MetricIntervalLowerBound = "2",
                MetricIntervalUpperBound = "3",
            },
        },
    });

});
package main

import (
	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/autoscaling"
	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := autoscaling.NewPolicy(ctx, "example", &autoscaling.PolicyArgs{
			StepAdjustments: autoscaling.PolicyStepAdjustmentArray{
				&autoscaling.PolicyStepAdjustmentArgs{
					ScalingAdjustment:        pulumi.Int(-1),
					MetricIntervalLowerBound: pulumi.String("1"),
					MetricIntervalUpperBound: pulumi.String("2"),
				},
				&autoscaling.PolicyStepAdjustmentArgs{
					ScalingAdjustment:        pulumi.Int(1),
					MetricIntervalLowerBound: pulumi.String("2"),
					MetricIntervalUpperBound: pulumi.String("3"),
				},
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}
package generated_program;

import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.aws.autoscaling.Policy;
import com.pulumi.aws.autoscaling.PolicyArgs;
import com.pulumi.aws.autoscaling.inputs.PolicyStepAdjustmentArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;

public class App {
    public static void main(String[] args) {
        Pulumi.run(App::stack);
    }

    public static void stack(Context ctx) {
        var example = new Policy("example", PolicyArgs.builder()
            .stepAdjustments(            
                PolicyStepAdjustmentArgs.builder()
                    .scalingAdjustment(-1)
                    .metricIntervalLowerBound(1)
                    .metricIntervalUpperBound(2)
                    .build(),
                PolicyStepAdjustmentArgs.builder()
                    .scalingAdjustment(1)
                    .metricIntervalLowerBound(2)
                    .metricIntervalUpperBound(3)
                    .build())
            .build());

    }
}
resources:
  example:
    type: aws:autoscaling:Policy
    properties:
      stepAdjustments:
        - scalingAdjustment: -1
          metricIntervalLowerBound: 1
          metricIntervalUpperBound: 2
        - scalingAdjustment: 1
          metricIntervalLowerBound: 2
          metricIntervalUpperBound: 3

The following fields are available in step adjustments:

targetTrackingConfiguration PolicyTargetTrackingConfiguration

Target tracking policy. These have the following structure:

import * as pulumi from "@pulumi/pulumi";
import * as aws from "@pulumi/aws";

const example = new aws.autoscaling.Policy("example", {targetTrackingConfiguration: { predefinedMetricSpecification: { predefinedMetricType: "ASGAverageCPUUtilization", }, targetValue: 40, }});

import pulumi
import pulumi_aws as aws

example = aws.autoscaling.Policy("example", target_tracking_configuration={
    "predefined_metric_specification": {
        "predefined_metric_type": "ASGAverageCPUUtilization",
    },
    "target_value": 40,
})
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Aws = Pulumi.Aws;

return await Deployment.RunAsync(() => 
{
    var example = new Aws.AutoScaling.Policy("example", new()
    {
        TargetTrackingConfiguration = new Aws.AutoScaling.Inputs.PolicyTargetTrackingConfigurationArgs
        {
            PredefinedMetricSpecification = new Aws.AutoScaling.Inputs.PolicyTargetTrackingConfigurationPredefinedMetricSpecificationArgs
            {
                PredefinedMetricType = "ASGAverageCPUUtilization",
            },
            TargetValue = 40,
        },
    });

});
package main

import (
	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/autoscaling"
	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := autoscaling.NewPolicy(ctx, "example", &autoscaling.PolicyArgs{
			TargetTrackingConfiguration: &autoscaling.PolicyTargetTrackingConfigurationArgs{
				PredefinedMetricSpecification: &autoscaling.PolicyTargetTrackingConfigurationPredefinedMetricSpecificationArgs{
					PredefinedMetricType: pulumi.String("ASGAverageCPUUtilization"),
				},
				TargetValue: pulumi.Float64(40),
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}
package generated_program;

import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.aws.autoscaling.Policy;
import com.pulumi.aws.autoscaling.PolicyArgs;
import com.pulumi.aws.autoscaling.inputs.PolicyTargetTrackingConfigurationArgs;
import com.pulumi.aws.autoscaling.inputs.PolicyTargetTrackingConfigurationPredefinedMetricSpecificationArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;

public class App {
    public static void main(String[] args) {
        Pulumi.run(App::stack);
    }

    public static void stack(Context ctx) {
        var example = new Policy("example", PolicyArgs.builder()
            .targetTrackingConfiguration(PolicyTargetTrackingConfigurationArgs.builder()
                .predefinedMetricSpecification(PolicyTargetTrackingConfigurationPredefinedMetricSpecificationArgs.builder()
                    .predefinedMetricType("ASGAverageCPUUtilization")
                    .build())
                .targetValue(40)
                .build())
            .build());

    }
}
resources:
  example:
    type: aws:autoscaling:Policy
    properties:
      targetTrackingConfiguration:
        predefinedMetricSpecification:
          predefinedMetricType: ASGAverageCPUUtilization
        targetValue: 40

The following fields are available in target tracking configuration:

autoscalingGroupName
This property is required.
Changes to this property will trigger replacement.
string
Name of the autoscaling group.
adjustmentType string
Whether the adjustment is an absolute number or a percentage of the current capacity. Valid values are ChangeInCapacity, ExactCapacity, and PercentChangeInCapacity.
cooldown number
Amount of time, in seconds, after a scaling activity completes and before the next scaling activity can start.
enabled boolean

Whether the scaling policy is enabled or disabled. Default: true.

The following argument is only available to "SimpleScaling" and "StepScaling" type policies:

estimatedInstanceWarmup number
Estimated time, in seconds, until a newly launched instance will contribute CloudWatch metrics. Without a value, AWS will default to the group's specified cooldown period.
metricAggregationType string
Aggregation type for the policy's metrics. Valid values are "Minimum", "Maximum", and "Average". Without a value, AWS will treat the aggregation type as "Average".
minAdjustmentMagnitude number

Minimum value to scale by when adjustment_type is set to PercentChangeInCapacity.

The following arguments are only available to "SimpleScaling" type policies:

name Changes to this property will trigger replacement. string
Name of the policy.
policyType string
Policy type, either "SimpleScaling", "StepScaling", "TargetTrackingScaling", or "PredictiveScaling". If this value isn't provided, AWS will default to "SimpleScaling."
predictiveScalingConfiguration PolicyPredictiveScalingConfiguration
Predictive scaling policy configuration to use with Amazon EC2 Auto Scaling.
scalingAdjustment number
Number of members by which to scale, when the adjustment bounds are breached. A positive value scales up. A negative value scales down.
stepAdjustments PolicyStepAdjustment[]

Set of adjustments that manage group scaling. These have the following structure:

import * as pulumi from "@pulumi/pulumi";
import * as aws from "@pulumi/aws";

const example = new aws.autoscaling.Policy("example", {stepAdjustments: [ { scalingAdjustment: -1, metricIntervalLowerBound: "1", metricIntervalUpperBound: "2", }, { scalingAdjustment: 1, metricIntervalLowerBound: "2", metricIntervalUpperBound: "3", }, ]});

import pulumi
import pulumi_aws as aws

example = aws.autoscaling.Policy("example", step_adjustments=[
    {
        "scaling_adjustment": -1,
        "metric_interval_lower_bound": "1",
        "metric_interval_upper_bound": "2",
    },
    {
        "scaling_adjustment": 1,
        "metric_interval_lower_bound": "2",
        "metric_interval_upper_bound": "3",
    },
])
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Aws = Pulumi.Aws;

return await Deployment.RunAsync(() => 
{
    var example = new Aws.AutoScaling.Policy("example", new()
    {
        StepAdjustments = new[]
        {
            new Aws.AutoScaling.Inputs.PolicyStepAdjustmentArgs
            {
                ScalingAdjustment = -1,
                MetricIntervalLowerBound = "1",
                MetricIntervalUpperBound = "2",
            },
            new Aws.AutoScaling.Inputs.PolicyStepAdjustmentArgs
            {
                ScalingAdjustment = 1,
                MetricIntervalLowerBound = "2",
                MetricIntervalUpperBound = "3",
            },
        },
    });

});
package main

import (
	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/autoscaling"
	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := autoscaling.NewPolicy(ctx, "example", &autoscaling.PolicyArgs{
			StepAdjustments: autoscaling.PolicyStepAdjustmentArray{
				&autoscaling.PolicyStepAdjustmentArgs{
					ScalingAdjustment:        pulumi.Int(-1),
					MetricIntervalLowerBound: pulumi.String("1"),
					MetricIntervalUpperBound: pulumi.String("2"),
				},
				&autoscaling.PolicyStepAdjustmentArgs{
					ScalingAdjustment:        pulumi.Int(1),
					MetricIntervalLowerBound: pulumi.String("2"),
					MetricIntervalUpperBound: pulumi.String("3"),
				},
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}
package generated_program;

import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.aws.autoscaling.Policy;
import com.pulumi.aws.autoscaling.PolicyArgs;
import com.pulumi.aws.autoscaling.inputs.PolicyStepAdjustmentArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;

public class App {
    public static void main(String[] args) {
        Pulumi.run(App::stack);
    }

    public static void stack(Context ctx) {
        var example = new Policy("example", PolicyArgs.builder()
            .stepAdjustments(            
                PolicyStepAdjustmentArgs.builder()
                    .scalingAdjustment(-1)
                    .metricIntervalLowerBound(1)
                    .metricIntervalUpperBound(2)
                    .build(),
                PolicyStepAdjustmentArgs.builder()
                    .scalingAdjustment(1)
                    .metricIntervalLowerBound(2)
                    .metricIntervalUpperBound(3)
                    .build())
            .build());

    }
}
resources:
  example:
    type: aws:autoscaling:Policy
    properties:
      stepAdjustments:
        - scalingAdjustment: -1
          metricIntervalLowerBound: 1
          metricIntervalUpperBound: 2
        - scalingAdjustment: 1
          metricIntervalLowerBound: 2
          metricIntervalUpperBound: 3

The following fields are available in step adjustments:

targetTrackingConfiguration PolicyTargetTrackingConfiguration

Target tracking policy. These have the following structure:

import * as pulumi from "@pulumi/pulumi";
import * as aws from "@pulumi/aws";

const example = new aws.autoscaling.Policy("example", {targetTrackingConfiguration: { predefinedMetricSpecification: { predefinedMetricType: "ASGAverageCPUUtilization", }, targetValue: 40, }});

import pulumi
import pulumi_aws as aws

example = aws.autoscaling.Policy("example", target_tracking_configuration={
    "predefined_metric_specification": {
        "predefined_metric_type": "ASGAverageCPUUtilization",
    },
    "target_value": 40,
})
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Aws = Pulumi.Aws;

return await Deployment.RunAsync(() => 
{
    var example = new Aws.AutoScaling.Policy("example", new()
    {
        TargetTrackingConfiguration = new Aws.AutoScaling.Inputs.PolicyTargetTrackingConfigurationArgs
        {
            PredefinedMetricSpecification = new Aws.AutoScaling.Inputs.PolicyTargetTrackingConfigurationPredefinedMetricSpecificationArgs
            {
                PredefinedMetricType = "ASGAverageCPUUtilization",
            },
            TargetValue = 40,
        },
    });

});
package main

import (
	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/autoscaling"
	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := autoscaling.NewPolicy(ctx, "example", &autoscaling.PolicyArgs{
			TargetTrackingConfiguration: &autoscaling.PolicyTargetTrackingConfigurationArgs{
				PredefinedMetricSpecification: &autoscaling.PolicyTargetTrackingConfigurationPredefinedMetricSpecificationArgs{
					PredefinedMetricType: pulumi.String("ASGAverageCPUUtilization"),
				},
				TargetValue: pulumi.Float64(40),
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}
package generated_program;

import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.aws.autoscaling.Policy;
import com.pulumi.aws.autoscaling.PolicyArgs;
import com.pulumi.aws.autoscaling.inputs.PolicyTargetTrackingConfigurationArgs;
import com.pulumi.aws.autoscaling.inputs.PolicyTargetTrackingConfigurationPredefinedMetricSpecificationArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;

public class App {
    public static void main(String[] args) {
        Pulumi.run(App::stack);
    }

    public static void stack(Context ctx) {
        var example = new Policy("example", PolicyArgs.builder()
            .targetTrackingConfiguration(PolicyTargetTrackingConfigurationArgs.builder()
                .predefinedMetricSpecification(PolicyTargetTrackingConfigurationPredefinedMetricSpecificationArgs.builder()
                    .predefinedMetricType("ASGAverageCPUUtilization")
                    .build())
                .targetValue(40)
                .build())
            .build());

    }
}
resources:
  example:
    type: aws:autoscaling:Policy
    properties:
      targetTrackingConfiguration:
        predefinedMetricSpecification:
          predefinedMetricType: ASGAverageCPUUtilization
        targetValue: 40

The following fields are available in target tracking configuration:

autoscaling_group_name
This property is required.
Changes to this property will trigger replacement.
str
Name of the autoscaling group.
adjustment_type str
Whether the adjustment is an absolute number or a percentage of the current capacity. Valid values are ChangeInCapacity, ExactCapacity, and PercentChangeInCapacity.
cooldown int
Amount of time, in seconds, after a scaling activity completes and before the next scaling activity can start.
enabled bool

Whether the scaling policy is enabled or disabled. Default: true.

The following argument is only available to "SimpleScaling" and "StepScaling" type policies:

estimated_instance_warmup int
Estimated time, in seconds, until a newly launched instance will contribute CloudWatch metrics. Without a value, AWS will default to the group's specified cooldown period.
metric_aggregation_type str
Aggregation type for the policy's metrics. Valid values are "Minimum", "Maximum", and "Average". Without a value, AWS will treat the aggregation type as "Average".
min_adjustment_magnitude int

Minimum value to scale by when adjustment_type is set to PercentChangeInCapacity.

The following arguments are only available to "SimpleScaling" type policies:

name Changes to this property will trigger replacement. str
Name of the policy.
policy_type str
Policy type, either "SimpleScaling", "StepScaling", "TargetTrackingScaling", or "PredictiveScaling". If this value isn't provided, AWS will default to "SimpleScaling."
predictive_scaling_configuration PolicyPredictiveScalingConfigurationArgs
Predictive scaling policy configuration to use with Amazon EC2 Auto Scaling.
scaling_adjustment int
Number of members by which to scale, when the adjustment bounds are breached. A positive value scales up. A negative value scales down.
step_adjustments Sequence[PolicyStepAdjustmentArgs]

Set of adjustments that manage group scaling. These have the following structure:

import * as pulumi from "@pulumi/pulumi";
import * as aws from "@pulumi/aws";

const example = new aws.autoscaling.Policy("example", {stepAdjustments: [ { scalingAdjustment: -1, metricIntervalLowerBound: "1", metricIntervalUpperBound: "2", }, { scalingAdjustment: 1, metricIntervalLowerBound: "2", metricIntervalUpperBound: "3", }, ]});

import pulumi
import pulumi_aws as aws

example = aws.autoscaling.Policy("example", step_adjustments=[
    {
        "scaling_adjustment": -1,
        "metric_interval_lower_bound": "1",
        "metric_interval_upper_bound": "2",
    },
    {
        "scaling_adjustment": 1,
        "metric_interval_lower_bound": "2",
        "metric_interval_upper_bound": "3",
    },
])
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Aws = Pulumi.Aws;

return await Deployment.RunAsync(() => 
{
    var example = new Aws.AutoScaling.Policy("example", new()
    {
        StepAdjustments = new[]
        {
            new Aws.AutoScaling.Inputs.PolicyStepAdjustmentArgs
            {
                ScalingAdjustment = -1,
                MetricIntervalLowerBound = "1",
                MetricIntervalUpperBound = "2",
            },
            new Aws.AutoScaling.Inputs.PolicyStepAdjustmentArgs
            {
                ScalingAdjustment = 1,
                MetricIntervalLowerBound = "2",
                MetricIntervalUpperBound = "3",
            },
        },
    });

});
package main

import (
	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/autoscaling"
	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := autoscaling.NewPolicy(ctx, "example", &autoscaling.PolicyArgs{
			StepAdjustments: autoscaling.PolicyStepAdjustmentArray{
				&autoscaling.PolicyStepAdjustmentArgs{
					ScalingAdjustment:        pulumi.Int(-1),
					MetricIntervalLowerBound: pulumi.String("1"),
					MetricIntervalUpperBound: pulumi.String("2"),
				},
				&autoscaling.PolicyStepAdjustmentArgs{
					ScalingAdjustment:        pulumi.Int(1),
					MetricIntervalLowerBound: pulumi.String("2"),
					MetricIntervalUpperBound: pulumi.String("3"),
				},
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}
package generated_program;

import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.aws.autoscaling.Policy;
import com.pulumi.aws.autoscaling.PolicyArgs;
import com.pulumi.aws.autoscaling.inputs.PolicyStepAdjustmentArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;

public class App {
    public static void main(String[] args) {
        Pulumi.run(App::stack);
    }

    public static void stack(Context ctx) {
        var example = new Policy("example", PolicyArgs.builder()
            .stepAdjustments(            
                PolicyStepAdjustmentArgs.builder()
                    .scalingAdjustment(-1)
                    .metricIntervalLowerBound(1)
                    .metricIntervalUpperBound(2)
                    .build(),
                PolicyStepAdjustmentArgs.builder()
                    .scalingAdjustment(1)
                    .metricIntervalLowerBound(2)
                    .metricIntervalUpperBound(3)
                    .build())
            .build());

    }
}
resources:
  example:
    type: aws:autoscaling:Policy
    properties:
      stepAdjustments:
        - scalingAdjustment: -1
          metricIntervalLowerBound: 1
          metricIntervalUpperBound: 2
        - scalingAdjustment: 1
          metricIntervalLowerBound: 2
          metricIntervalUpperBound: 3

The following fields are available in step adjustments:

target_tracking_configuration PolicyTargetTrackingConfigurationArgs

Target tracking policy. These have the following structure:

import * as pulumi from "@pulumi/pulumi";
import * as aws from "@pulumi/aws";

const example = new aws.autoscaling.Policy("example", {targetTrackingConfiguration: { predefinedMetricSpecification: { predefinedMetricType: "ASGAverageCPUUtilization", }, targetValue: 40, }});

import pulumi
import pulumi_aws as aws

example = aws.autoscaling.Policy("example", target_tracking_configuration={
    "predefined_metric_specification": {
        "predefined_metric_type": "ASGAverageCPUUtilization",
    },
    "target_value": 40,
})
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Aws = Pulumi.Aws;

return await Deployment.RunAsync(() => 
{
    var example = new Aws.AutoScaling.Policy("example", new()
    {
        TargetTrackingConfiguration = new Aws.AutoScaling.Inputs.PolicyTargetTrackingConfigurationArgs
        {
            PredefinedMetricSpecification = new Aws.AutoScaling.Inputs.PolicyTargetTrackingConfigurationPredefinedMetricSpecificationArgs
            {
                PredefinedMetricType = "ASGAverageCPUUtilization",
            },
            TargetValue = 40,
        },
    });

});
package main

import (
	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/autoscaling"
	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := autoscaling.NewPolicy(ctx, "example", &autoscaling.PolicyArgs{
			TargetTrackingConfiguration: &autoscaling.PolicyTargetTrackingConfigurationArgs{
				PredefinedMetricSpecification: &autoscaling.PolicyTargetTrackingConfigurationPredefinedMetricSpecificationArgs{
					PredefinedMetricType: pulumi.String("ASGAverageCPUUtilization"),
				},
				TargetValue: pulumi.Float64(40),
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}
package generated_program;

import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.aws.autoscaling.Policy;
import com.pulumi.aws.autoscaling.PolicyArgs;
import com.pulumi.aws.autoscaling.inputs.PolicyTargetTrackingConfigurationArgs;
import com.pulumi.aws.autoscaling.inputs.PolicyTargetTrackingConfigurationPredefinedMetricSpecificationArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;

public class App {
    public static void main(String[] args) {
        Pulumi.run(App::stack);
    }

    public static void stack(Context ctx) {
        var example = new Policy("example", PolicyArgs.builder()
            .targetTrackingConfiguration(PolicyTargetTrackingConfigurationArgs.builder()
                .predefinedMetricSpecification(PolicyTargetTrackingConfigurationPredefinedMetricSpecificationArgs.builder()
                    .predefinedMetricType("ASGAverageCPUUtilization")
                    .build())
                .targetValue(40)
                .build())
            .build());

    }
}
resources:
  example:
    type: aws:autoscaling:Policy
    properties:
      targetTrackingConfiguration:
        predefinedMetricSpecification:
          predefinedMetricType: ASGAverageCPUUtilization
        targetValue: 40

The following fields are available in target tracking configuration:

autoscalingGroupName
This property is required.
Changes to this property will trigger replacement.
String
Name of the autoscaling group.
adjustmentType String
Whether the adjustment is an absolute number or a percentage of the current capacity. Valid values are ChangeInCapacity, ExactCapacity, and PercentChangeInCapacity.
cooldown Number
Amount of time, in seconds, after a scaling activity completes and before the next scaling activity can start.
enabled Boolean

Whether the scaling policy is enabled or disabled. Default: true.

The following argument is only available to "SimpleScaling" and "StepScaling" type policies:

estimatedInstanceWarmup Number
Estimated time, in seconds, until a newly launched instance will contribute CloudWatch metrics. Without a value, AWS will default to the group's specified cooldown period.
metricAggregationType String
Aggregation type for the policy's metrics. Valid values are "Minimum", "Maximum", and "Average". Without a value, AWS will treat the aggregation type as "Average".
minAdjustmentMagnitude Number

Minimum value to scale by when adjustment_type is set to PercentChangeInCapacity.

The following arguments are only available to "SimpleScaling" type policies:

name Changes to this property will trigger replacement. String
Name of the policy.
policyType String
Policy type, either "SimpleScaling", "StepScaling", "TargetTrackingScaling", or "PredictiveScaling". If this value isn't provided, AWS will default to "SimpleScaling."
predictiveScalingConfiguration Property Map
Predictive scaling policy configuration to use with Amazon EC2 Auto Scaling.
scalingAdjustment Number
Number of members by which to scale, when the adjustment bounds are breached. A positive value scales up. A negative value scales down.
stepAdjustments List<Property Map>

Set of adjustments that manage group scaling. These have the following structure:

import * as pulumi from "@pulumi/pulumi";
import * as aws from "@pulumi/aws";

const example = new aws.autoscaling.Policy("example", {stepAdjustments: [ { scalingAdjustment: -1, metricIntervalLowerBound: "1", metricIntervalUpperBound: "2", }, { scalingAdjustment: 1, metricIntervalLowerBound: "2", metricIntervalUpperBound: "3", }, ]});

import pulumi
import pulumi_aws as aws

example = aws.autoscaling.Policy("example", step_adjustments=[
    {
        "scaling_adjustment": -1,
        "metric_interval_lower_bound": "1",
        "metric_interval_upper_bound": "2",
    },
    {
        "scaling_adjustment": 1,
        "metric_interval_lower_bound": "2",
        "metric_interval_upper_bound": "3",
    },
])
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Aws = Pulumi.Aws;

return await Deployment.RunAsync(() => 
{
    var example = new Aws.AutoScaling.Policy("example", new()
    {
        StepAdjustments = new[]
        {
            new Aws.AutoScaling.Inputs.PolicyStepAdjustmentArgs
            {
                ScalingAdjustment = -1,
                MetricIntervalLowerBound = "1",
                MetricIntervalUpperBound = "2",
            },
            new Aws.AutoScaling.Inputs.PolicyStepAdjustmentArgs
            {
                ScalingAdjustment = 1,
                MetricIntervalLowerBound = "2",
                MetricIntervalUpperBound = "3",
            },
        },
    });

});
package main

import (
	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/autoscaling"
	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := autoscaling.NewPolicy(ctx, "example", &autoscaling.PolicyArgs{
			StepAdjustments: autoscaling.PolicyStepAdjustmentArray{
				&autoscaling.PolicyStepAdjustmentArgs{
					ScalingAdjustment:        pulumi.Int(-1),
					MetricIntervalLowerBound: pulumi.String("1"),
					MetricIntervalUpperBound: pulumi.String("2"),
				},
				&autoscaling.PolicyStepAdjustmentArgs{
					ScalingAdjustment:        pulumi.Int(1),
					MetricIntervalLowerBound: pulumi.String("2"),
					MetricIntervalUpperBound: pulumi.String("3"),
				},
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}
package generated_program;

import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.aws.autoscaling.Policy;
import com.pulumi.aws.autoscaling.PolicyArgs;
import com.pulumi.aws.autoscaling.inputs.PolicyStepAdjustmentArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;

public class App {
    public static void main(String[] args) {
        Pulumi.run(App::stack);
    }

    public static void stack(Context ctx) {
        var example = new Policy("example", PolicyArgs.builder()
            .stepAdjustments(            
                PolicyStepAdjustmentArgs.builder()
                    .scalingAdjustment(-1)
                    .metricIntervalLowerBound(1)
                    .metricIntervalUpperBound(2)
                    .build(),
                PolicyStepAdjustmentArgs.builder()
                    .scalingAdjustment(1)
                    .metricIntervalLowerBound(2)
                    .metricIntervalUpperBound(3)
                    .build())
            .build());

    }
}
resources:
  example:
    type: aws:autoscaling:Policy
    properties:
      stepAdjustments:
        - scalingAdjustment: -1
          metricIntervalLowerBound: 1
          metricIntervalUpperBound: 2
        - scalingAdjustment: 1
          metricIntervalLowerBound: 2
          metricIntervalUpperBound: 3

The following fields are available in step adjustments:

targetTrackingConfiguration Property Map

Target tracking policy. These have the following structure:

import * as pulumi from "@pulumi/pulumi";
import * as aws from "@pulumi/aws";

const example = new aws.autoscaling.Policy("example", {targetTrackingConfiguration: { predefinedMetricSpecification: { predefinedMetricType: "ASGAverageCPUUtilization", }, targetValue: 40, }});

import pulumi
import pulumi_aws as aws

example = aws.autoscaling.Policy("example", target_tracking_configuration={
    "predefined_metric_specification": {
        "predefined_metric_type": "ASGAverageCPUUtilization",
    },
    "target_value": 40,
})
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Aws = Pulumi.Aws;

return await Deployment.RunAsync(() => 
{
    var example = new Aws.AutoScaling.Policy("example", new()
    {
        TargetTrackingConfiguration = new Aws.AutoScaling.Inputs.PolicyTargetTrackingConfigurationArgs
        {
            PredefinedMetricSpecification = new Aws.AutoScaling.Inputs.PolicyTargetTrackingConfigurationPredefinedMetricSpecificationArgs
            {
                PredefinedMetricType = "ASGAverageCPUUtilization",
            },
            TargetValue = 40,
        },
    });

});
package main

import (
	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/autoscaling"
	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := autoscaling.NewPolicy(ctx, "example", &autoscaling.PolicyArgs{
			TargetTrackingConfiguration: &autoscaling.PolicyTargetTrackingConfigurationArgs{
				PredefinedMetricSpecification: &autoscaling.PolicyTargetTrackingConfigurationPredefinedMetricSpecificationArgs{
					PredefinedMetricType: pulumi.String("ASGAverageCPUUtilization"),
				},
				TargetValue: pulumi.Float64(40),
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}
package generated_program;

import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.aws.autoscaling.Policy;
import com.pulumi.aws.autoscaling.PolicyArgs;
import com.pulumi.aws.autoscaling.inputs.PolicyTargetTrackingConfigurationArgs;
import com.pulumi.aws.autoscaling.inputs.PolicyTargetTrackingConfigurationPredefinedMetricSpecificationArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;

public class App {
    public static void main(String[] args) {
        Pulumi.run(App::stack);
    }

    public static void stack(Context ctx) {
        var example = new Policy("example", PolicyArgs.builder()
            .targetTrackingConfiguration(PolicyTargetTrackingConfigurationArgs.builder()
                .predefinedMetricSpecification(PolicyTargetTrackingConfigurationPredefinedMetricSpecificationArgs.builder()
                    .predefinedMetricType("ASGAverageCPUUtilization")
                    .build())
                .targetValue(40)
                .build())
            .build());

    }
}
resources:
  example:
    type: aws:autoscaling:Policy
    properties:
      targetTrackingConfiguration:
        predefinedMetricSpecification:
          predefinedMetricType: ASGAverageCPUUtilization
        targetValue: 40

The following fields are available in target tracking configuration:

Outputs

All input properties are implicitly available as output properties. Additionally, the Policy resource produces the following output properties:

Arn string
ARN assigned by AWS to the scaling policy.
Id string
The provider-assigned unique ID for this managed resource.
Arn string
ARN assigned by AWS to the scaling policy.
Id string
The provider-assigned unique ID for this managed resource.
arn String
ARN assigned by AWS to the scaling policy.
id String
The provider-assigned unique ID for this managed resource.
arn string
ARN assigned by AWS to the scaling policy.
id string
The provider-assigned unique ID for this managed resource.
arn str
ARN assigned by AWS to the scaling policy.
id str
The provider-assigned unique ID for this managed resource.
arn String
ARN assigned by AWS to the scaling policy.
id String
The provider-assigned unique ID for this managed resource.

Look up Existing Policy Resource

Get an existing Policy resource’s state with the given name, ID, and optional extra properties used to qualify the lookup.

public static get(name: string, id: Input<ID>, state?: PolicyState, opts?: CustomResourceOptions): Policy
@staticmethod
def get(resource_name: str,
        id: str,
        opts: Optional[ResourceOptions] = None,
        adjustment_type: Optional[str] = None,
        arn: Optional[str] = None,
        autoscaling_group_name: Optional[str] = None,
        cooldown: Optional[int] = None,
        enabled: Optional[bool] = None,
        estimated_instance_warmup: Optional[int] = None,
        metric_aggregation_type: Optional[str] = None,
        min_adjustment_magnitude: Optional[int] = None,
        name: Optional[str] = None,
        policy_type: Optional[str] = None,
        predictive_scaling_configuration: Optional[PolicyPredictiveScalingConfigurationArgs] = None,
        scaling_adjustment: Optional[int] = None,
        step_adjustments: Optional[Sequence[PolicyStepAdjustmentArgs]] = None,
        target_tracking_configuration: Optional[PolicyTargetTrackingConfigurationArgs] = None) -> Policy
func GetPolicy(ctx *Context, name string, id IDInput, state *PolicyState, opts ...ResourceOption) (*Policy, error)
public static Policy Get(string name, Input<string> id, PolicyState? state, CustomResourceOptions? opts = null)
public static Policy get(String name, Output<String> id, PolicyState state, CustomResourceOptions options)
resources:  _:    type: aws:autoscaling:Policy    get:      id: ${id}
name This property is required.
The unique name of the resulting resource.
id This property is required.
The unique provider ID of the resource to lookup.
state
Any extra arguments used during the lookup.
opts
A bag of options that control this resource's behavior.
resource_name This property is required.
The unique name of the resulting resource.
id This property is required.
The unique provider ID of the resource to lookup.
name This property is required.
The unique name of the resulting resource.
id This property is required.
The unique provider ID of the resource to lookup.
state
Any extra arguments used during the lookup.
opts
A bag of options that control this resource's behavior.
name This property is required.
The unique name of the resulting resource.
id This property is required.
The unique provider ID of the resource to lookup.
state
Any extra arguments used during the lookup.
opts
A bag of options that control this resource's behavior.
name This property is required.
The unique name of the resulting resource.
id This property is required.
The unique provider ID of the resource to lookup.
state
Any extra arguments used during the lookup.
opts
A bag of options that control this resource's behavior.
The following state arguments are supported:
AdjustmentType string
Whether the adjustment is an absolute number or a percentage of the current capacity. Valid values are ChangeInCapacity, ExactCapacity, and PercentChangeInCapacity.
Arn string
ARN assigned by AWS to the scaling policy.
AutoscalingGroupName Changes to this property will trigger replacement. string
Name of the autoscaling group.
Cooldown int
Amount of time, in seconds, after a scaling activity completes and before the next scaling activity can start.
Enabled bool

Whether the scaling policy is enabled or disabled. Default: true.

The following argument is only available to "SimpleScaling" and "StepScaling" type policies:

EstimatedInstanceWarmup int
Estimated time, in seconds, until a newly launched instance will contribute CloudWatch metrics. Without a value, AWS will default to the group's specified cooldown period.
MetricAggregationType string
Aggregation type for the policy's metrics. Valid values are "Minimum", "Maximum", and "Average". Without a value, AWS will treat the aggregation type as "Average".
MinAdjustmentMagnitude int

Minimum value to scale by when adjustment_type is set to PercentChangeInCapacity.

The following arguments are only available to "SimpleScaling" type policies:

Name Changes to this property will trigger replacement. string
Name of the policy.
PolicyType string
Policy type, either "SimpleScaling", "StepScaling", "TargetTrackingScaling", or "PredictiveScaling". If this value isn't provided, AWS will default to "SimpleScaling."
PredictiveScalingConfiguration PolicyPredictiveScalingConfiguration
Predictive scaling policy configuration to use with Amazon EC2 Auto Scaling.
ScalingAdjustment int
Number of members by which to scale, when the adjustment bounds are breached. A positive value scales up. A negative value scales down.
StepAdjustments List<PolicyStepAdjustment>

Set of adjustments that manage group scaling. These have the following structure:

import * as pulumi from "@pulumi/pulumi";
import * as aws from "@pulumi/aws";

const example = new aws.autoscaling.Policy("example", {stepAdjustments: [ { scalingAdjustment: -1, metricIntervalLowerBound: "1", metricIntervalUpperBound: "2", }, { scalingAdjustment: 1, metricIntervalLowerBound: "2", metricIntervalUpperBound: "3", }, ]});

import pulumi
import pulumi_aws as aws

example = aws.autoscaling.Policy("example", step_adjustments=[
    {
        "scaling_adjustment": -1,
        "metric_interval_lower_bound": "1",
        "metric_interval_upper_bound": "2",
    },
    {
        "scaling_adjustment": 1,
        "metric_interval_lower_bound": "2",
        "metric_interval_upper_bound": "3",
    },
])
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Aws = Pulumi.Aws;

return await Deployment.RunAsync(() => 
{
    var example = new Aws.AutoScaling.Policy("example", new()
    {
        StepAdjustments = new[]
        {
            new Aws.AutoScaling.Inputs.PolicyStepAdjustmentArgs
            {
                ScalingAdjustment = -1,
                MetricIntervalLowerBound = "1",
                MetricIntervalUpperBound = "2",
            },
            new Aws.AutoScaling.Inputs.PolicyStepAdjustmentArgs
            {
                ScalingAdjustment = 1,
                MetricIntervalLowerBound = "2",
                MetricIntervalUpperBound = "3",
            },
        },
    });

});
package main

import (
	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/autoscaling"
	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := autoscaling.NewPolicy(ctx, "example", &autoscaling.PolicyArgs{
			StepAdjustments: autoscaling.PolicyStepAdjustmentArray{
				&autoscaling.PolicyStepAdjustmentArgs{
					ScalingAdjustment:        pulumi.Int(-1),
					MetricIntervalLowerBound: pulumi.String("1"),
					MetricIntervalUpperBound: pulumi.String("2"),
				},
				&autoscaling.PolicyStepAdjustmentArgs{
					ScalingAdjustment:        pulumi.Int(1),
					MetricIntervalLowerBound: pulumi.String("2"),
					MetricIntervalUpperBound: pulumi.String("3"),
				},
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}
package generated_program;

import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.aws.autoscaling.Policy;
import com.pulumi.aws.autoscaling.PolicyArgs;
import com.pulumi.aws.autoscaling.inputs.PolicyStepAdjustmentArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;

public class App {
    public static void main(String[] args) {
        Pulumi.run(App::stack);
    }

    public static void stack(Context ctx) {
        var example = new Policy("example", PolicyArgs.builder()
            .stepAdjustments(            
                PolicyStepAdjustmentArgs.builder()
                    .scalingAdjustment(-1)
                    .metricIntervalLowerBound(1)
                    .metricIntervalUpperBound(2)
                    .build(),
                PolicyStepAdjustmentArgs.builder()
                    .scalingAdjustment(1)
                    .metricIntervalLowerBound(2)
                    .metricIntervalUpperBound(3)
                    .build())
            .build());

    }
}
resources:
  example:
    type: aws:autoscaling:Policy
    properties:
      stepAdjustments:
        - scalingAdjustment: -1
          metricIntervalLowerBound: 1
          metricIntervalUpperBound: 2
        - scalingAdjustment: 1
          metricIntervalLowerBound: 2
          metricIntervalUpperBound: 3

The following fields are available in step adjustments:

TargetTrackingConfiguration PolicyTargetTrackingConfiguration

Target tracking policy. These have the following structure:

import * as pulumi from "@pulumi/pulumi";
import * as aws from "@pulumi/aws";

const example = new aws.autoscaling.Policy("example", {targetTrackingConfiguration: { predefinedMetricSpecification: { predefinedMetricType: "ASGAverageCPUUtilization", }, targetValue: 40, }});

import pulumi
import pulumi_aws as aws

example = aws.autoscaling.Policy("example", target_tracking_configuration={
    "predefined_metric_specification": {
        "predefined_metric_type": "ASGAverageCPUUtilization",
    },
    "target_value": 40,
})
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Aws = Pulumi.Aws;

return await Deployment.RunAsync(() => 
{
    var example = new Aws.AutoScaling.Policy("example", new()
    {
        TargetTrackingConfiguration = new Aws.AutoScaling.Inputs.PolicyTargetTrackingConfigurationArgs
        {
            PredefinedMetricSpecification = new Aws.AutoScaling.Inputs.PolicyTargetTrackingConfigurationPredefinedMetricSpecificationArgs
            {
                PredefinedMetricType = "ASGAverageCPUUtilization",
            },
            TargetValue = 40,
        },
    });

});
package main

import (
	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/autoscaling"
	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := autoscaling.NewPolicy(ctx, "example", &autoscaling.PolicyArgs{
			TargetTrackingConfiguration: &autoscaling.PolicyTargetTrackingConfigurationArgs{
				PredefinedMetricSpecification: &autoscaling.PolicyTargetTrackingConfigurationPredefinedMetricSpecificationArgs{
					PredefinedMetricType: pulumi.String("ASGAverageCPUUtilization"),
				},
				TargetValue: pulumi.Float64(40),
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}
package generated_program;

import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.aws.autoscaling.Policy;
import com.pulumi.aws.autoscaling.PolicyArgs;
import com.pulumi.aws.autoscaling.inputs.PolicyTargetTrackingConfigurationArgs;
import com.pulumi.aws.autoscaling.inputs.PolicyTargetTrackingConfigurationPredefinedMetricSpecificationArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;

public class App {
    public static void main(String[] args) {
        Pulumi.run(App::stack);
    }

    public static void stack(Context ctx) {
        var example = new Policy("example", PolicyArgs.builder()
            .targetTrackingConfiguration(PolicyTargetTrackingConfigurationArgs.builder()
                .predefinedMetricSpecification(PolicyTargetTrackingConfigurationPredefinedMetricSpecificationArgs.builder()
                    .predefinedMetricType("ASGAverageCPUUtilization")
                    .build())
                .targetValue(40)
                .build())
            .build());

    }
}
resources:
  example:
    type: aws:autoscaling:Policy
    properties:
      targetTrackingConfiguration:
        predefinedMetricSpecification:
          predefinedMetricType: ASGAverageCPUUtilization
        targetValue: 40

The following fields are available in target tracking configuration:

AdjustmentType string
Whether the adjustment is an absolute number or a percentage of the current capacity. Valid values are ChangeInCapacity, ExactCapacity, and PercentChangeInCapacity.
Arn string
ARN assigned by AWS to the scaling policy.
AutoscalingGroupName Changes to this property will trigger replacement. string
Name of the autoscaling group.
Cooldown int
Amount of time, in seconds, after a scaling activity completes and before the next scaling activity can start.
Enabled bool

Whether the scaling policy is enabled or disabled. Default: true.

The following argument is only available to "SimpleScaling" and "StepScaling" type policies:

EstimatedInstanceWarmup int
Estimated time, in seconds, until a newly launched instance will contribute CloudWatch metrics. Without a value, AWS will default to the group's specified cooldown period.
MetricAggregationType string
Aggregation type for the policy's metrics. Valid values are "Minimum", "Maximum", and "Average". Without a value, AWS will treat the aggregation type as "Average".
MinAdjustmentMagnitude int

Minimum value to scale by when adjustment_type is set to PercentChangeInCapacity.

The following arguments are only available to "SimpleScaling" type policies:

Name Changes to this property will trigger replacement. string
Name of the policy.
PolicyType string
Policy type, either "SimpleScaling", "StepScaling", "TargetTrackingScaling", or "PredictiveScaling". If this value isn't provided, AWS will default to "SimpleScaling."
PredictiveScalingConfiguration PolicyPredictiveScalingConfigurationArgs
Predictive scaling policy configuration to use with Amazon EC2 Auto Scaling.
ScalingAdjustment int
Number of members by which to scale, when the adjustment bounds are breached. A positive value scales up. A negative value scales down.
StepAdjustments []PolicyStepAdjustmentArgs

Set of adjustments that manage group scaling. These have the following structure:

import * as pulumi from "@pulumi/pulumi";
import * as aws from "@pulumi/aws";

const example = new aws.autoscaling.Policy("example", {stepAdjustments: [ { scalingAdjustment: -1, metricIntervalLowerBound: "1", metricIntervalUpperBound: "2", }, { scalingAdjustment: 1, metricIntervalLowerBound: "2", metricIntervalUpperBound: "3", }, ]});

import pulumi
import pulumi_aws as aws

example = aws.autoscaling.Policy("example", step_adjustments=[
    {
        "scaling_adjustment": -1,
        "metric_interval_lower_bound": "1",
        "metric_interval_upper_bound": "2",
    },
    {
        "scaling_adjustment": 1,
        "metric_interval_lower_bound": "2",
        "metric_interval_upper_bound": "3",
    },
])
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Aws = Pulumi.Aws;

return await Deployment.RunAsync(() => 
{
    var example = new Aws.AutoScaling.Policy("example", new()
    {
        StepAdjustments = new[]
        {
            new Aws.AutoScaling.Inputs.PolicyStepAdjustmentArgs
            {
                ScalingAdjustment = -1,
                MetricIntervalLowerBound = "1",
                MetricIntervalUpperBound = "2",
            },
            new Aws.AutoScaling.Inputs.PolicyStepAdjustmentArgs
            {
                ScalingAdjustment = 1,
                MetricIntervalLowerBound = "2",
                MetricIntervalUpperBound = "3",
            },
        },
    });

});
package main

import (
	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/autoscaling"
	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := autoscaling.NewPolicy(ctx, "example", &autoscaling.PolicyArgs{
			StepAdjustments: autoscaling.PolicyStepAdjustmentArray{
				&autoscaling.PolicyStepAdjustmentArgs{
					ScalingAdjustment:        pulumi.Int(-1),
					MetricIntervalLowerBound: pulumi.String("1"),
					MetricIntervalUpperBound: pulumi.String("2"),
				},
				&autoscaling.PolicyStepAdjustmentArgs{
					ScalingAdjustment:        pulumi.Int(1),
					MetricIntervalLowerBound: pulumi.String("2"),
					MetricIntervalUpperBound: pulumi.String("3"),
				},
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}
package generated_program;

import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.aws.autoscaling.Policy;
import com.pulumi.aws.autoscaling.PolicyArgs;
import com.pulumi.aws.autoscaling.inputs.PolicyStepAdjustmentArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;

public class App {
    public static void main(String[] args) {
        Pulumi.run(App::stack);
    }

    public static void stack(Context ctx) {
        var example = new Policy("example", PolicyArgs.builder()
            .stepAdjustments(            
                PolicyStepAdjustmentArgs.builder()
                    .scalingAdjustment(-1)
                    .metricIntervalLowerBound(1)
                    .metricIntervalUpperBound(2)
                    .build(),
                PolicyStepAdjustmentArgs.builder()
                    .scalingAdjustment(1)
                    .metricIntervalLowerBound(2)
                    .metricIntervalUpperBound(3)
                    .build())
            .build());

    }
}
resources:
  example:
    type: aws:autoscaling:Policy
    properties:
      stepAdjustments:
        - scalingAdjustment: -1
          metricIntervalLowerBound: 1
          metricIntervalUpperBound: 2
        - scalingAdjustment: 1
          metricIntervalLowerBound: 2
          metricIntervalUpperBound: 3

The following fields are available in step adjustments:

TargetTrackingConfiguration PolicyTargetTrackingConfigurationArgs

Target tracking policy. These have the following structure:

import * as pulumi from "@pulumi/pulumi";
import * as aws from "@pulumi/aws";

const example = new aws.autoscaling.Policy("example", {targetTrackingConfiguration: { predefinedMetricSpecification: { predefinedMetricType: "ASGAverageCPUUtilization", }, targetValue: 40, }});

import pulumi
import pulumi_aws as aws

example = aws.autoscaling.Policy("example", target_tracking_configuration={
    "predefined_metric_specification": {
        "predefined_metric_type": "ASGAverageCPUUtilization",
    },
    "target_value": 40,
})
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Aws = Pulumi.Aws;

return await Deployment.RunAsync(() => 
{
    var example = new Aws.AutoScaling.Policy("example", new()
    {
        TargetTrackingConfiguration = new Aws.AutoScaling.Inputs.PolicyTargetTrackingConfigurationArgs
        {
            PredefinedMetricSpecification = new Aws.AutoScaling.Inputs.PolicyTargetTrackingConfigurationPredefinedMetricSpecificationArgs
            {
                PredefinedMetricType = "ASGAverageCPUUtilization",
            },
            TargetValue = 40,
        },
    });

});
package main

import (
	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/autoscaling"
	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := autoscaling.NewPolicy(ctx, "example", &autoscaling.PolicyArgs{
			TargetTrackingConfiguration: &autoscaling.PolicyTargetTrackingConfigurationArgs{
				PredefinedMetricSpecification: &autoscaling.PolicyTargetTrackingConfigurationPredefinedMetricSpecificationArgs{
					PredefinedMetricType: pulumi.String("ASGAverageCPUUtilization"),
				},
				TargetValue: pulumi.Float64(40),
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}
package generated_program;

import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.aws.autoscaling.Policy;
import com.pulumi.aws.autoscaling.PolicyArgs;
import com.pulumi.aws.autoscaling.inputs.PolicyTargetTrackingConfigurationArgs;
import com.pulumi.aws.autoscaling.inputs.PolicyTargetTrackingConfigurationPredefinedMetricSpecificationArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;

public class App {
    public static void main(String[] args) {
        Pulumi.run(App::stack);
    }

    public static void stack(Context ctx) {
        var example = new Policy("example", PolicyArgs.builder()
            .targetTrackingConfiguration(PolicyTargetTrackingConfigurationArgs.builder()
                .predefinedMetricSpecification(PolicyTargetTrackingConfigurationPredefinedMetricSpecificationArgs.builder()
                    .predefinedMetricType("ASGAverageCPUUtilization")
                    .build())
                .targetValue(40)
                .build())
            .build());

    }
}
resources:
  example:
    type: aws:autoscaling:Policy
    properties:
      targetTrackingConfiguration:
        predefinedMetricSpecification:
          predefinedMetricType: ASGAverageCPUUtilization
        targetValue: 40

The following fields are available in target tracking configuration:

adjustmentType String
Whether the adjustment is an absolute number or a percentage of the current capacity. Valid values are ChangeInCapacity, ExactCapacity, and PercentChangeInCapacity.
arn String
ARN assigned by AWS to the scaling policy.
autoscalingGroupName Changes to this property will trigger replacement. String
Name of the autoscaling group.
cooldown Integer
Amount of time, in seconds, after a scaling activity completes and before the next scaling activity can start.
enabled Boolean

Whether the scaling policy is enabled or disabled. Default: true.

The following argument is only available to "SimpleScaling" and "StepScaling" type policies:

estimatedInstanceWarmup Integer
Estimated time, in seconds, until a newly launched instance will contribute CloudWatch metrics. Without a value, AWS will default to the group's specified cooldown period.
metricAggregationType String
Aggregation type for the policy's metrics. Valid values are "Minimum", "Maximum", and "Average". Without a value, AWS will treat the aggregation type as "Average".
minAdjustmentMagnitude Integer

Minimum value to scale by when adjustment_type is set to PercentChangeInCapacity.

The following arguments are only available to "SimpleScaling" type policies:

name Changes to this property will trigger replacement. String
Name of the policy.
policyType String
Policy type, either "SimpleScaling", "StepScaling", "TargetTrackingScaling", or "PredictiveScaling". If this value isn't provided, AWS will default to "SimpleScaling."
predictiveScalingConfiguration PolicyPredictiveScalingConfiguration
Predictive scaling policy configuration to use with Amazon EC2 Auto Scaling.
scalingAdjustment Integer
Number of members by which to scale, when the adjustment bounds are breached. A positive value scales up. A negative value scales down.
stepAdjustments List<PolicyStepAdjustment>

Set of adjustments that manage group scaling. These have the following structure:

import * as pulumi from "@pulumi/pulumi";
import * as aws from "@pulumi/aws";

const example = new aws.autoscaling.Policy("example", {stepAdjustments: [ { scalingAdjustment: -1, metricIntervalLowerBound: "1", metricIntervalUpperBound: "2", }, { scalingAdjustment: 1, metricIntervalLowerBound: "2", metricIntervalUpperBound: "3", }, ]});

import pulumi
import pulumi_aws as aws

example = aws.autoscaling.Policy("example", step_adjustments=[
    {
        "scaling_adjustment": -1,
        "metric_interval_lower_bound": "1",
        "metric_interval_upper_bound": "2",
    },
    {
        "scaling_adjustment": 1,
        "metric_interval_lower_bound": "2",
        "metric_interval_upper_bound": "3",
    },
])
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Aws = Pulumi.Aws;

return await Deployment.RunAsync(() => 
{
    var example = new Aws.AutoScaling.Policy("example", new()
    {
        StepAdjustments = new[]
        {
            new Aws.AutoScaling.Inputs.PolicyStepAdjustmentArgs
            {
                ScalingAdjustment = -1,
                MetricIntervalLowerBound = "1",
                MetricIntervalUpperBound = "2",
            },
            new Aws.AutoScaling.Inputs.PolicyStepAdjustmentArgs
            {
                ScalingAdjustment = 1,
                MetricIntervalLowerBound = "2",
                MetricIntervalUpperBound = "3",
            },
        },
    });

});
package main

import (
	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/autoscaling"
	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := autoscaling.NewPolicy(ctx, "example", &autoscaling.PolicyArgs{
			StepAdjustments: autoscaling.PolicyStepAdjustmentArray{
				&autoscaling.PolicyStepAdjustmentArgs{
					ScalingAdjustment:        pulumi.Int(-1),
					MetricIntervalLowerBound: pulumi.String("1"),
					MetricIntervalUpperBound: pulumi.String("2"),
				},
				&autoscaling.PolicyStepAdjustmentArgs{
					ScalingAdjustment:        pulumi.Int(1),
					MetricIntervalLowerBound: pulumi.String("2"),
					MetricIntervalUpperBound: pulumi.String("3"),
				},
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}
package generated_program;

import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.aws.autoscaling.Policy;
import com.pulumi.aws.autoscaling.PolicyArgs;
import com.pulumi.aws.autoscaling.inputs.PolicyStepAdjustmentArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;

public class App {
    public static void main(String[] args) {
        Pulumi.run(App::stack);
    }

    public static void stack(Context ctx) {
        var example = new Policy("example", PolicyArgs.builder()
            .stepAdjustments(            
                PolicyStepAdjustmentArgs.builder()
                    .scalingAdjustment(-1)
                    .metricIntervalLowerBound(1)
                    .metricIntervalUpperBound(2)
                    .build(),
                PolicyStepAdjustmentArgs.builder()
                    .scalingAdjustment(1)
                    .metricIntervalLowerBound(2)
                    .metricIntervalUpperBound(3)
                    .build())
            .build());

    }
}
resources:
  example:
    type: aws:autoscaling:Policy
    properties:
      stepAdjustments:
        - scalingAdjustment: -1
          metricIntervalLowerBound: 1
          metricIntervalUpperBound: 2
        - scalingAdjustment: 1
          metricIntervalLowerBound: 2
          metricIntervalUpperBound: 3

The following fields are available in step adjustments:

targetTrackingConfiguration PolicyTargetTrackingConfiguration

Target tracking policy. These have the following structure:

import * as pulumi from "@pulumi/pulumi";
import * as aws from "@pulumi/aws";

const example = new aws.autoscaling.Policy("example", {targetTrackingConfiguration: { predefinedMetricSpecification: { predefinedMetricType: "ASGAverageCPUUtilization", }, targetValue: 40, }});

import pulumi
import pulumi_aws as aws

example = aws.autoscaling.Policy("example", target_tracking_configuration={
    "predefined_metric_specification": {
        "predefined_metric_type": "ASGAverageCPUUtilization",
    },
    "target_value": 40,
})
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Aws = Pulumi.Aws;

return await Deployment.RunAsync(() => 
{
    var example = new Aws.AutoScaling.Policy("example", new()
    {
        TargetTrackingConfiguration = new Aws.AutoScaling.Inputs.PolicyTargetTrackingConfigurationArgs
        {
            PredefinedMetricSpecification = new Aws.AutoScaling.Inputs.PolicyTargetTrackingConfigurationPredefinedMetricSpecificationArgs
            {
                PredefinedMetricType = "ASGAverageCPUUtilization",
            },
            TargetValue = 40,
        },
    });

});
package main

import (
	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/autoscaling"
	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := autoscaling.NewPolicy(ctx, "example", &autoscaling.PolicyArgs{
			TargetTrackingConfiguration: &autoscaling.PolicyTargetTrackingConfigurationArgs{
				PredefinedMetricSpecification: &autoscaling.PolicyTargetTrackingConfigurationPredefinedMetricSpecificationArgs{
					PredefinedMetricType: pulumi.String("ASGAverageCPUUtilization"),
				},
				TargetValue: pulumi.Float64(40),
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}
package generated_program;

import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.aws.autoscaling.Policy;
import com.pulumi.aws.autoscaling.PolicyArgs;
import com.pulumi.aws.autoscaling.inputs.PolicyTargetTrackingConfigurationArgs;
import com.pulumi.aws.autoscaling.inputs.PolicyTargetTrackingConfigurationPredefinedMetricSpecificationArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;

public class App {
    public static void main(String[] args) {
        Pulumi.run(App::stack);
    }

    public static void stack(Context ctx) {
        var example = new Policy("example", PolicyArgs.builder()
            .targetTrackingConfiguration(PolicyTargetTrackingConfigurationArgs.builder()
                .predefinedMetricSpecification(PolicyTargetTrackingConfigurationPredefinedMetricSpecificationArgs.builder()
                    .predefinedMetricType("ASGAverageCPUUtilization")
                    .build())
                .targetValue(40)
                .build())
            .build());

    }
}
resources:
  example:
    type: aws:autoscaling:Policy
    properties:
      targetTrackingConfiguration:
        predefinedMetricSpecification:
          predefinedMetricType: ASGAverageCPUUtilization
        targetValue: 40

The following fields are available in target tracking configuration:

adjustmentType string
Whether the adjustment is an absolute number or a percentage of the current capacity. Valid values are ChangeInCapacity, ExactCapacity, and PercentChangeInCapacity.
arn string
ARN assigned by AWS to the scaling policy.
autoscalingGroupName Changes to this property will trigger replacement. string
Name of the autoscaling group.
cooldown number
Amount of time, in seconds, after a scaling activity completes and before the next scaling activity can start.
enabled boolean

Whether the scaling policy is enabled or disabled. Default: true.

The following argument is only available to "SimpleScaling" and "StepScaling" type policies:

estimatedInstanceWarmup number
Estimated time, in seconds, until a newly launched instance will contribute CloudWatch metrics. Without a value, AWS will default to the group's specified cooldown period.
metricAggregationType string
Aggregation type for the policy's metrics. Valid values are "Minimum", "Maximum", and "Average". Without a value, AWS will treat the aggregation type as "Average".
minAdjustmentMagnitude number

Minimum value to scale by when adjustment_type is set to PercentChangeInCapacity.

The following arguments are only available to "SimpleScaling" type policies:

name Changes to this property will trigger replacement. string
Name of the policy.
policyType string
Policy type, either "SimpleScaling", "StepScaling", "TargetTrackingScaling", or "PredictiveScaling". If this value isn't provided, AWS will default to "SimpleScaling."
predictiveScalingConfiguration PolicyPredictiveScalingConfiguration
Predictive scaling policy configuration to use with Amazon EC2 Auto Scaling.
scalingAdjustment number
Number of members by which to scale, when the adjustment bounds are breached. A positive value scales up. A negative value scales down.
stepAdjustments PolicyStepAdjustment[]

Set of adjustments that manage group scaling. These have the following structure:

import * as pulumi from "@pulumi/pulumi";
import * as aws from "@pulumi/aws";

const example = new aws.autoscaling.Policy("example", {stepAdjustments: [ { scalingAdjustment: -1, metricIntervalLowerBound: "1", metricIntervalUpperBound: "2", }, { scalingAdjustment: 1, metricIntervalLowerBound: "2", metricIntervalUpperBound: "3", }, ]});

import pulumi
import pulumi_aws as aws

example = aws.autoscaling.Policy("example", step_adjustments=[
    {
        "scaling_adjustment": -1,
        "metric_interval_lower_bound": "1",
        "metric_interval_upper_bound": "2",
    },
    {
        "scaling_adjustment": 1,
        "metric_interval_lower_bound": "2",
        "metric_interval_upper_bound": "3",
    },
])
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Aws = Pulumi.Aws;

return await Deployment.RunAsync(() => 
{
    var example = new Aws.AutoScaling.Policy("example", new()
    {
        StepAdjustments = new[]
        {
            new Aws.AutoScaling.Inputs.PolicyStepAdjustmentArgs
            {
                ScalingAdjustment = -1,
                MetricIntervalLowerBound = "1",
                MetricIntervalUpperBound = "2",
            },
            new Aws.AutoScaling.Inputs.PolicyStepAdjustmentArgs
            {
                ScalingAdjustment = 1,
                MetricIntervalLowerBound = "2",
                MetricIntervalUpperBound = "3",
            },
        },
    });

});
package main

import (
	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/autoscaling"
	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := autoscaling.NewPolicy(ctx, "example", &autoscaling.PolicyArgs{
			StepAdjustments: autoscaling.PolicyStepAdjustmentArray{
				&autoscaling.PolicyStepAdjustmentArgs{
					ScalingAdjustment:        pulumi.Int(-1),
					MetricIntervalLowerBound: pulumi.String("1"),
					MetricIntervalUpperBound: pulumi.String("2"),
				},
				&autoscaling.PolicyStepAdjustmentArgs{
					ScalingAdjustment:        pulumi.Int(1),
					MetricIntervalLowerBound: pulumi.String("2"),
					MetricIntervalUpperBound: pulumi.String("3"),
				},
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}
package generated_program;

import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.aws.autoscaling.Policy;
import com.pulumi.aws.autoscaling.PolicyArgs;
import com.pulumi.aws.autoscaling.inputs.PolicyStepAdjustmentArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;

public class App {
    public static void main(String[] args) {
        Pulumi.run(App::stack);
    }

    public static void stack(Context ctx) {
        var example = new Policy("example", PolicyArgs.builder()
            .stepAdjustments(            
                PolicyStepAdjustmentArgs.builder()
                    .scalingAdjustment(-1)
                    .metricIntervalLowerBound(1)
                    .metricIntervalUpperBound(2)
                    .build(),
                PolicyStepAdjustmentArgs.builder()
                    .scalingAdjustment(1)
                    .metricIntervalLowerBound(2)
                    .metricIntervalUpperBound(3)
                    .build())
            .build());

    }
}
resources:
  example:
    type: aws:autoscaling:Policy
    properties:
      stepAdjustments:
        - scalingAdjustment: -1
          metricIntervalLowerBound: 1
          metricIntervalUpperBound: 2
        - scalingAdjustment: 1
          metricIntervalLowerBound: 2
          metricIntervalUpperBound: 3

The following fields are available in step adjustments:

targetTrackingConfiguration PolicyTargetTrackingConfiguration

Target tracking policy. These have the following structure:

import * as pulumi from "@pulumi/pulumi";
import * as aws from "@pulumi/aws";

const example = new aws.autoscaling.Policy("example", {targetTrackingConfiguration: { predefinedMetricSpecification: { predefinedMetricType: "ASGAverageCPUUtilization", }, targetValue: 40, }});

import pulumi
import pulumi_aws as aws

example = aws.autoscaling.Policy("example", target_tracking_configuration={
    "predefined_metric_specification": {
        "predefined_metric_type": "ASGAverageCPUUtilization",
    },
    "target_value": 40,
})
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Aws = Pulumi.Aws;

return await Deployment.RunAsync(() => 
{
    var example = new Aws.AutoScaling.Policy("example", new()
    {
        TargetTrackingConfiguration = new Aws.AutoScaling.Inputs.PolicyTargetTrackingConfigurationArgs
        {
            PredefinedMetricSpecification = new Aws.AutoScaling.Inputs.PolicyTargetTrackingConfigurationPredefinedMetricSpecificationArgs
            {
                PredefinedMetricType = "ASGAverageCPUUtilization",
            },
            TargetValue = 40,
        },
    });

});
package main

import (
	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/autoscaling"
	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := autoscaling.NewPolicy(ctx, "example", &autoscaling.PolicyArgs{
			TargetTrackingConfiguration: &autoscaling.PolicyTargetTrackingConfigurationArgs{
				PredefinedMetricSpecification: &autoscaling.PolicyTargetTrackingConfigurationPredefinedMetricSpecificationArgs{
					PredefinedMetricType: pulumi.String("ASGAverageCPUUtilization"),
				},
				TargetValue: pulumi.Float64(40),
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}
package generated_program;

import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.aws.autoscaling.Policy;
import com.pulumi.aws.autoscaling.PolicyArgs;
import com.pulumi.aws.autoscaling.inputs.PolicyTargetTrackingConfigurationArgs;
import com.pulumi.aws.autoscaling.inputs.PolicyTargetTrackingConfigurationPredefinedMetricSpecificationArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;

public class App {
    public static void main(String[] args) {
        Pulumi.run(App::stack);
    }

    public static void stack(Context ctx) {
        var example = new Policy("example", PolicyArgs.builder()
            .targetTrackingConfiguration(PolicyTargetTrackingConfigurationArgs.builder()
                .predefinedMetricSpecification(PolicyTargetTrackingConfigurationPredefinedMetricSpecificationArgs.builder()
                    .predefinedMetricType("ASGAverageCPUUtilization")
                    .build())
                .targetValue(40)
                .build())
            .build());

    }
}
resources:
  example:
    type: aws:autoscaling:Policy
    properties:
      targetTrackingConfiguration:
        predefinedMetricSpecification:
          predefinedMetricType: ASGAverageCPUUtilization
        targetValue: 40

The following fields are available in target tracking configuration:

adjustment_type str
Whether the adjustment is an absolute number or a percentage of the current capacity. Valid values are ChangeInCapacity, ExactCapacity, and PercentChangeInCapacity.
arn str
ARN assigned by AWS to the scaling policy.
autoscaling_group_name Changes to this property will trigger replacement. str
Name of the autoscaling group.
cooldown int
Amount of time, in seconds, after a scaling activity completes and before the next scaling activity can start.
enabled bool

Whether the scaling policy is enabled or disabled. Default: true.

The following argument is only available to "SimpleScaling" and "StepScaling" type policies:

estimated_instance_warmup int
Estimated time, in seconds, until a newly launched instance will contribute CloudWatch metrics. Without a value, AWS will default to the group's specified cooldown period.
metric_aggregation_type str
Aggregation type for the policy's metrics. Valid values are "Minimum", "Maximum", and "Average". Without a value, AWS will treat the aggregation type as "Average".
min_adjustment_magnitude int

Minimum value to scale by when adjustment_type is set to PercentChangeInCapacity.

The following arguments are only available to "SimpleScaling" type policies:

name Changes to this property will trigger replacement. str
Name of the policy.
policy_type str
Policy type, either "SimpleScaling", "StepScaling", "TargetTrackingScaling", or "PredictiveScaling". If this value isn't provided, AWS will default to "SimpleScaling."
predictive_scaling_configuration PolicyPredictiveScalingConfigurationArgs
Predictive scaling policy configuration to use with Amazon EC2 Auto Scaling.
scaling_adjustment int
Number of members by which to scale, when the adjustment bounds are breached. A positive value scales up. A negative value scales down.
step_adjustments Sequence[PolicyStepAdjustmentArgs]

Set of adjustments that manage group scaling. These have the following structure:

import * as pulumi from "@pulumi/pulumi";
import * as aws from "@pulumi/aws";

const example = new aws.autoscaling.Policy("example", {stepAdjustments: [ { scalingAdjustment: -1, metricIntervalLowerBound: "1", metricIntervalUpperBound: "2", }, { scalingAdjustment: 1, metricIntervalLowerBound: "2", metricIntervalUpperBound: "3", }, ]});

import pulumi
import pulumi_aws as aws

example = aws.autoscaling.Policy("example", step_adjustments=[
    {
        "scaling_adjustment": -1,
        "metric_interval_lower_bound": "1",
        "metric_interval_upper_bound": "2",
    },
    {
        "scaling_adjustment": 1,
        "metric_interval_lower_bound": "2",
        "metric_interval_upper_bound": "3",
    },
])
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Aws = Pulumi.Aws;

return await Deployment.RunAsync(() => 
{
    var example = new Aws.AutoScaling.Policy("example", new()
    {
        StepAdjustments = new[]
        {
            new Aws.AutoScaling.Inputs.PolicyStepAdjustmentArgs
            {
                ScalingAdjustment = -1,
                MetricIntervalLowerBound = "1",
                MetricIntervalUpperBound = "2",
            },
            new Aws.AutoScaling.Inputs.PolicyStepAdjustmentArgs
            {
                ScalingAdjustment = 1,
                MetricIntervalLowerBound = "2",
                MetricIntervalUpperBound = "3",
            },
        },
    });

});
package main

import (
	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/autoscaling"
	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := autoscaling.NewPolicy(ctx, "example", &autoscaling.PolicyArgs{
			StepAdjustments: autoscaling.PolicyStepAdjustmentArray{
				&autoscaling.PolicyStepAdjustmentArgs{
					ScalingAdjustment:        pulumi.Int(-1),
					MetricIntervalLowerBound: pulumi.String("1"),
					MetricIntervalUpperBound: pulumi.String("2"),
				},
				&autoscaling.PolicyStepAdjustmentArgs{
					ScalingAdjustment:        pulumi.Int(1),
					MetricIntervalLowerBound: pulumi.String("2"),
					MetricIntervalUpperBound: pulumi.String("3"),
				},
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}
package generated_program;

import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.aws.autoscaling.Policy;
import com.pulumi.aws.autoscaling.PolicyArgs;
import com.pulumi.aws.autoscaling.inputs.PolicyStepAdjustmentArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;

public class App {
    public static void main(String[] args) {
        Pulumi.run(App::stack);
    }

    public static void stack(Context ctx) {
        var example = new Policy("example", PolicyArgs.builder()
            .stepAdjustments(            
                PolicyStepAdjustmentArgs.builder()
                    .scalingAdjustment(-1)
                    .metricIntervalLowerBound(1)
                    .metricIntervalUpperBound(2)
                    .build(),
                PolicyStepAdjustmentArgs.builder()
                    .scalingAdjustment(1)
                    .metricIntervalLowerBound(2)
                    .metricIntervalUpperBound(3)
                    .build())
            .build());

    }
}
resources:
  example:
    type: aws:autoscaling:Policy
    properties:
      stepAdjustments:
        - scalingAdjustment: -1
          metricIntervalLowerBound: 1
          metricIntervalUpperBound: 2
        - scalingAdjustment: 1
          metricIntervalLowerBound: 2
          metricIntervalUpperBound: 3

The following fields are available in step adjustments:

target_tracking_configuration PolicyTargetTrackingConfigurationArgs

Target tracking policy. These have the following structure:

import * as pulumi from "@pulumi/pulumi";
import * as aws from "@pulumi/aws";

const example = new aws.autoscaling.Policy("example", {targetTrackingConfiguration: { predefinedMetricSpecification: { predefinedMetricType: "ASGAverageCPUUtilization", }, targetValue: 40, }});

import pulumi
import pulumi_aws as aws

example = aws.autoscaling.Policy("example", target_tracking_configuration={
    "predefined_metric_specification": {
        "predefined_metric_type": "ASGAverageCPUUtilization",
    },
    "target_value": 40,
})
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Aws = Pulumi.Aws;

return await Deployment.RunAsync(() => 
{
    var example = new Aws.AutoScaling.Policy("example", new()
    {
        TargetTrackingConfiguration = new Aws.AutoScaling.Inputs.PolicyTargetTrackingConfigurationArgs
        {
            PredefinedMetricSpecification = new Aws.AutoScaling.Inputs.PolicyTargetTrackingConfigurationPredefinedMetricSpecificationArgs
            {
                PredefinedMetricType = "ASGAverageCPUUtilization",
            },
            TargetValue = 40,
        },
    });

});
package main

import (
	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/autoscaling"
	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := autoscaling.NewPolicy(ctx, "example", &autoscaling.PolicyArgs{
			TargetTrackingConfiguration: &autoscaling.PolicyTargetTrackingConfigurationArgs{
				PredefinedMetricSpecification: &autoscaling.PolicyTargetTrackingConfigurationPredefinedMetricSpecificationArgs{
					PredefinedMetricType: pulumi.String("ASGAverageCPUUtilization"),
				},
				TargetValue: pulumi.Float64(40),
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}
package generated_program;

import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.aws.autoscaling.Policy;
import com.pulumi.aws.autoscaling.PolicyArgs;
import com.pulumi.aws.autoscaling.inputs.PolicyTargetTrackingConfigurationArgs;
import com.pulumi.aws.autoscaling.inputs.PolicyTargetTrackingConfigurationPredefinedMetricSpecificationArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;

public class App {
    public static void main(String[] args) {
        Pulumi.run(App::stack);
    }

    public static void stack(Context ctx) {
        var example = new Policy("example", PolicyArgs.builder()
            .targetTrackingConfiguration(PolicyTargetTrackingConfigurationArgs.builder()
                .predefinedMetricSpecification(PolicyTargetTrackingConfigurationPredefinedMetricSpecificationArgs.builder()
                    .predefinedMetricType("ASGAverageCPUUtilization")
                    .build())
                .targetValue(40)
                .build())
            .build());

    }
}
resources:
  example:
    type: aws:autoscaling:Policy
    properties:
      targetTrackingConfiguration:
        predefinedMetricSpecification:
          predefinedMetricType: ASGAverageCPUUtilization
        targetValue: 40

The following fields are available in target tracking configuration:

adjustmentType String
Whether the adjustment is an absolute number or a percentage of the current capacity. Valid values are ChangeInCapacity, ExactCapacity, and PercentChangeInCapacity.
arn String
ARN assigned by AWS to the scaling policy.
autoscalingGroupName Changes to this property will trigger replacement. String
Name of the autoscaling group.
cooldown Number
Amount of time, in seconds, after a scaling activity completes and before the next scaling activity can start.
enabled Boolean

Whether the scaling policy is enabled or disabled. Default: true.

The following argument is only available to "SimpleScaling" and "StepScaling" type policies:

estimatedInstanceWarmup Number
Estimated time, in seconds, until a newly launched instance will contribute CloudWatch metrics. Without a value, AWS will default to the group's specified cooldown period.
metricAggregationType String
Aggregation type for the policy's metrics. Valid values are "Minimum", "Maximum", and "Average". Without a value, AWS will treat the aggregation type as "Average".
minAdjustmentMagnitude Number

Minimum value to scale by when adjustment_type is set to PercentChangeInCapacity.

The following arguments are only available to "SimpleScaling" type policies:

name Changes to this property will trigger replacement. String
Name of the policy.
policyType String
Policy type, either "SimpleScaling", "StepScaling", "TargetTrackingScaling", or "PredictiveScaling". If this value isn't provided, AWS will default to "SimpleScaling."
predictiveScalingConfiguration Property Map
Predictive scaling policy configuration to use with Amazon EC2 Auto Scaling.
scalingAdjustment Number
Number of members by which to scale, when the adjustment bounds are breached. A positive value scales up. A negative value scales down.
stepAdjustments List<Property Map>

Set of adjustments that manage group scaling. These have the following structure:

import * as pulumi from "@pulumi/pulumi";
import * as aws from "@pulumi/aws";

const example = new aws.autoscaling.Policy("example", {stepAdjustments: [ { scalingAdjustment: -1, metricIntervalLowerBound: "1", metricIntervalUpperBound: "2", }, { scalingAdjustment: 1, metricIntervalLowerBound: "2", metricIntervalUpperBound: "3", }, ]});

import pulumi
import pulumi_aws as aws

example = aws.autoscaling.Policy("example", step_adjustments=[
    {
        "scaling_adjustment": -1,
        "metric_interval_lower_bound": "1",
        "metric_interval_upper_bound": "2",
    },
    {
        "scaling_adjustment": 1,
        "metric_interval_lower_bound": "2",
        "metric_interval_upper_bound": "3",
    },
])
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Aws = Pulumi.Aws;

return await Deployment.RunAsync(() => 
{
    var example = new Aws.AutoScaling.Policy("example", new()
    {
        StepAdjustments = new[]
        {
            new Aws.AutoScaling.Inputs.PolicyStepAdjustmentArgs
            {
                ScalingAdjustment = -1,
                MetricIntervalLowerBound = "1",
                MetricIntervalUpperBound = "2",
            },
            new Aws.AutoScaling.Inputs.PolicyStepAdjustmentArgs
            {
                ScalingAdjustment = 1,
                MetricIntervalLowerBound = "2",
                MetricIntervalUpperBound = "3",
            },
        },
    });

});
package main

import (
	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/autoscaling"
	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := autoscaling.NewPolicy(ctx, "example", &autoscaling.PolicyArgs{
			StepAdjustments: autoscaling.PolicyStepAdjustmentArray{
				&autoscaling.PolicyStepAdjustmentArgs{
					ScalingAdjustment:        pulumi.Int(-1),
					MetricIntervalLowerBound: pulumi.String("1"),
					MetricIntervalUpperBound: pulumi.String("2"),
				},
				&autoscaling.PolicyStepAdjustmentArgs{
					ScalingAdjustment:        pulumi.Int(1),
					MetricIntervalLowerBound: pulumi.String("2"),
					MetricIntervalUpperBound: pulumi.String("3"),
				},
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}
package generated_program;

import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.aws.autoscaling.Policy;
import com.pulumi.aws.autoscaling.PolicyArgs;
import com.pulumi.aws.autoscaling.inputs.PolicyStepAdjustmentArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;

public class App {
    public static void main(String[] args) {
        Pulumi.run(App::stack);
    }

    public static void stack(Context ctx) {
        var example = new Policy("example", PolicyArgs.builder()
            .stepAdjustments(            
                PolicyStepAdjustmentArgs.builder()
                    .scalingAdjustment(-1)
                    .metricIntervalLowerBound(1)
                    .metricIntervalUpperBound(2)
                    .build(),
                PolicyStepAdjustmentArgs.builder()
                    .scalingAdjustment(1)
                    .metricIntervalLowerBound(2)
                    .metricIntervalUpperBound(3)
                    .build())
            .build());

    }
}
resources:
  example:
    type: aws:autoscaling:Policy
    properties:
      stepAdjustments:
        - scalingAdjustment: -1
          metricIntervalLowerBound: 1
          metricIntervalUpperBound: 2
        - scalingAdjustment: 1
          metricIntervalLowerBound: 2
          metricIntervalUpperBound: 3

The following fields are available in step adjustments:

targetTrackingConfiguration Property Map

Target tracking policy. These have the following structure:

import * as pulumi from "@pulumi/pulumi";
import * as aws from "@pulumi/aws";

const example = new aws.autoscaling.Policy("example", {targetTrackingConfiguration: { predefinedMetricSpecification: { predefinedMetricType: "ASGAverageCPUUtilization", }, targetValue: 40, }});

import pulumi
import pulumi_aws as aws

example = aws.autoscaling.Policy("example", target_tracking_configuration={
    "predefined_metric_specification": {
        "predefined_metric_type": "ASGAverageCPUUtilization",
    },
    "target_value": 40,
})
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Aws = Pulumi.Aws;

return await Deployment.RunAsync(() => 
{
    var example = new Aws.AutoScaling.Policy("example", new()
    {
        TargetTrackingConfiguration = new Aws.AutoScaling.Inputs.PolicyTargetTrackingConfigurationArgs
        {
            PredefinedMetricSpecification = new Aws.AutoScaling.Inputs.PolicyTargetTrackingConfigurationPredefinedMetricSpecificationArgs
            {
                PredefinedMetricType = "ASGAverageCPUUtilization",
            },
            TargetValue = 40,
        },
    });

});
package main

import (
	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/autoscaling"
	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := autoscaling.NewPolicy(ctx, "example", &autoscaling.PolicyArgs{
			TargetTrackingConfiguration: &autoscaling.PolicyTargetTrackingConfigurationArgs{
				PredefinedMetricSpecification: &autoscaling.PolicyTargetTrackingConfigurationPredefinedMetricSpecificationArgs{
					PredefinedMetricType: pulumi.String("ASGAverageCPUUtilization"),
				},
				TargetValue: pulumi.Float64(40),
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}
package generated_program;

import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.aws.autoscaling.Policy;
import com.pulumi.aws.autoscaling.PolicyArgs;
import com.pulumi.aws.autoscaling.inputs.PolicyTargetTrackingConfigurationArgs;
import com.pulumi.aws.autoscaling.inputs.PolicyTargetTrackingConfigurationPredefinedMetricSpecificationArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;

public class App {
    public static void main(String[] args) {
        Pulumi.run(App::stack);
    }

    public static void stack(Context ctx) {
        var example = new Policy("example", PolicyArgs.builder()
            .targetTrackingConfiguration(PolicyTargetTrackingConfigurationArgs.builder()
                .predefinedMetricSpecification(PolicyTargetTrackingConfigurationPredefinedMetricSpecificationArgs.builder()
                    .predefinedMetricType("ASGAverageCPUUtilization")
                    .build())
                .targetValue(40)
                .build())
            .build());

    }
}
resources:
  example:
    type: aws:autoscaling:Policy
    properties:
      targetTrackingConfiguration:
        predefinedMetricSpecification:
          predefinedMetricType: ASGAverageCPUUtilization
        targetValue: 40

The following fields are available in target tracking configuration:

Supporting Types

PolicyPredictiveScalingConfiguration
, PolicyPredictiveScalingConfigurationArgs

MetricSpecification This property is required. PolicyPredictiveScalingConfigurationMetricSpecification
This structure includes the metrics and target utilization to use for predictive scaling.
MaxCapacityBreachBehavior string
Defines the behavior that should be applied if the forecast capacity approaches or exceeds the maximum capacity of the Auto Scaling group. Valid values are HonorMaxCapacity or IncreaseMaxCapacity. Default is HonorMaxCapacity.
MaxCapacityBuffer string
Size of the capacity buffer to use when the forecast capacity is close to or exceeds the maximum capacity. Valid range is 0 to 100. If set to 0, Amazon EC2 Auto Scaling may scale capacity higher than the maximum capacity to equal but not exceed forecast capacity.
Mode string
Predictive scaling mode. Valid values are ForecastAndScale and ForecastOnly. Default is ForecastOnly.
SchedulingBufferTime string
Amount of time, in seconds, by which the instance launch time can be advanced. Minimum is 0.
MetricSpecification This property is required. PolicyPredictiveScalingConfigurationMetricSpecification
This structure includes the metrics and target utilization to use for predictive scaling.
MaxCapacityBreachBehavior string
Defines the behavior that should be applied if the forecast capacity approaches or exceeds the maximum capacity of the Auto Scaling group. Valid values are HonorMaxCapacity or IncreaseMaxCapacity. Default is HonorMaxCapacity.
MaxCapacityBuffer string
Size of the capacity buffer to use when the forecast capacity is close to or exceeds the maximum capacity. Valid range is 0 to 100. If set to 0, Amazon EC2 Auto Scaling may scale capacity higher than the maximum capacity to equal but not exceed forecast capacity.
Mode string
Predictive scaling mode. Valid values are ForecastAndScale and ForecastOnly. Default is ForecastOnly.
SchedulingBufferTime string
Amount of time, in seconds, by which the instance launch time can be advanced. Minimum is 0.
metricSpecification This property is required. PolicyPredictiveScalingConfigurationMetricSpecification
This structure includes the metrics and target utilization to use for predictive scaling.
maxCapacityBreachBehavior String
Defines the behavior that should be applied if the forecast capacity approaches or exceeds the maximum capacity of the Auto Scaling group. Valid values are HonorMaxCapacity or IncreaseMaxCapacity. Default is HonorMaxCapacity.
maxCapacityBuffer String
Size of the capacity buffer to use when the forecast capacity is close to or exceeds the maximum capacity. Valid range is 0 to 100. If set to 0, Amazon EC2 Auto Scaling may scale capacity higher than the maximum capacity to equal but not exceed forecast capacity.
mode String
Predictive scaling mode. Valid values are ForecastAndScale and ForecastOnly. Default is ForecastOnly.
schedulingBufferTime String
Amount of time, in seconds, by which the instance launch time can be advanced. Minimum is 0.
metricSpecification This property is required. PolicyPredictiveScalingConfigurationMetricSpecification
This structure includes the metrics and target utilization to use for predictive scaling.
maxCapacityBreachBehavior string
Defines the behavior that should be applied if the forecast capacity approaches or exceeds the maximum capacity of the Auto Scaling group. Valid values are HonorMaxCapacity or IncreaseMaxCapacity. Default is HonorMaxCapacity.
maxCapacityBuffer string
Size of the capacity buffer to use when the forecast capacity is close to or exceeds the maximum capacity. Valid range is 0 to 100. If set to 0, Amazon EC2 Auto Scaling may scale capacity higher than the maximum capacity to equal but not exceed forecast capacity.
mode string
Predictive scaling mode. Valid values are ForecastAndScale and ForecastOnly. Default is ForecastOnly.
schedulingBufferTime string
Amount of time, in seconds, by which the instance launch time can be advanced. Minimum is 0.
metric_specification This property is required. PolicyPredictiveScalingConfigurationMetricSpecification
This structure includes the metrics and target utilization to use for predictive scaling.
max_capacity_breach_behavior str
Defines the behavior that should be applied if the forecast capacity approaches or exceeds the maximum capacity of the Auto Scaling group. Valid values are HonorMaxCapacity or IncreaseMaxCapacity. Default is HonorMaxCapacity.
max_capacity_buffer str
Size of the capacity buffer to use when the forecast capacity is close to or exceeds the maximum capacity. Valid range is 0 to 100. If set to 0, Amazon EC2 Auto Scaling may scale capacity higher than the maximum capacity to equal but not exceed forecast capacity.
mode str
Predictive scaling mode. Valid values are ForecastAndScale and ForecastOnly. Default is ForecastOnly.
scheduling_buffer_time str
Amount of time, in seconds, by which the instance launch time can be advanced. Minimum is 0.
metricSpecification This property is required. Property Map
This structure includes the metrics and target utilization to use for predictive scaling.
maxCapacityBreachBehavior String
Defines the behavior that should be applied if the forecast capacity approaches or exceeds the maximum capacity of the Auto Scaling group. Valid values are HonorMaxCapacity or IncreaseMaxCapacity. Default is HonorMaxCapacity.
maxCapacityBuffer String
Size of the capacity buffer to use when the forecast capacity is close to or exceeds the maximum capacity. Valid range is 0 to 100. If set to 0, Amazon EC2 Auto Scaling may scale capacity higher than the maximum capacity to equal but not exceed forecast capacity.
mode String
Predictive scaling mode. Valid values are ForecastAndScale and ForecastOnly. Default is ForecastOnly.
schedulingBufferTime String
Amount of time, in seconds, by which the instance launch time can be advanced. Minimum is 0.

PolicyPredictiveScalingConfigurationMetricSpecification
, PolicyPredictiveScalingConfigurationMetricSpecificationArgs

TargetValue This property is required. double
Target value for the metric.
CustomizedCapacityMetricSpecification PolicyPredictiveScalingConfigurationMetricSpecificationCustomizedCapacityMetricSpecification
Customized capacity metric specification. The field is only valid when you use customized_load_metric_specification
CustomizedLoadMetricSpecification PolicyPredictiveScalingConfigurationMetricSpecificationCustomizedLoadMetricSpecification
Customized load metric specification.
CustomizedScalingMetricSpecification PolicyPredictiveScalingConfigurationMetricSpecificationCustomizedScalingMetricSpecification
Customized scaling metric specification.
PredefinedLoadMetricSpecification PolicyPredictiveScalingConfigurationMetricSpecificationPredefinedLoadMetricSpecification
Predefined load metric specification.
PredefinedMetricPairSpecification PolicyPredictiveScalingConfigurationMetricSpecificationPredefinedMetricPairSpecification
Metric pair specification from which Amazon EC2 Auto Scaling determines the appropriate scaling metric and load metric to use.
PredefinedScalingMetricSpecification PolicyPredictiveScalingConfigurationMetricSpecificationPredefinedScalingMetricSpecification
Predefined scaling metric specification.
TargetValue This property is required. float64
Target value for the metric.
CustomizedCapacityMetricSpecification PolicyPredictiveScalingConfigurationMetricSpecificationCustomizedCapacityMetricSpecification
Customized capacity metric specification. The field is only valid when you use customized_load_metric_specification
CustomizedLoadMetricSpecification PolicyPredictiveScalingConfigurationMetricSpecificationCustomizedLoadMetricSpecification
Customized load metric specification.
CustomizedScalingMetricSpecification PolicyPredictiveScalingConfigurationMetricSpecificationCustomizedScalingMetricSpecification
Customized scaling metric specification.
PredefinedLoadMetricSpecification PolicyPredictiveScalingConfigurationMetricSpecificationPredefinedLoadMetricSpecification
Predefined load metric specification.
PredefinedMetricPairSpecification PolicyPredictiveScalingConfigurationMetricSpecificationPredefinedMetricPairSpecification
Metric pair specification from which Amazon EC2 Auto Scaling determines the appropriate scaling metric and load metric to use.
PredefinedScalingMetricSpecification PolicyPredictiveScalingConfigurationMetricSpecificationPredefinedScalingMetricSpecification
Predefined scaling metric specification.
targetValue This property is required. Double
Target value for the metric.
customizedCapacityMetricSpecification PolicyPredictiveScalingConfigurationMetricSpecificationCustomizedCapacityMetricSpecification
Customized capacity metric specification. The field is only valid when you use customized_load_metric_specification
customizedLoadMetricSpecification PolicyPredictiveScalingConfigurationMetricSpecificationCustomizedLoadMetricSpecification
Customized load metric specification.
customizedScalingMetricSpecification PolicyPredictiveScalingConfigurationMetricSpecificationCustomizedScalingMetricSpecification
Customized scaling metric specification.
predefinedLoadMetricSpecification PolicyPredictiveScalingConfigurationMetricSpecificationPredefinedLoadMetricSpecification
Predefined load metric specification.
predefinedMetricPairSpecification PolicyPredictiveScalingConfigurationMetricSpecificationPredefinedMetricPairSpecification
Metric pair specification from which Amazon EC2 Auto Scaling determines the appropriate scaling metric and load metric to use.
predefinedScalingMetricSpecification PolicyPredictiveScalingConfigurationMetricSpecificationPredefinedScalingMetricSpecification
Predefined scaling metric specification.
target_value This property is required. float
Target value for the metric.
customized_capacity_metric_specification PolicyPredictiveScalingConfigurationMetricSpecificationCustomizedCapacityMetricSpecification
Customized capacity metric specification. The field is only valid when you use customized_load_metric_specification
customized_load_metric_specification PolicyPredictiveScalingConfigurationMetricSpecificationCustomizedLoadMetricSpecification
Customized load metric specification.
customized_scaling_metric_specification PolicyPredictiveScalingConfigurationMetricSpecificationCustomizedScalingMetricSpecification
Customized scaling metric specification.
predefined_load_metric_specification PolicyPredictiveScalingConfigurationMetricSpecificationPredefinedLoadMetricSpecification
Predefined load metric specification.
predefined_metric_pair_specification PolicyPredictiveScalingConfigurationMetricSpecificationPredefinedMetricPairSpecification
Metric pair specification from which Amazon EC2 Auto Scaling determines the appropriate scaling metric and load metric to use.
predefined_scaling_metric_specification PolicyPredictiveScalingConfigurationMetricSpecificationPredefinedScalingMetricSpecification
Predefined scaling metric specification.
targetValue This property is required. Number
Target value for the metric.
customizedCapacityMetricSpecification Property Map
Customized capacity metric specification. The field is only valid when you use customized_load_metric_specification
customizedLoadMetricSpecification Property Map
Customized load metric specification.
customizedScalingMetricSpecification Property Map
Customized scaling metric specification.
predefinedLoadMetricSpecification Property Map
Predefined load metric specification.
predefinedMetricPairSpecification Property Map
Metric pair specification from which Amazon EC2 Auto Scaling determines the appropriate scaling metric and load metric to use.
predefinedScalingMetricSpecification Property Map
Predefined scaling metric specification.

PolicyPredictiveScalingConfigurationMetricSpecificationCustomizedCapacityMetricSpecification
, PolicyPredictiveScalingConfigurationMetricSpecificationCustomizedCapacityMetricSpecificationArgs

MetricDataQueries This property is required. List<PolicyPredictiveScalingConfigurationMetricSpecificationCustomizedCapacityMetricSpecificationMetricDataQuery>
List of up to 10 structures that defines custom capacity metric in predictive scaling policy
MetricDataQueries This property is required. []PolicyPredictiveScalingConfigurationMetricSpecificationCustomizedCapacityMetricSpecificationMetricDataQuery
List of up to 10 structures that defines custom capacity metric in predictive scaling policy
metricDataQueries This property is required. List<PolicyPredictiveScalingConfigurationMetricSpecificationCustomizedCapacityMetricSpecificationMetricDataQuery>
List of up to 10 structures that defines custom capacity metric in predictive scaling policy
metricDataQueries This property is required. PolicyPredictiveScalingConfigurationMetricSpecificationCustomizedCapacityMetricSpecificationMetricDataQuery[]
List of up to 10 structures that defines custom capacity metric in predictive scaling policy
metric_data_queries This property is required. Sequence[PolicyPredictiveScalingConfigurationMetricSpecificationCustomizedCapacityMetricSpecificationMetricDataQuery]
List of up to 10 structures that defines custom capacity metric in predictive scaling policy
metricDataQueries This property is required. List<Property Map>
List of up to 10 structures that defines custom capacity metric in predictive scaling policy

PolicyPredictiveScalingConfigurationMetricSpecificationCustomizedCapacityMetricSpecificationMetricDataQuery
, PolicyPredictiveScalingConfigurationMetricSpecificationCustomizedCapacityMetricSpecificationMetricDataQueryArgs

Id This property is required. string
Short name for the metric used in predictive scaling policy.
Expression string
Math expression used on the returned metric. You must specify either expression or metric_stat, but not both.
Label string
Human-readable label for this metric or expression.
MetricStat PolicyPredictiveScalingConfigurationMetricSpecificationCustomizedCapacityMetricSpecificationMetricDataQueryMetricStat
Structure that defines CloudWatch metric to be used in predictive scaling policy. You must specify either expression or metric_stat, but not both.
ReturnData bool
Boolean that indicates whether to return the timestamps and raw data values of this metric, the default is true
Id This property is required. string
Short name for the metric used in predictive scaling policy.
Expression string
Math expression used on the returned metric. You must specify either expression or metric_stat, but not both.
Label string
Human-readable label for this metric or expression.
MetricStat PolicyPredictiveScalingConfigurationMetricSpecificationCustomizedCapacityMetricSpecificationMetricDataQueryMetricStat
Structure that defines CloudWatch metric to be used in predictive scaling policy. You must specify either expression or metric_stat, but not both.
ReturnData bool
Boolean that indicates whether to return the timestamps and raw data values of this metric, the default is true
id This property is required. String
Short name for the metric used in predictive scaling policy.
expression String
Math expression used on the returned metric. You must specify either expression or metric_stat, but not both.
label String
Human-readable label for this metric or expression.
metricStat PolicyPredictiveScalingConfigurationMetricSpecificationCustomizedCapacityMetricSpecificationMetricDataQueryMetricStat
Structure that defines CloudWatch metric to be used in predictive scaling policy. You must specify either expression or metric_stat, but not both.
returnData Boolean
Boolean that indicates whether to return the timestamps and raw data values of this metric, the default is true
id This property is required. string
Short name for the metric used in predictive scaling policy.
expression string
Math expression used on the returned metric. You must specify either expression or metric_stat, but not both.
label string
Human-readable label for this metric or expression.
metricStat PolicyPredictiveScalingConfigurationMetricSpecificationCustomizedCapacityMetricSpecificationMetricDataQueryMetricStat
Structure that defines CloudWatch metric to be used in predictive scaling policy. You must specify either expression or metric_stat, but not both.
returnData boolean
Boolean that indicates whether to return the timestamps and raw data values of this metric, the default is true
id This property is required. str
Short name for the metric used in predictive scaling policy.
expression str
Math expression used on the returned metric. You must specify either expression or metric_stat, but not both.
label str
Human-readable label for this metric or expression.
metric_stat PolicyPredictiveScalingConfigurationMetricSpecificationCustomizedCapacityMetricSpecificationMetricDataQueryMetricStat
Structure that defines CloudWatch metric to be used in predictive scaling policy. You must specify either expression or metric_stat, but not both.
return_data bool
Boolean that indicates whether to return the timestamps and raw data values of this metric, the default is true
id This property is required. String
Short name for the metric used in predictive scaling policy.
expression String
Math expression used on the returned metric. You must specify either expression or metric_stat, but not both.
label String
Human-readable label for this metric or expression.
metricStat Property Map
Structure that defines CloudWatch metric to be used in predictive scaling policy. You must specify either expression or metric_stat, but not both.
returnData Boolean
Boolean that indicates whether to return the timestamps and raw data values of this metric, the default is true

PolicyPredictiveScalingConfigurationMetricSpecificationCustomizedCapacityMetricSpecificationMetricDataQueryMetricStat
, PolicyPredictiveScalingConfigurationMetricSpecificationCustomizedCapacityMetricSpecificationMetricDataQueryMetricStatArgs

Metric This property is required. PolicyPredictiveScalingConfigurationMetricSpecificationCustomizedCapacityMetricSpecificationMetricDataQueryMetricStatMetric
Structure that defines the CloudWatch metric to return, including the metric name, namespace, and dimensions.
Stat This property is required. string
Statistic of the metrics to return.
Unit string
Unit of the metrics to return.
Metric This property is required. PolicyPredictiveScalingConfigurationMetricSpecificationCustomizedCapacityMetricSpecificationMetricDataQueryMetricStatMetric
Structure that defines the CloudWatch metric to return, including the metric name, namespace, and dimensions.
Stat This property is required. string
Statistic of the metrics to return.
Unit string
Unit of the metrics to return.
metric This property is required. PolicyPredictiveScalingConfigurationMetricSpecificationCustomizedCapacityMetricSpecificationMetricDataQueryMetricStatMetric
Structure that defines the CloudWatch metric to return, including the metric name, namespace, and dimensions.
stat This property is required. String
Statistic of the metrics to return.
unit String
Unit of the metrics to return.
metric This property is required. PolicyPredictiveScalingConfigurationMetricSpecificationCustomizedCapacityMetricSpecificationMetricDataQueryMetricStatMetric
Structure that defines the CloudWatch metric to return, including the metric name, namespace, and dimensions.
stat This property is required. string
Statistic of the metrics to return.
unit string
Unit of the metrics to return.
metric This property is required. PolicyPredictiveScalingConfigurationMetricSpecificationCustomizedCapacityMetricSpecificationMetricDataQueryMetricStatMetric
Structure that defines the CloudWatch metric to return, including the metric name, namespace, and dimensions.
stat This property is required. str
Statistic of the metrics to return.
unit str
Unit of the metrics to return.
metric This property is required. Property Map
Structure that defines the CloudWatch metric to return, including the metric name, namespace, and dimensions.
stat This property is required. String
Statistic of the metrics to return.
unit String
Unit of the metrics to return.

PolicyPredictiveScalingConfigurationMetricSpecificationCustomizedCapacityMetricSpecificationMetricDataQueryMetricStatMetric
, PolicyPredictiveScalingConfigurationMetricSpecificationCustomizedCapacityMetricSpecificationMetricDataQueryMetricStatMetricArgs

MetricName This property is required. string
Name of the metric.
Namespace This property is required. string
Namespace of the metric.
Dimensions List<PolicyPredictiveScalingConfigurationMetricSpecificationCustomizedCapacityMetricSpecificationMetricDataQueryMetricStatMetricDimension>
Dimensions of the metric.
MetricName This property is required. string
Name of the metric.
Namespace This property is required. string
Namespace of the metric.
Dimensions []PolicyPredictiveScalingConfigurationMetricSpecificationCustomizedCapacityMetricSpecificationMetricDataQueryMetricStatMetricDimension
Dimensions of the metric.
metricName This property is required. String
Name of the metric.
namespace This property is required. String
Namespace of the metric.
dimensions List<PolicyPredictiveScalingConfigurationMetricSpecificationCustomizedCapacityMetricSpecificationMetricDataQueryMetricStatMetricDimension>
Dimensions of the metric.
metricName This property is required. string
Name of the metric.
namespace This property is required. string
Namespace of the metric.
dimensions PolicyPredictiveScalingConfigurationMetricSpecificationCustomizedCapacityMetricSpecificationMetricDataQueryMetricStatMetricDimension[]
Dimensions of the metric.
metric_name This property is required. str
Name of the metric.
namespace This property is required. str
Namespace of the metric.
dimensions Sequence[PolicyPredictiveScalingConfigurationMetricSpecificationCustomizedCapacityMetricSpecificationMetricDataQueryMetricStatMetricDimension]
Dimensions of the metric.
metricName This property is required. String
Name of the metric.
namespace This property is required. String
Namespace of the metric.
dimensions List<Property Map>
Dimensions of the metric.

PolicyPredictiveScalingConfigurationMetricSpecificationCustomizedCapacityMetricSpecificationMetricDataQueryMetricStatMetricDimension
, PolicyPredictiveScalingConfigurationMetricSpecificationCustomizedCapacityMetricSpecificationMetricDataQueryMetricStatMetricDimensionArgs

Name This property is required. string
Name of the dimension.
Value This property is required. string
Value of the dimension.
Name This property is required. string
Name of the dimension.
Value This property is required. string
Value of the dimension.
name This property is required. String
Name of the dimension.
value This property is required. String
Value of the dimension.
name This property is required. string
Name of the dimension.
value This property is required. string
Value of the dimension.
name This property is required. str
Name of the dimension.
value This property is required. str
Value of the dimension.
name This property is required. String
Name of the dimension.
value This property is required. String
Value of the dimension.

PolicyPredictiveScalingConfigurationMetricSpecificationCustomizedLoadMetricSpecification
, PolicyPredictiveScalingConfigurationMetricSpecificationCustomizedLoadMetricSpecificationArgs

MetricDataQueries This property is required. List<PolicyPredictiveScalingConfigurationMetricSpecificationCustomizedLoadMetricSpecificationMetricDataQuery>
List of up to 10 structures that defines custom load metric in predictive scaling policy
MetricDataQueries This property is required. []PolicyPredictiveScalingConfigurationMetricSpecificationCustomizedLoadMetricSpecificationMetricDataQuery
List of up to 10 structures that defines custom load metric in predictive scaling policy
metricDataQueries This property is required. List<PolicyPredictiveScalingConfigurationMetricSpecificationCustomizedLoadMetricSpecificationMetricDataQuery>
List of up to 10 structures that defines custom load metric in predictive scaling policy
metricDataQueries This property is required. PolicyPredictiveScalingConfigurationMetricSpecificationCustomizedLoadMetricSpecificationMetricDataQuery[]
List of up to 10 structures that defines custom load metric in predictive scaling policy
metric_data_queries This property is required. Sequence[PolicyPredictiveScalingConfigurationMetricSpecificationCustomizedLoadMetricSpecificationMetricDataQuery]
List of up to 10 structures that defines custom load metric in predictive scaling policy
metricDataQueries This property is required. List<Property Map>
List of up to 10 structures that defines custom load metric in predictive scaling policy

PolicyPredictiveScalingConfigurationMetricSpecificationCustomizedLoadMetricSpecificationMetricDataQuery
, PolicyPredictiveScalingConfigurationMetricSpecificationCustomizedLoadMetricSpecificationMetricDataQueryArgs

Id This property is required. string
Short name for the metric used in predictive scaling policy.
Expression string
Math expression used on the returned metric. You must specify either expression or metric_stat, but not both.
Label string
Human-readable label for this metric or expression.
MetricStat PolicyPredictiveScalingConfigurationMetricSpecificationCustomizedLoadMetricSpecificationMetricDataQueryMetricStat
Structure that defines CloudWatch metric to be used in predictive scaling policy. You must specify either expression or metric_stat, but not both.
ReturnData bool
Boolean that indicates whether to return the timestamps and raw data values of this metric, the default is true
Id This property is required. string
Short name for the metric used in predictive scaling policy.
Expression string
Math expression used on the returned metric. You must specify either expression or metric_stat, but not both.
Label string
Human-readable label for this metric or expression.
MetricStat PolicyPredictiveScalingConfigurationMetricSpecificationCustomizedLoadMetricSpecificationMetricDataQueryMetricStat
Structure that defines CloudWatch metric to be used in predictive scaling policy. You must specify either expression or metric_stat, but not both.
ReturnData bool
Boolean that indicates whether to return the timestamps and raw data values of this metric, the default is true
id This property is required. String
Short name for the metric used in predictive scaling policy.
expression String
Math expression used on the returned metric. You must specify either expression or metric_stat, but not both.
label String
Human-readable label for this metric or expression.
metricStat PolicyPredictiveScalingConfigurationMetricSpecificationCustomizedLoadMetricSpecificationMetricDataQueryMetricStat
Structure that defines CloudWatch metric to be used in predictive scaling policy. You must specify either expression or metric_stat, but not both.
returnData Boolean
Boolean that indicates whether to return the timestamps and raw data values of this metric, the default is true
id This property is required. string
Short name for the metric used in predictive scaling policy.
expression string
Math expression used on the returned metric. You must specify either expression or metric_stat, but not both.
label string
Human-readable label for this metric or expression.
metricStat PolicyPredictiveScalingConfigurationMetricSpecificationCustomizedLoadMetricSpecificationMetricDataQueryMetricStat
Structure that defines CloudWatch metric to be used in predictive scaling policy. You must specify either expression or metric_stat, but not both.
returnData boolean
Boolean that indicates whether to return the timestamps and raw data values of this metric, the default is true
id This property is required. str
Short name for the metric used in predictive scaling policy.
expression str
Math expression used on the returned metric. You must specify either expression or metric_stat, but not both.
label str
Human-readable label for this metric or expression.
metric_stat PolicyPredictiveScalingConfigurationMetricSpecificationCustomizedLoadMetricSpecificationMetricDataQueryMetricStat
Structure that defines CloudWatch metric to be used in predictive scaling policy. You must specify either expression or metric_stat, but not both.
return_data bool
Boolean that indicates whether to return the timestamps and raw data values of this metric, the default is true
id This property is required. String
Short name for the metric used in predictive scaling policy.
expression String
Math expression used on the returned metric. You must specify either expression or metric_stat, but not both.
label String
Human-readable label for this metric or expression.
metricStat Property Map
Structure that defines CloudWatch metric to be used in predictive scaling policy. You must specify either expression or metric_stat, but not both.
returnData Boolean
Boolean that indicates whether to return the timestamps and raw data values of this metric, the default is true

PolicyPredictiveScalingConfigurationMetricSpecificationCustomizedLoadMetricSpecificationMetricDataQueryMetricStat
, PolicyPredictiveScalingConfigurationMetricSpecificationCustomizedLoadMetricSpecificationMetricDataQueryMetricStatArgs

Metric This property is required. PolicyPredictiveScalingConfigurationMetricSpecificationCustomizedLoadMetricSpecificationMetricDataQueryMetricStatMetric
Structure that defines the CloudWatch metric to return, including the metric name, namespace, and dimensions.
Stat This property is required. string
Statistic of the metrics to return.
Unit string
Unit of the metrics to return.
Metric This property is required. PolicyPredictiveScalingConfigurationMetricSpecificationCustomizedLoadMetricSpecificationMetricDataQueryMetricStatMetric
Structure that defines the CloudWatch metric to return, including the metric name, namespace, and dimensions.
Stat This property is required. string
Statistic of the metrics to return.
Unit string
Unit of the metrics to return.
metric This property is required. PolicyPredictiveScalingConfigurationMetricSpecificationCustomizedLoadMetricSpecificationMetricDataQueryMetricStatMetric
Structure that defines the CloudWatch metric to return, including the metric name, namespace, and dimensions.
stat This property is required. String
Statistic of the metrics to return.
unit String
Unit of the metrics to return.
metric This property is required. PolicyPredictiveScalingConfigurationMetricSpecificationCustomizedLoadMetricSpecificationMetricDataQueryMetricStatMetric
Structure that defines the CloudWatch metric to return, including the metric name, namespace, and dimensions.
stat This property is required. string
Statistic of the metrics to return.
unit string
Unit of the metrics to return.
metric This property is required. PolicyPredictiveScalingConfigurationMetricSpecificationCustomizedLoadMetricSpecificationMetricDataQueryMetricStatMetric
Structure that defines the CloudWatch metric to return, including the metric name, namespace, and dimensions.
stat This property is required. str
Statistic of the metrics to return.
unit str
Unit of the metrics to return.
metric This property is required. Property Map
Structure that defines the CloudWatch metric to return, including the metric name, namespace, and dimensions.
stat This property is required. String
Statistic of the metrics to return.
unit String
Unit of the metrics to return.

PolicyPredictiveScalingConfigurationMetricSpecificationCustomizedLoadMetricSpecificationMetricDataQueryMetricStatMetric
, PolicyPredictiveScalingConfigurationMetricSpecificationCustomizedLoadMetricSpecificationMetricDataQueryMetricStatMetricArgs

MetricName This property is required. string
Name of the metric.
Namespace This property is required. string
Namespace of the metric.
Dimensions List<PolicyPredictiveScalingConfigurationMetricSpecificationCustomizedLoadMetricSpecificationMetricDataQueryMetricStatMetricDimension>
Dimensions of the metric.
MetricName This property is required. string
Name of the metric.
Namespace This property is required. string
Namespace of the metric.
Dimensions []PolicyPredictiveScalingConfigurationMetricSpecificationCustomizedLoadMetricSpecificationMetricDataQueryMetricStatMetricDimension
Dimensions of the metric.
metricName This property is required. String
Name of the metric.
namespace This property is required. String
Namespace of the metric.
dimensions List<PolicyPredictiveScalingConfigurationMetricSpecificationCustomizedLoadMetricSpecificationMetricDataQueryMetricStatMetricDimension>
Dimensions of the metric.
metricName This property is required. string
Name of the metric.
namespace This property is required. string
Namespace of the metric.
dimensions PolicyPredictiveScalingConfigurationMetricSpecificationCustomizedLoadMetricSpecificationMetricDataQueryMetricStatMetricDimension[]
Dimensions of the metric.
metric_name This property is required. str
Name of the metric.
namespace This property is required. str
Namespace of the metric.
dimensions Sequence[PolicyPredictiveScalingConfigurationMetricSpecificationCustomizedLoadMetricSpecificationMetricDataQueryMetricStatMetricDimension]
Dimensions of the metric.
metricName This property is required. String
Name of the metric.
namespace This property is required. String
Namespace of the metric.
dimensions List<Property Map>
Dimensions of the metric.

PolicyPredictiveScalingConfigurationMetricSpecificationCustomizedLoadMetricSpecificationMetricDataQueryMetricStatMetricDimension
, PolicyPredictiveScalingConfigurationMetricSpecificationCustomizedLoadMetricSpecificationMetricDataQueryMetricStatMetricDimensionArgs

Name This property is required. string
Name of the dimension.
Value This property is required. string
Value of the dimension.
Name This property is required. string
Name of the dimension.
Value This property is required. string
Value of the dimension.
name This property is required. String
Name of the dimension.
value This property is required. String
Value of the dimension.
name This property is required. string
Name of the dimension.
value This property is required. string
Value of the dimension.
name This property is required. str
Name of the dimension.
value This property is required. str
Value of the dimension.
name This property is required. String
Name of the dimension.
value This property is required. String
Value of the dimension.

PolicyPredictiveScalingConfigurationMetricSpecificationCustomizedScalingMetricSpecification
, PolicyPredictiveScalingConfigurationMetricSpecificationCustomizedScalingMetricSpecificationArgs

MetricDataQueries This property is required. List<PolicyPredictiveScalingConfigurationMetricSpecificationCustomizedScalingMetricSpecificationMetricDataQuery>
List of up to 10 structures that defines custom scaling metric in predictive scaling policy
MetricDataQueries This property is required. []PolicyPredictiveScalingConfigurationMetricSpecificationCustomizedScalingMetricSpecificationMetricDataQuery
List of up to 10 structures that defines custom scaling metric in predictive scaling policy
metricDataQueries This property is required. List<PolicyPredictiveScalingConfigurationMetricSpecificationCustomizedScalingMetricSpecificationMetricDataQuery>
List of up to 10 structures that defines custom scaling metric in predictive scaling policy
metricDataQueries This property is required. PolicyPredictiveScalingConfigurationMetricSpecificationCustomizedScalingMetricSpecificationMetricDataQuery[]
List of up to 10 structures that defines custom scaling metric in predictive scaling policy
metric_data_queries This property is required. Sequence[PolicyPredictiveScalingConfigurationMetricSpecificationCustomizedScalingMetricSpecificationMetricDataQuery]
List of up to 10 structures that defines custom scaling metric in predictive scaling policy
metricDataQueries This property is required. List<Property Map>
List of up to 10 structures that defines custom scaling metric in predictive scaling policy

PolicyPredictiveScalingConfigurationMetricSpecificationCustomizedScalingMetricSpecificationMetricDataQuery
, PolicyPredictiveScalingConfigurationMetricSpecificationCustomizedScalingMetricSpecificationMetricDataQueryArgs

Id This property is required. string
Short name for the metric used in predictive scaling policy.
Expression string
Math expression used on the returned metric. You must specify either expression or metric_stat, but not both.
Label string
Human-readable label for this metric or expression.
MetricStat PolicyPredictiveScalingConfigurationMetricSpecificationCustomizedScalingMetricSpecificationMetricDataQueryMetricStat
Structure that defines CloudWatch metric to be used in predictive scaling policy. You must specify either expression or metric_stat, but not both.
ReturnData bool
Boolean that indicates whether to return the timestamps and raw data values of this metric, the default is true
Id This property is required. string
Short name for the metric used in predictive scaling policy.
Expression string
Math expression used on the returned metric. You must specify either expression or metric_stat, but not both.
Label string
Human-readable label for this metric or expression.
MetricStat PolicyPredictiveScalingConfigurationMetricSpecificationCustomizedScalingMetricSpecificationMetricDataQueryMetricStat
Structure that defines CloudWatch metric to be used in predictive scaling policy. You must specify either expression or metric_stat, but not both.
ReturnData bool
Boolean that indicates whether to return the timestamps and raw data values of this metric, the default is true
id This property is required. String
Short name for the metric used in predictive scaling policy.
expression String
Math expression used on the returned metric. You must specify either expression or metric_stat, but not both.
label String
Human-readable label for this metric or expression.
metricStat PolicyPredictiveScalingConfigurationMetricSpecificationCustomizedScalingMetricSpecificationMetricDataQueryMetricStat
Structure that defines CloudWatch metric to be used in predictive scaling policy. You must specify either expression or metric_stat, but not both.
returnData Boolean
Boolean that indicates whether to return the timestamps and raw data values of this metric, the default is true
id This property is required. string
Short name for the metric used in predictive scaling policy.
expression string
Math expression used on the returned metric. You must specify either expression or metric_stat, but not both.
label string
Human-readable label for this metric or expression.
metricStat PolicyPredictiveScalingConfigurationMetricSpecificationCustomizedScalingMetricSpecificationMetricDataQueryMetricStat
Structure that defines CloudWatch metric to be used in predictive scaling policy. You must specify either expression or metric_stat, but not both.
returnData boolean
Boolean that indicates whether to return the timestamps and raw data values of this metric, the default is true
id This property is required. str
Short name for the metric used in predictive scaling policy.
expression str
Math expression used on the returned metric. You must specify either expression or metric_stat, but not both.
label str
Human-readable label for this metric or expression.
metric_stat PolicyPredictiveScalingConfigurationMetricSpecificationCustomizedScalingMetricSpecificationMetricDataQueryMetricStat
Structure that defines CloudWatch metric to be used in predictive scaling policy. You must specify either expression or metric_stat, but not both.
return_data bool
Boolean that indicates whether to return the timestamps and raw data values of this metric, the default is true
id This property is required. String
Short name for the metric used in predictive scaling policy.
expression String
Math expression used on the returned metric. You must specify either expression or metric_stat, but not both.
label String
Human-readable label for this metric or expression.
metricStat Property Map
Structure that defines CloudWatch metric to be used in predictive scaling policy. You must specify either expression or metric_stat, but not both.
returnData Boolean
Boolean that indicates whether to return the timestamps and raw data values of this metric, the default is true

PolicyPredictiveScalingConfigurationMetricSpecificationCustomizedScalingMetricSpecificationMetricDataQueryMetricStat
, PolicyPredictiveScalingConfigurationMetricSpecificationCustomizedScalingMetricSpecificationMetricDataQueryMetricStatArgs

Metric This property is required. PolicyPredictiveScalingConfigurationMetricSpecificationCustomizedScalingMetricSpecificationMetricDataQueryMetricStatMetric
Structure that defines the CloudWatch metric to return, including the metric name, namespace, and dimensions.
Stat This property is required. string
Statistic of the metrics to return.
Unit string
Unit of the metrics to return.
Metric This property is required. PolicyPredictiveScalingConfigurationMetricSpecificationCustomizedScalingMetricSpecificationMetricDataQueryMetricStatMetric
Structure that defines the CloudWatch metric to return, including the metric name, namespace, and dimensions.
Stat This property is required. string
Statistic of the metrics to return.
Unit string
Unit of the metrics to return.
metric This property is required. PolicyPredictiveScalingConfigurationMetricSpecificationCustomizedScalingMetricSpecificationMetricDataQueryMetricStatMetric
Structure that defines the CloudWatch metric to return, including the metric name, namespace, and dimensions.
stat This property is required. String
Statistic of the metrics to return.
unit String
Unit of the metrics to return.
metric This property is required. PolicyPredictiveScalingConfigurationMetricSpecificationCustomizedScalingMetricSpecificationMetricDataQueryMetricStatMetric
Structure that defines the CloudWatch metric to return, including the metric name, namespace, and dimensions.
stat This property is required. string
Statistic of the metrics to return.
unit string
Unit of the metrics to return.
metric This property is required. PolicyPredictiveScalingConfigurationMetricSpecificationCustomizedScalingMetricSpecificationMetricDataQueryMetricStatMetric
Structure that defines the CloudWatch metric to return, including the metric name, namespace, and dimensions.
stat This property is required. str
Statistic of the metrics to return.
unit str
Unit of the metrics to return.
metric This property is required. Property Map
Structure that defines the CloudWatch metric to return, including the metric name, namespace, and dimensions.
stat This property is required. String
Statistic of the metrics to return.
unit String
Unit of the metrics to return.

PolicyPredictiveScalingConfigurationMetricSpecificationCustomizedScalingMetricSpecificationMetricDataQueryMetricStatMetric
, PolicyPredictiveScalingConfigurationMetricSpecificationCustomizedScalingMetricSpecificationMetricDataQueryMetricStatMetricArgs

MetricName This property is required. string
Name of the metric.
Namespace This property is required. string
Namespace of the metric.
Dimensions List<PolicyPredictiveScalingConfigurationMetricSpecificationCustomizedScalingMetricSpecificationMetricDataQueryMetricStatMetricDimension>
Dimensions of the metric.
MetricName This property is required. string
Name of the metric.
Namespace This property is required. string
Namespace of the metric.
Dimensions []PolicyPredictiveScalingConfigurationMetricSpecificationCustomizedScalingMetricSpecificationMetricDataQueryMetricStatMetricDimension
Dimensions of the metric.
metricName This property is required. String
Name of the metric.
namespace This property is required. String
Namespace of the metric.
dimensions List<PolicyPredictiveScalingConfigurationMetricSpecificationCustomizedScalingMetricSpecificationMetricDataQueryMetricStatMetricDimension>
Dimensions of the metric.
metricName This property is required. string
Name of the metric.
namespace This property is required. string
Namespace of the metric.
dimensions PolicyPredictiveScalingConfigurationMetricSpecificationCustomizedScalingMetricSpecificationMetricDataQueryMetricStatMetricDimension[]
Dimensions of the metric.
metric_name This property is required. str
Name of the metric.
namespace This property is required. str
Namespace of the metric.
dimensions Sequence[PolicyPredictiveScalingConfigurationMetricSpecificationCustomizedScalingMetricSpecificationMetricDataQueryMetricStatMetricDimension]
Dimensions of the metric.
metricName This property is required. String
Name of the metric.
namespace This property is required. String
Namespace of the metric.
dimensions List<Property Map>
Dimensions of the metric.

PolicyPredictiveScalingConfigurationMetricSpecificationCustomizedScalingMetricSpecificationMetricDataQueryMetricStatMetricDimension
, PolicyPredictiveScalingConfigurationMetricSpecificationCustomizedScalingMetricSpecificationMetricDataQueryMetricStatMetricDimensionArgs

Name This property is required. string
Name of the dimension.
Value This property is required. string
Value of the dimension.
Name This property is required. string
Name of the dimension.
Value This property is required. string
Value of the dimension.
name This property is required. String
Name of the dimension.
value This property is required. String
Value of the dimension.
name This property is required. string
Name of the dimension.
value This property is required. string
Value of the dimension.
name This property is required. str
Name of the dimension.
value This property is required. str
Value of the dimension.
name This property is required. String
Name of the dimension.
value This property is required. String
Value of the dimension.

PolicyPredictiveScalingConfigurationMetricSpecificationPredefinedLoadMetricSpecification
, PolicyPredictiveScalingConfigurationMetricSpecificationPredefinedLoadMetricSpecificationArgs

PredefinedMetricType This property is required. string
Metric type. Valid values are ASGTotalCPUUtilization, ASGTotalNetworkIn, ASGTotalNetworkOut, or ALBTargetGroupRequestCount.
ResourceLabel string
Label that uniquely identifies a specific Application Load Balancer target group from which to determine the request count served by your Auto Scaling group. You create the resource label by appending the final portion of the load balancer ARN and the final portion of the target group ARN into a single value, separated by a forward slash (/). Refer to PredefinedMetricSpecification for more information.
PredefinedMetricType This property is required. string
Metric type. Valid values are ASGTotalCPUUtilization, ASGTotalNetworkIn, ASGTotalNetworkOut, or ALBTargetGroupRequestCount.
ResourceLabel string
Label that uniquely identifies a specific Application Load Balancer target group from which to determine the request count served by your Auto Scaling group. You create the resource label by appending the final portion of the load balancer ARN and the final portion of the target group ARN into a single value, separated by a forward slash (/). Refer to PredefinedMetricSpecification for more information.
predefinedMetricType This property is required. String
Metric type. Valid values are ASGTotalCPUUtilization, ASGTotalNetworkIn, ASGTotalNetworkOut, or ALBTargetGroupRequestCount.
resourceLabel String
Label that uniquely identifies a specific Application Load Balancer target group from which to determine the request count served by your Auto Scaling group. You create the resource label by appending the final portion of the load balancer ARN and the final portion of the target group ARN into a single value, separated by a forward slash (/). Refer to PredefinedMetricSpecification for more information.
predefinedMetricType This property is required. string
Metric type. Valid values are ASGTotalCPUUtilization, ASGTotalNetworkIn, ASGTotalNetworkOut, or ALBTargetGroupRequestCount.
resourceLabel string
Label that uniquely identifies a specific Application Load Balancer target group from which to determine the request count served by your Auto Scaling group. You create the resource label by appending the final portion of the load balancer ARN and the final portion of the target group ARN into a single value, separated by a forward slash (/). Refer to PredefinedMetricSpecification for more information.
predefined_metric_type This property is required. str
Metric type. Valid values are ASGTotalCPUUtilization, ASGTotalNetworkIn, ASGTotalNetworkOut, or ALBTargetGroupRequestCount.
resource_label str
Label that uniquely identifies a specific Application Load Balancer target group from which to determine the request count served by your Auto Scaling group. You create the resource label by appending the final portion of the load balancer ARN and the final portion of the target group ARN into a single value, separated by a forward slash (/). Refer to PredefinedMetricSpecification for more information.
predefinedMetricType This property is required. String
Metric type. Valid values are ASGTotalCPUUtilization, ASGTotalNetworkIn, ASGTotalNetworkOut, or ALBTargetGroupRequestCount.
resourceLabel String
Label that uniquely identifies a specific Application Load Balancer target group from which to determine the request count served by your Auto Scaling group. You create the resource label by appending the final portion of the load balancer ARN and the final portion of the target group ARN into a single value, separated by a forward slash (/). Refer to PredefinedMetricSpecification for more information.

PolicyPredictiveScalingConfigurationMetricSpecificationPredefinedMetricPairSpecification
, PolicyPredictiveScalingConfigurationMetricSpecificationPredefinedMetricPairSpecificationArgs

PredefinedMetricType This property is required. string
Which metrics to use. There are two different types of metrics for each metric type: one is a load metric and one is a scaling metric. For example, if the metric type is ASGCPUUtilization, the Auto Scaling group's total CPU metric is used as the load metric, and the average CPU metric is used for the scaling metric. Valid values are ASGCPUUtilization, ASGNetworkIn, ASGNetworkOut, or ALBRequestCount.
ResourceLabel string
Label that uniquely identifies a specific Application Load Balancer target group from which to determine the request count served by your Auto Scaling group. You create the resource label by appending the final portion of the load balancer ARN and the final portion of the target group ARN into a single value, separated by a forward slash (/). Refer to PredefinedMetricSpecification for more information.
PredefinedMetricType This property is required. string
Which metrics to use. There are two different types of metrics for each metric type: one is a load metric and one is a scaling metric. For example, if the metric type is ASGCPUUtilization, the Auto Scaling group's total CPU metric is used as the load metric, and the average CPU metric is used for the scaling metric. Valid values are ASGCPUUtilization, ASGNetworkIn, ASGNetworkOut, or ALBRequestCount.
ResourceLabel string
Label that uniquely identifies a specific Application Load Balancer target group from which to determine the request count served by your Auto Scaling group. You create the resource label by appending the final portion of the load balancer ARN and the final portion of the target group ARN into a single value, separated by a forward slash (/). Refer to PredefinedMetricSpecification for more information.
predefinedMetricType This property is required. String
Which metrics to use. There are two different types of metrics for each metric type: one is a load metric and one is a scaling metric. For example, if the metric type is ASGCPUUtilization, the Auto Scaling group's total CPU metric is used as the load metric, and the average CPU metric is used for the scaling metric. Valid values are ASGCPUUtilization, ASGNetworkIn, ASGNetworkOut, or ALBRequestCount.
resourceLabel String
Label that uniquely identifies a specific Application Load Balancer target group from which to determine the request count served by your Auto Scaling group. You create the resource label by appending the final portion of the load balancer ARN and the final portion of the target group ARN into a single value, separated by a forward slash (/). Refer to PredefinedMetricSpecification for more information.
predefinedMetricType This property is required. string
Which metrics to use. There are two different types of metrics for each metric type: one is a load metric and one is a scaling metric. For example, if the metric type is ASGCPUUtilization, the Auto Scaling group's total CPU metric is used as the load metric, and the average CPU metric is used for the scaling metric. Valid values are ASGCPUUtilization, ASGNetworkIn, ASGNetworkOut, or ALBRequestCount.
resourceLabel string
Label that uniquely identifies a specific Application Load Balancer target group from which to determine the request count served by your Auto Scaling group. You create the resource label by appending the final portion of the load balancer ARN and the final portion of the target group ARN into a single value, separated by a forward slash (/). Refer to PredefinedMetricSpecification for more information.
predefined_metric_type This property is required. str
Which metrics to use. There are two different types of metrics for each metric type: one is a load metric and one is a scaling metric. For example, if the metric type is ASGCPUUtilization, the Auto Scaling group's total CPU metric is used as the load metric, and the average CPU metric is used for the scaling metric. Valid values are ASGCPUUtilization, ASGNetworkIn, ASGNetworkOut, or ALBRequestCount.
resource_label str
Label that uniquely identifies a specific Application Load Balancer target group from which to determine the request count served by your Auto Scaling group. You create the resource label by appending the final portion of the load balancer ARN and the final portion of the target group ARN into a single value, separated by a forward slash (/). Refer to PredefinedMetricSpecification for more information.
predefinedMetricType This property is required. String
Which metrics to use. There are two different types of metrics for each metric type: one is a load metric and one is a scaling metric. For example, if the metric type is ASGCPUUtilization, the Auto Scaling group's total CPU metric is used as the load metric, and the average CPU metric is used for the scaling metric. Valid values are ASGCPUUtilization, ASGNetworkIn, ASGNetworkOut, or ALBRequestCount.
resourceLabel String
Label that uniquely identifies a specific Application Load Balancer target group from which to determine the request count served by your Auto Scaling group. You create the resource label by appending the final portion of the load balancer ARN and the final portion of the target group ARN into a single value, separated by a forward slash (/). Refer to PredefinedMetricSpecification for more information.

PolicyPredictiveScalingConfigurationMetricSpecificationPredefinedScalingMetricSpecification
, PolicyPredictiveScalingConfigurationMetricSpecificationPredefinedScalingMetricSpecificationArgs

PredefinedMetricType This property is required. string
Describes a scaling metric for a predictive scaling policy. Valid values are ASGAverageCPUUtilization, ASGAverageNetworkIn, ASGAverageNetworkOut, or ALBRequestCountPerTarget.
ResourceLabel string
Label that uniquely identifies a specific Application Load Balancer target group from which to determine the request count served by your Auto Scaling group. You create the resource label by appending the final portion of the load balancer ARN and the final portion of the target group ARN into a single value, separated by a forward slash (/). Refer to PredefinedMetricSpecification for more information.
PredefinedMetricType This property is required. string
Describes a scaling metric for a predictive scaling policy. Valid values are ASGAverageCPUUtilization, ASGAverageNetworkIn, ASGAverageNetworkOut, or ALBRequestCountPerTarget.
ResourceLabel string
Label that uniquely identifies a specific Application Load Balancer target group from which to determine the request count served by your Auto Scaling group. You create the resource label by appending the final portion of the load balancer ARN and the final portion of the target group ARN into a single value, separated by a forward slash (/). Refer to PredefinedMetricSpecification for more information.
predefinedMetricType This property is required. String
Describes a scaling metric for a predictive scaling policy. Valid values are ASGAverageCPUUtilization, ASGAverageNetworkIn, ASGAverageNetworkOut, or ALBRequestCountPerTarget.
resourceLabel String
Label that uniquely identifies a specific Application Load Balancer target group from which to determine the request count served by your Auto Scaling group. You create the resource label by appending the final portion of the load balancer ARN and the final portion of the target group ARN into a single value, separated by a forward slash (/). Refer to PredefinedMetricSpecification for more information.
predefinedMetricType This property is required. string
Describes a scaling metric for a predictive scaling policy. Valid values are ASGAverageCPUUtilization, ASGAverageNetworkIn, ASGAverageNetworkOut, or ALBRequestCountPerTarget.
resourceLabel string
Label that uniquely identifies a specific Application Load Balancer target group from which to determine the request count served by your Auto Scaling group. You create the resource label by appending the final portion of the load balancer ARN and the final portion of the target group ARN into a single value, separated by a forward slash (/). Refer to PredefinedMetricSpecification for more information.
predefined_metric_type This property is required. str
Describes a scaling metric for a predictive scaling policy. Valid values are ASGAverageCPUUtilization, ASGAverageNetworkIn, ASGAverageNetworkOut, or ALBRequestCountPerTarget.
resource_label str
Label that uniquely identifies a specific Application Load Balancer target group from which to determine the request count served by your Auto Scaling group. You create the resource label by appending the final portion of the load balancer ARN and the final portion of the target group ARN into a single value, separated by a forward slash (/). Refer to PredefinedMetricSpecification for more information.
predefinedMetricType This property is required. String
Describes a scaling metric for a predictive scaling policy. Valid values are ASGAverageCPUUtilization, ASGAverageNetworkIn, ASGAverageNetworkOut, or ALBRequestCountPerTarget.
resourceLabel String
Label that uniquely identifies a specific Application Load Balancer target group from which to determine the request count served by your Auto Scaling group. You create the resource label by appending the final portion of the load balancer ARN and the final portion of the target group ARN into a single value, separated by a forward slash (/). Refer to PredefinedMetricSpecification for more information.

PolicyStepAdjustment
, PolicyStepAdjustmentArgs

ScalingAdjustment This property is required. int
Number of members by which to scale, when the adjustment bounds are breached. A positive value scales up. A negative value scales down.
MetricIntervalLowerBound string
Lower bound for the difference between the alarm threshold and the CloudWatch metric. Without a value, AWS will treat this bound as negative infinity.
MetricIntervalUpperBound string

Upper bound for the difference between the alarm threshold and the CloudWatch metric. Without a value, AWS will treat this bound as positive infinity. The upper bound must be greater than the lower bound.

Notice the bounds are relative to the alarm threshold, meaning that the starting point is not 0%, but the alarm threshold. Check the official docs for a detailed example.

The following arguments are only available to "TargetTrackingScaling" type policies:

ScalingAdjustment This property is required. int
Number of members by which to scale, when the adjustment bounds are breached. A positive value scales up. A negative value scales down.
MetricIntervalLowerBound string
Lower bound for the difference between the alarm threshold and the CloudWatch metric. Without a value, AWS will treat this bound as negative infinity.
MetricIntervalUpperBound string

Upper bound for the difference between the alarm threshold and the CloudWatch metric. Without a value, AWS will treat this bound as positive infinity. The upper bound must be greater than the lower bound.

Notice the bounds are relative to the alarm threshold, meaning that the starting point is not 0%, but the alarm threshold. Check the official docs for a detailed example.

The following arguments are only available to "TargetTrackingScaling" type policies:

scalingAdjustment This property is required. Integer
Number of members by which to scale, when the adjustment bounds are breached. A positive value scales up. A negative value scales down.
metricIntervalLowerBound String
Lower bound for the difference between the alarm threshold and the CloudWatch metric. Without a value, AWS will treat this bound as negative infinity.
metricIntervalUpperBound String

Upper bound for the difference between the alarm threshold and the CloudWatch metric. Without a value, AWS will treat this bound as positive infinity. The upper bound must be greater than the lower bound.

Notice the bounds are relative to the alarm threshold, meaning that the starting point is not 0%, but the alarm threshold. Check the official docs for a detailed example.

The following arguments are only available to "TargetTrackingScaling" type policies:

scalingAdjustment This property is required. number
Number of members by which to scale, when the adjustment bounds are breached. A positive value scales up. A negative value scales down.
metricIntervalLowerBound string
Lower bound for the difference between the alarm threshold and the CloudWatch metric. Without a value, AWS will treat this bound as negative infinity.
metricIntervalUpperBound string

Upper bound for the difference between the alarm threshold and the CloudWatch metric. Without a value, AWS will treat this bound as positive infinity. The upper bound must be greater than the lower bound.

Notice the bounds are relative to the alarm threshold, meaning that the starting point is not 0%, but the alarm threshold. Check the official docs for a detailed example.

The following arguments are only available to "TargetTrackingScaling" type policies:

scaling_adjustment This property is required. int
Number of members by which to scale, when the adjustment bounds are breached. A positive value scales up. A negative value scales down.
metric_interval_lower_bound str
Lower bound for the difference between the alarm threshold and the CloudWatch metric. Without a value, AWS will treat this bound as negative infinity.
metric_interval_upper_bound str

Upper bound for the difference between the alarm threshold and the CloudWatch metric. Without a value, AWS will treat this bound as positive infinity. The upper bound must be greater than the lower bound.

Notice the bounds are relative to the alarm threshold, meaning that the starting point is not 0%, but the alarm threshold. Check the official docs for a detailed example.

The following arguments are only available to "TargetTrackingScaling" type policies:

scalingAdjustment This property is required. Number
Number of members by which to scale, when the adjustment bounds are breached. A positive value scales up. A negative value scales down.
metricIntervalLowerBound String
Lower bound for the difference between the alarm threshold and the CloudWatch metric. Without a value, AWS will treat this bound as negative infinity.
metricIntervalUpperBound String

Upper bound for the difference between the alarm threshold and the CloudWatch metric. Without a value, AWS will treat this bound as positive infinity. The upper bound must be greater than the lower bound.

Notice the bounds are relative to the alarm threshold, meaning that the starting point is not 0%, but the alarm threshold. Check the official docs for a detailed example.

The following arguments are only available to "TargetTrackingScaling" type policies:

PolicyTargetTrackingConfiguration
, PolicyTargetTrackingConfigurationArgs

TargetValue This property is required. double
Target value for the metric.
CustomizedMetricSpecification PolicyTargetTrackingConfigurationCustomizedMetricSpecification
Customized metric. Conflicts with predefined_metric_specification.
DisableScaleIn bool
Whether scale in by the target tracking policy is disabled.
PredefinedMetricSpecification PolicyTargetTrackingConfigurationPredefinedMetricSpecification
Predefined metric. Conflicts with customized_metric_specification.
TargetValue This property is required. float64
Target value for the metric.
CustomizedMetricSpecification PolicyTargetTrackingConfigurationCustomizedMetricSpecification
Customized metric. Conflicts with predefined_metric_specification.
DisableScaleIn bool
Whether scale in by the target tracking policy is disabled.
PredefinedMetricSpecification PolicyTargetTrackingConfigurationPredefinedMetricSpecification
Predefined metric. Conflicts with customized_metric_specification.
targetValue This property is required. Double
Target value for the metric.
customizedMetricSpecification PolicyTargetTrackingConfigurationCustomizedMetricSpecification
Customized metric. Conflicts with predefined_metric_specification.
disableScaleIn Boolean
Whether scale in by the target tracking policy is disabled.
predefinedMetricSpecification PolicyTargetTrackingConfigurationPredefinedMetricSpecification
Predefined metric. Conflicts with customized_metric_specification.
targetValue This property is required. number
Target value for the metric.
customizedMetricSpecification PolicyTargetTrackingConfigurationCustomizedMetricSpecification
Customized metric. Conflicts with predefined_metric_specification.
disableScaleIn boolean
Whether scale in by the target tracking policy is disabled.
predefinedMetricSpecification PolicyTargetTrackingConfigurationPredefinedMetricSpecification
Predefined metric. Conflicts with customized_metric_specification.
target_value This property is required. float
Target value for the metric.
customized_metric_specification PolicyTargetTrackingConfigurationCustomizedMetricSpecification
Customized metric. Conflicts with predefined_metric_specification.
disable_scale_in bool
Whether scale in by the target tracking policy is disabled.
predefined_metric_specification PolicyTargetTrackingConfigurationPredefinedMetricSpecification
Predefined metric. Conflicts with customized_metric_specification.
targetValue This property is required. Number
Target value for the metric.
customizedMetricSpecification Property Map
Customized metric. Conflicts with predefined_metric_specification.
disableScaleIn Boolean
Whether scale in by the target tracking policy is disabled.
predefinedMetricSpecification Property Map
Predefined metric. Conflicts with customized_metric_specification.

PolicyTargetTrackingConfigurationCustomizedMetricSpecification
, PolicyTargetTrackingConfigurationCustomizedMetricSpecificationArgs

MetricDimensions List<PolicyTargetTrackingConfigurationCustomizedMetricSpecificationMetricDimension>
Dimensions of the metric.
MetricName string
Name of the metric.
Metrics List<PolicyTargetTrackingConfigurationCustomizedMetricSpecificationMetric>
Metrics to include, as a metric data query.
Namespace string
Namespace of the metric.
Period int
The period of the metric in seconds.
Statistic string
Statistic of the metric.
Unit string
Unit of the metric.
MetricDimensions []PolicyTargetTrackingConfigurationCustomizedMetricSpecificationMetricDimension
Dimensions of the metric.
MetricName string
Name of the metric.
Metrics []PolicyTargetTrackingConfigurationCustomizedMetricSpecificationMetric
Metrics to include, as a metric data query.
Namespace string
Namespace of the metric.
Period int
The period of the metric in seconds.
Statistic string
Statistic of the metric.
Unit string
Unit of the metric.
metricDimensions List<PolicyTargetTrackingConfigurationCustomizedMetricSpecificationMetricDimension>
Dimensions of the metric.
metricName String
Name of the metric.
metrics List<PolicyTargetTrackingConfigurationCustomizedMetricSpecificationMetric>
Metrics to include, as a metric data query.
namespace String
Namespace of the metric.
period Integer
The period of the metric in seconds.
statistic String
Statistic of the metric.
unit String
Unit of the metric.
metricDimensions PolicyTargetTrackingConfigurationCustomizedMetricSpecificationMetricDimension[]
Dimensions of the metric.
metricName string
Name of the metric.
metrics PolicyTargetTrackingConfigurationCustomizedMetricSpecificationMetric[]
Metrics to include, as a metric data query.
namespace string
Namespace of the metric.
period number
The period of the metric in seconds.
statistic string
Statistic of the metric.
unit string
Unit of the metric.
metric_dimensions Sequence[PolicyTargetTrackingConfigurationCustomizedMetricSpecificationMetricDimension]
Dimensions of the metric.
metric_name str
Name of the metric.
metrics Sequence[PolicyTargetTrackingConfigurationCustomizedMetricSpecificationMetric]
Metrics to include, as a metric data query.
namespace str
Namespace of the metric.
period int
The period of the metric in seconds.
statistic str
Statistic of the metric.
unit str
Unit of the metric.
metricDimensions List<Property Map>
Dimensions of the metric.
metricName String
Name of the metric.
metrics List<Property Map>
Metrics to include, as a metric data query.
namespace String
Namespace of the metric.
period Number
The period of the metric in seconds.
statistic String
Statistic of the metric.
unit String
Unit of the metric.

PolicyTargetTrackingConfigurationCustomizedMetricSpecificationMetric
, PolicyTargetTrackingConfigurationCustomizedMetricSpecificationMetricArgs

Id This property is required. string
Short name for the metric used in target tracking scaling policy.
Expression string
Math expression used on the returned metric. You must specify either expression or metric_stat, but not both.
Label string
Human-readable label for this metric or expression.
MetricStat PolicyTargetTrackingConfigurationCustomizedMetricSpecificationMetricMetricStat
Structure that defines CloudWatch metric to be used in target tracking scaling policy. You must specify either expression or metric_stat, but not both.
ReturnData bool
Boolean that indicates whether to return the timestamps and raw data values of this metric, the default is true
Id This property is required. string
Short name for the metric used in target tracking scaling policy.
Expression string
Math expression used on the returned metric. You must specify either expression or metric_stat, but not both.
Label string
Human-readable label for this metric or expression.
MetricStat PolicyTargetTrackingConfigurationCustomizedMetricSpecificationMetricMetricStat
Structure that defines CloudWatch metric to be used in target tracking scaling policy. You must specify either expression or metric_stat, but not both.
ReturnData bool
Boolean that indicates whether to return the timestamps and raw data values of this metric, the default is true
id This property is required. String
Short name for the metric used in target tracking scaling policy.
expression String
Math expression used on the returned metric. You must specify either expression or metric_stat, but not both.
label String
Human-readable label for this metric or expression.
metricStat PolicyTargetTrackingConfigurationCustomizedMetricSpecificationMetricMetricStat
Structure that defines CloudWatch metric to be used in target tracking scaling policy. You must specify either expression or metric_stat, but not both.
returnData Boolean
Boolean that indicates whether to return the timestamps and raw data values of this metric, the default is true
id This property is required. string
Short name for the metric used in target tracking scaling policy.
expression string
Math expression used on the returned metric. You must specify either expression or metric_stat, but not both.
label string
Human-readable label for this metric or expression.
metricStat PolicyTargetTrackingConfigurationCustomizedMetricSpecificationMetricMetricStat
Structure that defines CloudWatch metric to be used in target tracking scaling policy. You must specify either expression or metric_stat, but not both.
returnData boolean
Boolean that indicates whether to return the timestamps and raw data values of this metric, the default is true
id This property is required. str
Short name for the metric used in target tracking scaling policy.
expression str
Math expression used on the returned metric. You must specify either expression or metric_stat, but not both.
label str
Human-readable label for this metric or expression.
metric_stat PolicyTargetTrackingConfigurationCustomizedMetricSpecificationMetricMetricStat
Structure that defines CloudWatch metric to be used in target tracking scaling policy. You must specify either expression or metric_stat, but not both.
return_data bool
Boolean that indicates whether to return the timestamps and raw data values of this metric, the default is true
id This property is required. String
Short name for the metric used in target tracking scaling policy.
expression String
Math expression used on the returned metric. You must specify either expression or metric_stat, but not both.
label String
Human-readable label for this metric or expression.
metricStat Property Map
Structure that defines CloudWatch metric to be used in target tracking scaling policy. You must specify either expression or metric_stat, but not both.
returnData Boolean
Boolean that indicates whether to return the timestamps and raw data values of this metric, the default is true

PolicyTargetTrackingConfigurationCustomizedMetricSpecificationMetricDimension
, PolicyTargetTrackingConfigurationCustomizedMetricSpecificationMetricDimensionArgs

Name This property is required. string
Name of the dimension.
Value This property is required. string
Value of the dimension.
Name This property is required. string
Name of the dimension.
Value This property is required. string
Value of the dimension.
name This property is required. String
Name of the dimension.
value This property is required. String
Value of the dimension.
name This property is required. string
Name of the dimension.
value This property is required. string
Value of the dimension.
name This property is required. str
Name of the dimension.
value This property is required. str
Value of the dimension.
name This property is required. String
Name of the dimension.
value This property is required. String
Value of the dimension.

PolicyTargetTrackingConfigurationCustomizedMetricSpecificationMetricMetricStat
, PolicyTargetTrackingConfigurationCustomizedMetricSpecificationMetricMetricStatArgs

Metric This property is required. PolicyTargetTrackingConfigurationCustomizedMetricSpecificationMetricMetricStatMetric
Structure that defines the CloudWatch metric to return, including the metric name, namespace, and dimensions.
Stat This property is required. string
Statistic of the metrics to return.
Period int
The period of the metric in seconds.
Unit string
Unit of the metrics to return.
Metric This property is required. PolicyTargetTrackingConfigurationCustomizedMetricSpecificationMetricMetricStatMetric
Structure that defines the CloudWatch metric to return, including the metric name, namespace, and dimensions.
Stat This property is required. string
Statistic of the metrics to return.
Period int
The period of the metric in seconds.
Unit string
Unit of the metrics to return.
metric This property is required. PolicyTargetTrackingConfigurationCustomizedMetricSpecificationMetricMetricStatMetric
Structure that defines the CloudWatch metric to return, including the metric name, namespace, and dimensions.
stat This property is required. String
Statistic of the metrics to return.
period Integer
The period of the metric in seconds.
unit String
Unit of the metrics to return.
metric This property is required. PolicyTargetTrackingConfigurationCustomizedMetricSpecificationMetricMetricStatMetric
Structure that defines the CloudWatch metric to return, including the metric name, namespace, and dimensions.
stat This property is required. string
Statistic of the metrics to return.
period number
The period of the metric in seconds.
unit string
Unit of the metrics to return.
metric This property is required. PolicyTargetTrackingConfigurationCustomizedMetricSpecificationMetricMetricStatMetric
Structure that defines the CloudWatch metric to return, including the metric name, namespace, and dimensions.
stat This property is required. str
Statistic of the metrics to return.
period int
The period of the metric in seconds.
unit str
Unit of the metrics to return.
metric This property is required. Property Map
Structure that defines the CloudWatch metric to return, including the metric name, namespace, and dimensions.
stat This property is required. String
Statistic of the metrics to return.
period Number
The period of the metric in seconds.
unit String
Unit of the metrics to return.

PolicyTargetTrackingConfigurationCustomizedMetricSpecificationMetricMetricStatMetric
, PolicyTargetTrackingConfigurationCustomizedMetricSpecificationMetricMetricStatMetricArgs

MetricName This property is required. string
Name of the metric.
Namespace This property is required. string
Namespace of the metric.
Dimensions List<PolicyTargetTrackingConfigurationCustomizedMetricSpecificationMetricMetricStatMetricDimension>
Dimensions of the metric.
MetricName This property is required. string
Name of the metric.
Namespace This property is required. string
Namespace of the metric.
Dimensions []PolicyTargetTrackingConfigurationCustomizedMetricSpecificationMetricMetricStatMetricDimension
Dimensions of the metric.
metricName This property is required. String
Name of the metric.
namespace This property is required. String
Namespace of the metric.
dimensions List<PolicyTargetTrackingConfigurationCustomizedMetricSpecificationMetricMetricStatMetricDimension>
Dimensions of the metric.
metricName This property is required. string
Name of the metric.
namespace This property is required. string
Namespace of the metric.
dimensions PolicyTargetTrackingConfigurationCustomizedMetricSpecificationMetricMetricStatMetricDimension[]
Dimensions of the metric.
metric_name This property is required. str
Name of the metric.
namespace This property is required. str
Namespace of the metric.
dimensions Sequence[PolicyTargetTrackingConfigurationCustomizedMetricSpecificationMetricMetricStatMetricDimension]
Dimensions of the metric.
metricName This property is required. String
Name of the metric.
namespace This property is required. String
Namespace of the metric.
dimensions List<Property Map>
Dimensions of the metric.

PolicyTargetTrackingConfigurationCustomizedMetricSpecificationMetricMetricStatMetricDimension
, PolicyTargetTrackingConfigurationCustomizedMetricSpecificationMetricMetricStatMetricDimensionArgs

Name This property is required. string
Name of the dimension.
Value This property is required. string
Value of the dimension.
Name This property is required. string
Name of the dimension.
Value This property is required. string
Value of the dimension.
name This property is required. String
Name of the dimension.
value This property is required. String
Value of the dimension.
name This property is required. string
Name of the dimension.
value This property is required. string
Value of the dimension.
name This property is required. str
Name of the dimension.
value This property is required. str
Value of the dimension.
name This property is required. String
Name of the dimension.
value This property is required. String
Value of the dimension.

PolicyTargetTrackingConfigurationPredefinedMetricSpecification
, PolicyTargetTrackingConfigurationPredefinedMetricSpecificationArgs

PredefinedMetricType This property is required. string
Metric type.
ResourceLabel string
Identifies the resource associated with the metric type.
PredefinedMetricType This property is required. string
Metric type.
ResourceLabel string
Identifies the resource associated with the metric type.
predefinedMetricType This property is required. String
Metric type.
resourceLabel String
Identifies the resource associated with the metric type.
predefinedMetricType This property is required. string
Metric type.
resourceLabel string
Identifies the resource associated with the metric type.
predefined_metric_type This property is required. str
Metric type.
resource_label str
Identifies the resource associated with the metric type.
predefinedMetricType This property is required. String
Metric type.
resourceLabel String
Identifies the resource associated with the metric type.

Import

Using pulumi import, import AutoScaling scaling policy using the role autoscaling_group_name and name separated by /. For example:

$ pulumi import aws:autoscaling/policy:Policy test-policy asg-name/policy-name
Copy

To learn more about importing existing cloud resources, see Importing resources.

Package Details

Repository
AWS Classic pulumi/pulumi-aws
License
Apache-2.0
Notes
This Pulumi package is based on the aws Terraform Provider.