aws logo
AWS Classic v5.29.1, Feb 4 23

aws.autoscaling.Group

Provides an Auto Scaling Group resource.

Note: You must specify either launch_configuration, launch_template, or mixed_instances_policy.

NOTE on Auto Scaling Groups and ASG Attachments: This provider currently provides both a standalone aws.autoscaling.Attachment resource (describing an ASG attached to an ELB or ALB), and an aws.autoscaling.Group with load_balancers and target_group_arns defined in-line. These two methods are not mutually-exclusive. If aws.autoscaling.Attachment resources are used, either alone or with inline load_balancers or target_group_arns, the aws.autoscaling.Group resource must be configured to ignore changes to the load_balancers and target_group_arns arguments.

Waiting for Capacity

A newly-created ASG is initially empty and begins to scale to min_size (or desired_capacity, if specified) by launching instances using the provided Launch Configuration. These instances take time to launch and boot.

On ASG Update, changes to these values also take time to result in the target number of instances providing service.

This provider provides two mechanisms to help consistently manage ASG scale up time across dependent resources.

Waiting for ASG Capacity

The first is default behavior. This provider waits after ASG creation for min_size (or desired_capacity, if specified) healthy instances to show up in the ASG before continuing.

If min_size or desired_capacity are changed in a subsequent update, this provider will also wait for the correct number of healthy instances before continuing.

This provider considers an instance “healthy” when the ASG reports HealthStatus: "Healthy" and LifecycleState: "InService". See the AWS AutoScaling Docs for more information on an ASG’s lifecycle.

This provider will wait for healthy instances for up to wait_for_capacity_timeout. If ASG creation is taking more than a few minutes, it’s worth investigating for scaling activity errors, which can be caused by problems with the selected Launch Configuration.

Setting wait_for_capacity_timeout to "0" disables ASG Capacity waiting.

Waiting for ELB Capacity

The second mechanism is optional, and affects ASGs with attached ELBs specified via the load_balancers attribute or with ALBs specified with target_group_arns.

The min_elb_capacity parameter causes the provider to wait for at least the requested number of instances to show up "InService" in all attached ELBs during ASG creation. It has no effect on ASG updates.

If wait_for_elb_capacity is set, the provider will wait for exactly that number of Instances to be "InService" in all attached ELBs on both creation and updates.

These parameters can be used to ensure that service is being provided before the provider moves on. If new instances don’t pass the ELB’s health checks for any reason, the apply will time out, and the ASG will be marked as tainted (i.e., marked to be destroyed in a follow up run).

As with ASG Capacity, the provider will wait for up to wait_for_capacity_timeout for the proper number of instances to be healthy.

Troubleshooting Capacity Waiting Timeouts

If ASG creation takes more than a few minutes, this could indicate one of a number of configuration problems. See the AWS Docs on Load Balancer Troubleshooting for more information.

Example Usage

With Latest Version Of Launch Template

using System.Collections.Generic;
using Pulumi;
using Aws = Pulumi.Aws;

return await Deployment.RunAsync(() => 
{
    var foobar = new Aws.Ec2.LaunchTemplate("foobar", new()
    {
        NamePrefix = "foobar",
        ImageId = "ami-1a2b3c",
        InstanceType = "t2.micro",
    });

    var bar = new Aws.AutoScaling.Group("bar", new()
    {
        AvailabilityZones = new[]
        {
            "us-east-1a",
        },
        DesiredCapacity = 1,
        MaxSize = 1,
        MinSize = 1,
        LaunchTemplate = new Aws.AutoScaling.Inputs.GroupLaunchTemplateArgs
        {
            Id = foobar.Id,
            Version = "$Latest",
        },
    });

});
package main

import (
	"fmt"

	"github.com/pulumi/pulumi-aws/sdk/v5/go/aws/autoscaling"
	"github.com/pulumi/pulumi-aws/sdk/v5/go/aws/ec2"
	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		foobar, err := ec2.NewLaunchTemplate(ctx, "foobar", &ec2.LaunchTemplateArgs{
			NamePrefix:   pulumi.String("foobar"),
			ImageId:      pulumi.String("ami-1a2b3c"),
			InstanceType: pulumi.String("t2.micro"),
		})
		if err != nil {
			return err
		}
		_, err = autoscaling.NewGroup(ctx, "bar", &autoscaling.GroupArgs{
			AvailabilityZones: pulumi.StringArray{
				pulumi.String("us-east-1a"),
			},
			DesiredCapacity: pulumi.Int(1),
			MaxSize:         pulumi.Int(1),
			MinSize:         pulumi.Int(1),
			LaunchTemplate: &autoscaling.GroupLaunchTemplateArgs{
				Id:      foobar.ID(),
				Version: pulumi.String(fmt.Sprintf("$Latest")),
			},
		})
		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.ec2.LaunchTemplate;
import com.pulumi.aws.ec2.LaunchTemplateArgs;
import com.pulumi.aws.autoscaling.Group;
import com.pulumi.aws.autoscaling.GroupArgs;
import com.pulumi.aws.autoscaling.inputs.GroupLaunchTemplateArgs;
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 foobar = new LaunchTemplate("foobar", LaunchTemplateArgs.builder()        
            .namePrefix("foobar")
            .imageId("ami-1a2b3c")
            .instanceType("t2.micro")
            .build());

        var bar = new Group("bar", GroupArgs.builder()        
            .availabilityZones("us-east-1a")
            .desiredCapacity(1)
            .maxSize(1)
            .minSize(1)
            .launchTemplate(GroupLaunchTemplateArgs.builder()
                .id(foobar.id())
                .version("$Latest")
                .build())
            .build());

    }
}
import pulumi
import pulumi_aws as aws

foobar = aws.ec2.LaunchTemplate("foobar",
    name_prefix="foobar",
    image_id="ami-1a2b3c",
    instance_type="t2.micro")
bar = aws.autoscaling.Group("bar",
    availability_zones=["us-east-1a"],
    desired_capacity=1,
    max_size=1,
    min_size=1,
    launch_template=aws.autoscaling.GroupLaunchTemplateArgs(
        id=foobar.id,
        version="$Latest",
    ))
import * as pulumi from "@pulumi/pulumi";
import * as aws from "@pulumi/aws";

const foobar = new aws.ec2.LaunchTemplate("foobar", {
    namePrefix: "foobar",
    imageId: "ami-1a2b3c",
    instanceType: "t2.micro",
});
const bar = new aws.autoscaling.Group("bar", {
    availabilityZones: ["us-east-1a"],
    desiredCapacity: 1,
    maxSize: 1,
    minSize: 1,
    launchTemplate: {
        id: foobar.id,
        version: `$Latest`,
    },
});
resources:
  foobar:
    type: aws:ec2:LaunchTemplate
    properties:
      namePrefix: foobar
      imageId: ami-1a2b3c
      instanceType: t2.micro
  bar:
    type: aws:autoscaling:Group
    properties:
      availabilityZones:
        - us-east-1a
      desiredCapacity: 1
      maxSize: 1
      minSize: 1
      launchTemplate:
        id: ${foobar.id}
        version: $Latest

Mixed Instances Policy

using System.Collections.Generic;
using Pulumi;
using Aws = Pulumi.Aws;

return await Deployment.RunAsync(() => 
{
    var exampleLaunchTemplate = new Aws.Ec2.LaunchTemplate("exampleLaunchTemplate", new()
    {
        NamePrefix = "example",
        ImageId = data.Aws_ami.Example.Id,
        InstanceType = "c5.large",
    });

    var exampleGroup = new Aws.AutoScaling.Group("exampleGroup", new()
    {
        AvailabilityZones = new[]
        {
            "us-east-1a",
        },
        DesiredCapacity = 1,
        MaxSize = 1,
        MinSize = 1,
        MixedInstancesPolicy = new Aws.AutoScaling.Inputs.GroupMixedInstancesPolicyArgs
        {
            LaunchTemplate = new Aws.AutoScaling.Inputs.GroupMixedInstancesPolicyLaunchTemplateArgs
            {
                LaunchTemplateSpecification = new Aws.AutoScaling.Inputs.GroupMixedInstancesPolicyLaunchTemplateLaunchTemplateSpecificationArgs
                {
                    LaunchTemplateId = exampleLaunchTemplate.Id,
                },
                Overrides = new[]
                {
                    new Aws.AutoScaling.Inputs.GroupMixedInstancesPolicyLaunchTemplateOverrideArgs
                    {
                        InstanceType = "c4.large",
                        WeightedCapacity = "3",
                    },
                    new Aws.AutoScaling.Inputs.GroupMixedInstancesPolicyLaunchTemplateOverrideArgs
                    {
                        InstanceType = "c3.large",
                        WeightedCapacity = "2",
                    },
                },
            },
        },
    });

});
package main

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

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		exampleLaunchTemplate, err := ec2.NewLaunchTemplate(ctx, "exampleLaunchTemplate", &ec2.LaunchTemplateArgs{
			NamePrefix:   pulumi.String("example"),
			ImageId:      pulumi.Any(data.Aws_ami.Example.Id),
			InstanceType: pulumi.String("c5.large"),
		})
		if err != nil {
			return err
		}
		_, err = autoscaling.NewGroup(ctx, "exampleGroup", &autoscaling.GroupArgs{
			AvailabilityZones: pulumi.StringArray{
				pulumi.String("us-east-1a"),
			},
			DesiredCapacity: pulumi.Int(1),
			MaxSize:         pulumi.Int(1),
			MinSize:         pulumi.Int(1),
			MixedInstancesPolicy: &autoscaling.GroupMixedInstancesPolicyArgs{
				LaunchTemplate: &autoscaling.GroupMixedInstancesPolicyLaunchTemplateArgs{
					LaunchTemplateSpecification: &autoscaling.GroupMixedInstancesPolicyLaunchTemplateLaunchTemplateSpecificationArgs{
						LaunchTemplateId: exampleLaunchTemplate.ID(),
					},
					Overrides: autoscaling.GroupMixedInstancesPolicyLaunchTemplateOverrideArray{
						&autoscaling.GroupMixedInstancesPolicyLaunchTemplateOverrideArgs{
							InstanceType:     pulumi.String("c4.large"),
							WeightedCapacity: pulumi.String("3"),
						},
						&autoscaling.GroupMixedInstancesPolicyLaunchTemplateOverrideArgs{
							InstanceType:     pulumi.String("c3.large"),
							WeightedCapacity: pulumi.String("2"),
						},
					},
				},
			},
		})
		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.ec2.LaunchTemplate;
import com.pulumi.aws.ec2.LaunchTemplateArgs;
import com.pulumi.aws.autoscaling.Group;
import com.pulumi.aws.autoscaling.GroupArgs;
import com.pulumi.aws.autoscaling.inputs.GroupMixedInstancesPolicyArgs;
import com.pulumi.aws.autoscaling.inputs.GroupMixedInstancesPolicyLaunchTemplateArgs;
import com.pulumi.aws.autoscaling.inputs.GroupMixedInstancesPolicyLaunchTemplateLaunchTemplateSpecificationArgs;
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 exampleLaunchTemplate = new LaunchTemplate("exampleLaunchTemplate", LaunchTemplateArgs.builder()        
            .namePrefix("example")
            .imageId(data.aws_ami().example().id())
            .instanceType("c5.large")
            .build());

        var exampleGroup = new Group("exampleGroup", GroupArgs.builder()        
            .availabilityZones("us-east-1a")
            .desiredCapacity(1)
            .maxSize(1)
            .minSize(1)
            .mixedInstancesPolicy(GroupMixedInstancesPolicyArgs.builder()
                .launchTemplate(GroupMixedInstancesPolicyLaunchTemplateArgs.builder()
                    .launchTemplateSpecification(GroupMixedInstancesPolicyLaunchTemplateLaunchTemplateSpecificationArgs.builder()
                        .launchTemplateId(exampleLaunchTemplate.id())
                        .build())
                    .overrides(                    
                        GroupMixedInstancesPolicyLaunchTemplateOverrideArgs.builder()
                            .instanceType("c4.large")
                            .weightedCapacity("3")
                            .build(),
                        GroupMixedInstancesPolicyLaunchTemplateOverrideArgs.builder()
                            .instanceType("c3.large")
                            .weightedCapacity("2")
                            .build())
                    .build())
                .build())
            .build());

    }
}
import pulumi
import pulumi_aws as aws

example_launch_template = aws.ec2.LaunchTemplate("exampleLaunchTemplate",
    name_prefix="example",
    image_id=data["aws_ami"]["example"]["id"],
    instance_type="c5.large")
example_group = aws.autoscaling.Group("exampleGroup",
    availability_zones=["us-east-1a"],
    desired_capacity=1,
    max_size=1,
    min_size=1,
    mixed_instances_policy=aws.autoscaling.GroupMixedInstancesPolicyArgs(
        launch_template=aws.autoscaling.GroupMixedInstancesPolicyLaunchTemplateArgs(
            launch_template_specification=aws.autoscaling.GroupMixedInstancesPolicyLaunchTemplateLaunchTemplateSpecificationArgs(
                launch_template_id=example_launch_template.id,
            ),
            overrides=[
                aws.autoscaling.GroupMixedInstancesPolicyLaunchTemplateOverrideArgs(
                    instance_type="c4.large",
                    weighted_capacity="3",
                ),
                aws.autoscaling.GroupMixedInstancesPolicyLaunchTemplateOverrideArgs(
                    instance_type="c3.large",
                    weighted_capacity="2",
                ),
            ],
        ),
    ))
import * as pulumi from "@pulumi/pulumi";
import * as aws from "@pulumi/aws";

const exampleLaunchTemplate = new aws.ec2.LaunchTemplate("exampleLaunchTemplate", {
    namePrefix: "example",
    imageId: data.aws_ami.example.id,
    instanceType: "c5.large",
});
const exampleGroup = new aws.autoscaling.Group("exampleGroup", {
    availabilityZones: ["us-east-1a"],
    desiredCapacity: 1,
    maxSize: 1,
    minSize: 1,
    mixedInstancesPolicy: {
        launchTemplate: {
            launchTemplateSpecification: {
                launchTemplateId: exampleLaunchTemplate.id,
            },
            overrides: [
                {
                    instanceType: "c4.large",
                    weightedCapacity: "3",
                },
                {
                    instanceType: "c3.large",
                    weightedCapacity: "2",
                },
            ],
        },
    },
});
resources:
  exampleLaunchTemplate:
    type: aws:ec2:LaunchTemplate
    properties:
      namePrefix: example
      imageId: ${data.aws_ami.example.id}
      instanceType: c5.large
  exampleGroup:
    type: aws:autoscaling:Group
    properties:
      availabilityZones:
        - us-east-1a
      desiredCapacity: 1
      maxSize: 1
      minSize: 1
      mixedInstancesPolicy:
        launchTemplate:
          launchTemplateSpecification:
            launchTemplateId: ${exampleLaunchTemplate.id}
          overrides:
            - instanceType: c4.large
              weightedCapacity: '3'
            - instanceType: c3.large
              weightedCapacity: '2'

Mixed Instances Policy with Spot Instances and Capacity Rebalance

using System.Collections.Generic;
using Pulumi;
using Aws = Pulumi.Aws;

return await Deployment.RunAsync(() => 
{
    var exampleLaunchTemplate = new Aws.Ec2.LaunchTemplate("exampleLaunchTemplate", new()
    {
        NamePrefix = "example",
        ImageId = data.Aws_ami.Example.Id,
        InstanceType = "c5.large",
    });

    var exampleGroup = new Aws.AutoScaling.Group("exampleGroup", new()
    {
        CapacityRebalance = true,
        DesiredCapacity = 12,
        MaxSize = 15,
        MinSize = 12,
        VpcZoneIdentifiers = new[]
        {
            aws_subnet.Example1.Id,
            aws_subnet.Example2.Id,
        },
        MixedInstancesPolicy = new Aws.AutoScaling.Inputs.GroupMixedInstancesPolicyArgs
        {
            InstancesDistribution = new Aws.AutoScaling.Inputs.GroupMixedInstancesPolicyInstancesDistributionArgs
            {
                OnDemandBaseCapacity = 0,
                OnDemandPercentageAboveBaseCapacity = 25,
                SpotAllocationStrategy = "capacity-optimized",
            },
            LaunchTemplate = new Aws.AutoScaling.Inputs.GroupMixedInstancesPolicyLaunchTemplateArgs
            {
                LaunchTemplateSpecification = new Aws.AutoScaling.Inputs.GroupMixedInstancesPolicyLaunchTemplateLaunchTemplateSpecificationArgs
                {
                    LaunchTemplateId = exampleLaunchTemplate.Id,
                },
                Overrides = new[]
                {
                    new Aws.AutoScaling.Inputs.GroupMixedInstancesPolicyLaunchTemplateOverrideArgs
                    {
                        InstanceType = "c4.large",
                        WeightedCapacity = "3",
                    },
                    new Aws.AutoScaling.Inputs.GroupMixedInstancesPolicyLaunchTemplateOverrideArgs
                    {
                        InstanceType = "c3.large",
                        WeightedCapacity = "2",
                    },
                },
            },
        },
    });

});
package main

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

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		exampleLaunchTemplate, err := ec2.NewLaunchTemplate(ctx, "exampleLaunchTemplate", &ec2.LaunchTemplateArgs{
			NamePrefix:   pulumi.String("example"),
			ImageId:      pulumi.Any(data.Aws_ami.Example.Id),
			InstanceType: pulumi.String("c5.large"),
		})
		if err != nil {
			return err
		}
		_, err = autoscaling.NewGroup(ctx, "exampleGroup", &autoscaling.GroupArgs{
			CapacityRebalance: pulumi.Bool(true),
			DesiredCapacity:   pulumi.Int(12),
			MaxSize:           pulumi.Int(15),
			MinSize:           pulumi.Int(12),
			VpcZoneIdentifiers: pulumi.StringArray{
				aws_subnet.Example1.Id,
				aws_subnet.Example2.Id,
			},
			MixedInstancesPolicy: &autoscaling.GroupMixedInstancesPolicyArgs{
				InstancesDistribution: &autoscaling.GroupMixedInstancesPolicyInstancesDistributionArgs{
					OnDemandBaseCapacity:                pulumi.Int(0),
					OnDemandPercentageAboveBaseCapacity: pulumi.Int(25),
					SpotAllocationStrategy:              pulumi.String("capacity-optimized"),
				},
				LaunchTemplate: &autoscaling.GroupMixedInstancesPolicyLaunchTemplateArgs{
					LaunchTemplateSpecification: &autoscaling.GroupMixedInstancesPolicyLaunchTemplateLaunchTemplateSpecificationArgs{
						LaunchTemplateId: exampleLaunchTemplate.ID(),
					},
					Overrides: autoscaling.GroupMixedInstancesPolicyLaunchTemplateOverrideArray{
						&autoscaling.GroupMixedInstancesPolicyLaunchTemplateOverrideArgs{
							InstanceType:     pulumi.String("c4.large"),
							WeightedCapacity: pulumi.String("3"),
						},
						&autoscaling.GroupMixedInstancesPolicyLaunchTemplateOverrideArgs{
							InstanceType:     pulumi.String("c3.large"),
							WeightedCapacity: pulumi.String("2"),
						},
					},
				},
			},
		})
		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.ec2.LaunchTemplate;
import com.pulumi.aws.ec2.LaunchTemplateArgs;
import com.pulumi.aws.autoscaling.Group;
import com.pulumi.aws.autoscaling.GroupArgs;
import com.pulumi.aws.autoscaling.inputs.GroupMixedInstancesPolicyArgs;
import com.pulumi.aws.autoscaling.inputs.GroupMixedInstancesPolicyInstancesDistributionArgs;
import com.pulumi.aws.autoscaling.inputs.GroupMixedInstancesPolicyLaunchTemplateArgs;
import com.pulumi.aws.autoscaling.inputs.GroupMixedInstancesPolicyLaunchTemplateLaunchTemplateSpecificationArgs;
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 exampleLaunchTemplate = new LaunchTemplate("exampleLaunchTemplate", LaunchTemplateArgs.builder()        
            .namePrefix("example")
            .imageId(data.aws_ami().example().id())
            .instanceType("c5.large")
            .build());

        var exampleGroup = new Group("exampleGroup", GroupArgs.builder()        
            .capacityRebalance(true)
            .desiredCapacity(12)
            .maxSize(15)
            .minSize(12)
            .vpcZoneIdentifiers(            
                aws_subnet.example1().id(),
                aws_subnet.example2().id())
            .mixedInstancesPolicy(GroupMixedInstancesPolicyArgs.builder()
                .instancesDistribution(GroupMixedInstancesPolicyInstancesDistributionArgs.builder()
                    .onDemandBaseCapacity(0)
                    .onDemandPercentageAboveBaseCapacity(25)
                    .spotAllocationStrategy("capacity-optimized")
                    .build())
                .launchTemplate(GroupMixedInstancesPolicyLaunchTemplateArgs.builder()
                    .launchTemplateSpecification(GroupMixedInstancesPolicyLaunchTemplateLaunchTemplateSpecificationArgs.builder()
                        .launchTemplateId(exampleLaunchTemplate.id())
                        .build())
                    .overrides(                    
                        GroupMixedInstancesPolicyLaunchTemplateOverrideArgs.builder()
                            .instanceType("c4.large")
                            .weightedCapacity("3")
                            .build(),
                        GroupMixedInstancesPolicyLaunchTemplateOverrideArgs.builder()
                            .instanceType("c3.large")
                            .weightedCapacity("2")
                            .build())
                    .build())
                .build())
            .build());

    }
}
import pulumi
import pulumi_aws as aws

example_launch_template = aws.ec2.LaunchTemplate("exampleLaunchTemplate",
    name_prefix="example",
    image_id=data["aws_ami"]["example"]["id"],
    instance_type="c5.large")
example_group = aws.autoscaling.Group("exampleGroup",
    capacity_rebalance=True,
    desired_capacity=12,
    max_size=15,
    min_size=12,
    vpc_zone_identifiers=[
        aws_subnet["example1"]["id"],
        aws_subnet["example2"]["id"],
    ],
    mixed_instances_policy=aws.autoscaling.GroupMixedInstancesPolicyArgs(
        instances_distribution=aws.autoscaling.GroupMixedInstancesPolicyInstancesDistributionArgs(
            on_demand_base_capacity=0,
            on_demand_percentage_above_base_capacity=25,
            spot_allocation_strategy="capacity-optimized",
        ),
        launch_template=aws.autoscaling.GroupMixedInstancesPolicyLaunchTemplateArgs(
            launch_template_specification=aws.autoscaling.GroupMixedInstancesPolicyLaunchTemplateLaunchTemplateSpecificationArgs(
                launch_template_id=example_launch_template.id,
            ),
            overrides=[
                aws.autoscaling.GroupMixedInstancesPolicyLaunchTemplateOverrideArgs(
                    instance_type="c4.large",
                    weighted_capacity="3",
                ),
                aws.autoscaling.GroupMixedInstancesPolicyLaunchTemplateOverrideArgs(
                    instance_type="c3.large",
                    weighted_capacity="2",
                ),
            ],
        ),
    ))
import * as pulumi from "@pulumi/pulumi";
import * as aws from "@pulumi/aws";

const exampleLaunchTemplate = new aws.ec2.LaunchTemplate("exampleLaunchTemplate", {
    namePrefix: "example",
    imageId: data.aws_ami.example.id,
    instanceType: "c5.large",
});
const exampleGroup = new aws.autoscaling.Group("exampleGroup", {
    capacityRebalance: true,
    desiredCapacity: 12,
    maxSize: 15,
    minSize: 12,
    vpcZoneIdentifiers: [
        aws_subnet.example1.id,
        aws_subnet.example2.id,
    ],
    mixedInstancesPolicy: {
        instancesDistribution: {
            onDemandBaseCapacity: 0,
            onDemandPercentageAboveBaseCapacity: 25,
            spotAllocationStrategy: "capacity-optimized",
        },
        launchTemplate: {
            launchTemplateSpecification: {
                launchTemplateId: exampleLaunchTemplate.id,
            },
            overrides: [
                {
                    instanceType: "c4.large",
                    weightedCapacity: "3",
                },
                {
                    instanceType: "c3.large",
                    weightedCapacity: "2",
                },
            ],
        },
    },
});
resources:
  exampleLaunchTemplate:
    type: aws:ec2:LaunchTemplate
    properties:
      namePrefix: example
      imageId: ${data.aws_ami.example.id}
      instanceType: c5.large
  exampleGroup:
    type: aws:autoscaling:Group
    properties:
      capacityRebalance: true
      desiredCapacity: 12
      maxSize: 15
      minSize: 12
      vpcZoneIdentifiers:
        - ${aws_subnet.example1.id}
        - ${aws_subnet.example2.id}
      mixedInstancesPolicy:
        instancesDistribution:
          onDemandBaseCapacity: 0
          onDemandPercentageAboveBaseCapacity: 25
          spotAllocationStrategy: capacity-optimized
        launchTemplate:
          launchTemplateSpecification:
            launchTemplateId: ${exampleLaunchTemplate.id}
          overrides:
            - instanceType: c4.large
              weightedCapacity: '3'
            - instanceType: c3.large
              weightedCapacity: '2'

Mixed Instances Policy with Instance level LaunchTemplateSpecification Overrides

using System.Collections.Generic;
using Pulumi;
using Aws = Pulumi.Aws;

return await Deployment.RunAsync(() => 
{
    var exampleLaunchTemplate = new Aws.Ec2.LaunchTemplate("exampleLaunchTemplate", new()
    {
        NamePrefix = "example",
        ImageId = data.Aws_ami.Example.Id,
        InstanceType = "c5.large",
    });

    var example2 = new Aws.Ec2.LaunchTemplate("example2", new()
    {
        NamePrefix = "example2",
        ImageId = data.Aws_ami.Example2.Id,
    });

    var exampleGroup = new Aws.AutoScaling.Group("exampleGroup", new()
    {
        AvailabilityZones = new[]
        {
            "us-east-1a",
        },
        DesiredCapacity = 1,
        MaxSize = 1,
        MinSize = 1,
        MixedInstancesPolicy = new Aws.AutoScaling.Inputs.GroupMixedInstancesPolicyArgs
        {
            LaunchTemplate = new Aws.AutoScaling.Inputs.GroupMixedInstancesPolicyLaunchTemplateArgs
            {
                LaunchTemplateSpecification = new Aws.AutoScaling.Inputs.GroupMixedInstancesPolicyLaunchTemplateLaunchTemplateSpecificationArgs
                {
                    LaunchTemplateId = exampleLaunchTemplate.Id,
                },
                Overrides = new[]
                {
                    new Aws.AutoScaling.Inputs.GroupMixedInstancesPolicyLaunchTemplateOverrideArgs
                    {
                        InstanceType = "c4.large",
                        WeightedCapacity = "3",
                    },
                    new Aws.AutoScaling.Inputs.GroupMixedInstancesPolicyLaunchTemplateOverrideArgs
                    {
                        InstanceType = "c6g.large",
                        LaunchTemplateSpecification = new Aws.AutoScaling.Inputs.GroupMixedInstancesPolicyLaunchTemplateOverrideLaunchTemplateSpecificationArgs
                        {
                            LaunchTemplateId = example2.Id,
                        },
                        WeightedCapacity = "2",
                    },
                },
            },
        },
    });

});
package main

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

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		exampleLaunchTemplate, err := ec2.NewLaunchTemplate(ctx, "exampleLaunchTemplate", &ec2.LaunchTemplateArgs{
			NamePrefix:   pulumi.String("example"),
			ImageId:      pulumi.Any(data.Aws_ami.Example.Id),
			InstanceType: pulumi.String("c5.large"),
		})
		if err != nil {
			return err
		}
		example2, err := ec2.NewLaunchTemplate(ctx, "example2", &ec2.LaunchTemplateArgs{
			NamePrefix: pulumi.String("example2"),
			ImageId:    pulumi.Any(data.Aws_ami.Example2.Id),
		})
		if err != nil {
			return err
		}
		_, err = autoscaling.NewGroup(ctx, "exampleGroup", &autoscaling.GroupArgs{
			AvailabilityZones: pulumi.StringArray{
				pulumi.String("us-east-1a"),
			},
			DesiredCapacity: pulumi.Int(1),
			MaxSize:         pulumi.Int(1),
			MinSize:         pulumi.Int(1),
			MixedInstancesPolicy: &autoscaling.GroupMixedInstancesPolicyArgs{
				LaunchTemplate: &autoscaling.GroupMixedInstancesPolicyLaunchTemplateArgs{
					LaunchTemplateSpecification: &autoscaling.GroupMixedInstancesPolicyLaunchTemplateLaunchTemplateSpecificationArgs{
						LaunchTemplateId: exampleLaunchTemplate.ID(),
					},
					Overrides: autoscaling.GroupMixedInstancesPolicyLaunchTemplateOverrideArray{
						&autoscaling.GroupMixedInstancesPolicyLaunchTemplateOverrideArgs{
							InstanceType:     pulumi.String("c4.large"),
							WeightedCapacity: pulumi.String("3"),
						},
						&autoscaling.GroupMixedInstancesPolicyLaunchTemplateOverrideArgs{
							InstanceType: pulumi.String("c6g.large"),
							LaunchTemplateSpecification: &autoscaling.GroupMixedInstancesPolicyLaunchTemplateOverrideLaunchTemplateSpecificationArgs{
								LaunchTemplateId: example2.ID(),
							},
							WeightedCapacity: pulumi.String("2"),
						},
					},
				},
			},
		})
		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.ec2.LaunchTemplate;
import com.pulumi.aws.ec2.LaunchTemplateArgs;
import com.pulumi.aws.autoscaling.Group;
import com.pulumi.aws.autoscaling.GroupArgs;
import com.pulumi.aws.autoscaling.inputs.GroupMixedInstancesPolicyArgs;
import com.pulumi.aws.autoscaling.inputs.GroupMixedInstancesPolicyLaunchTemplateArgs;
import com.pulumi.aws.autoscaling.inputs.GroupMixedInstancesPolicyLaunchTemplateLaunchTemplateSpecificationArgs;
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 exampleLaunchTemplate = new LaunchTemplate("exampleLaunchTemplate", LaunchTemplateArgs.builder()        
            .namePrefix("example")
            .imageId(data.aws_ami().example().id())
            .instanceType("c5.large")
            .build());

        var example2 = new LaunchTemplate("example2", LaunchTemplateArgs.builder()        
            .namePrefix("example2")
            .imageId(data.aws_ami().example2().id())
            .build());

        var exampleGroup = new Group("exampleGroup", GroupArgs.builder()        
            .availabilityZones("us-east-1a")
            .desiredCapacity(1)
            .maxSize(1)
            .minSize(1)
            .mixedInstancesPolicy(GroupMixedInstancesPolicyArgs.builder()
                .launchTemplate(GroupMixedInstancesPolicyLaunchTemplateArgs.builder()
                    .launchTemplateSpecification(GroupMixedInstancesPolicyLaunchTemplateLaunchTemplateSpecificationArgs.builder()
                        .launchTemplateId(exampleLaunchTemplate.id())
                        .build())
                    .overrides(                    
                        GroupMixedInstancesPolicyLaunchTemplateOverrideArgs.builder()
                            .instanceType("c4.large")
                            .weightedCapacity("3")
                            .build(),
                        GroupMixedInstancesPolicyLaunchTemplateOverrideArgs.builder()
                            .instanceType("c6g.large")
                            .launchTemplateSpecification(GroupMixedInstancesPolicyLaunchTemplateOverrideLaunchTemplateSpecificationArgs.builder()
                                .launchTemplateId(example2.id())
                                .build())
                            .weightedCapacity("2")
                            .build())
                    .build())
                .build())
            .build());

    }
}
import pulumi
import pulumi_aws as aws

example_launch_template = aws.ec2.LaunchTemplate("exampleLaunchTemplate",
    name_prefix="example",
    image_id=data["aws_ami"]["example"]["id"],
    instance_type="c5.large")
example2 = aws.ec2.LaunchTemplate("example2",
    name_prefix="example2",
    image_id=data["aws_ami"]["example2"]["id"])
example_group = aws.autoscaling.Group("exampleGroup",
    availability_zones=["us-east-1a"],
    desired_capacity=1,
    max_size=1,
    min_size=1,
    mixed_instances_policy=aws.autoscaling.GroupMixedInstancesPolicyArgs(
        launch_template=aws.autoscaling.GroupMixedInstancesPolicyLaunchTemplateArgs(
            launch_template_specification=aws.autoscaling.GroupMixedInstancesPolicyLaunchTemplateLaunchTemplateSpecificationArgs(
                launch_template_id=example_launch_template.id,
            ),
            overrides=[
                aws.autoscaling.GroupMixedInstancesPolicyLaunchTemplateOverrideArgs(
                    instance_type="c4.large",
                    weighted_capacity="3",
                ),
                aws.autoscaling.GroupMixedInstancesPolicyLaunchTemplateOverrideArgs(
                    instance_type="c6g.large",
                    launch_template_specification=aws.autoscaling.GroupMixedInstancesPolicyLaunchTemplateOverrideLaunchTemplateSpecificationArgs(
                        launch_template_id=example2.id,
                    ),
                    weighted_capacity="2",
                ),
            ],
        ),
    ))
import * as pulumi from "@pulumi/pulumi";
import * as aws from "@pulumi/aws";

const exampleLaunchTemplate = new aws.ec2.LaunchTemplate("exampleLaunchTemplate", {
    namePrefix: "example",
    imageId: data.aws_ami.example.id,
    instanceType: "c5.large",
});
const example2 = new aws.ec2.LaunchTemplate("example2", {
    namePrefix: "example2",
    imageId: data.aws_ami.example2.id,
});
const exampleGroup = new aws.autoscaling.Group("exampleGroup", {
    availabilityZones: ["us-east-1a"],
    desiredCapacity: 1,
    maxSize: 1,
    minSize: 1,
    mixedInstancesPolicy: {
        launchTemplate: {
            launchTemplateSpecification: {
                launchTemplateId: exampleLaunchTemplate.id,
            },
            overrides: [
                {
                    instanceType: "c4.large",
                    weightedCapacity: "3",
                },
                {
                    instanceType: "c6g.large",
                    launchTemplateSpecification: {
                        launchTemplateId: example2.id,
                    },
                    weightedCapacity: "2",
                },
            ],
        },
    },
});
resources:
  exampleLaunchTemplate:
    type: aws:ec2:LaunchTemplate
    properties:
      namePrefix: example
      imageId: ${data.aws_ami.example.id}
      instanceType: c5.large
  example2:
    type: aws:ec2:LaunchTemplate
    properties:
      namePrefix: example2
      imageId: ${data.aws_ami.example2.id}
  exampleGroup:
    type: aws:autoscaling:Group
    properties:
      availabilityZones:
        - us-east-1a
      desiredCapacity: 1
      maxSize: 1
      minSize: 1
      mixedInstancesPolicy:
        launchTemplate:
          launchTemplateSpecification:
            launchTemplateId: ${exampleLaunchTemplate.id}
          overrides:
            - instanceType: c4.large
              weightedCapacity: '3'
            - instanceType: c6g.large
              launchTemplateSpecification:
                launchTemplateId: ${example2.id}
              weightedCapacity: '2'

Mixed Instances Policy with Attribute-based Instance Type Selection

using System.Collections.Generic;
using Pulumi;
using Aws = Pulumi.Aws;

return await Deployment.RunAsync(() => 
{
    var exampleLaunchTemplate = new Aws.Ec2.LaunchTemplate("exampleLaunchTemplate", new()
    {
        NamePrefix = "example",
        ImageId = data.Aws_ami.Example.Id,
        InstanceType = "c5.large",
    });

    var exampleGroup = new Aws.AutoScaling.Group("exampleGroup", new()
    {
        AvailabilityZones = new[]
        {
            "us-east-1a",
        },
        DesiredCapacity = 1,
        MaxSize = 1,
        MinSize = 1,
        MixedInstancesPolicy = new Aws.AutoScaling.Inputs.GroupMixedInstancesPolicyArgs
        {
            LaunchTemplate = new Aws.AutoScaling.Inputs.GroupMixedInstancesPolicyLaunchTemplateArgs
            {
                LaunchTemplateSpecification = new Aws.AutoScaling.Inputs.GroupMixedInstancesPolicyLaunchTemplateLaunchTemplateSpecificationArgs
                {
                    LaunchTemplateId = exampleLaunchTemplate.Id,
                },
                Overrides = new[]
                {
                    new Aws.AutoScaling.Inputs.GroupMixedInstancesPolicyLaunchTemplateOverrideArgs
                    {
                        InstanceRequirements = new Aws.AutoScaling.Inputs.GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsArgs
                        {
                            MemoryMib = new Aws.AutoScaling.Inputs.GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsMemoryMibArgs
                            {
                                Min = 1000,
                            },
                            VcpuCount = new Aws.AutoScaling.Inputs.GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsVcpuCountArgs
                            {
                                Min = 4,
                            },
                        },
                    },
                },
            },
        },
    });

});
package main

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

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		exampleLaunchTemplate, err := ec2.NewLaunchTemplate(ctx, "exampleLaunchTemplate", &ec2.LaunchTemplateArgs{
			NamePrefix:   pulumi.String("example"),
			ImageId:      pulumi.Any(data.Aws_ami.Example.Id),
			InstanceType: pulumi.String("c5.large"),
		})
		if err != nil {
			return err
		}
		_, err = autoscaling.NewGroup(ctx, "exampleGroup", &autoscaling.GroupArgs{
			AvailabilityZones: pulumi.StringArray{
				pulumi.String("us-east-1a"),
			},
			DesiredCapacity: pulumi.Int(1),
			MaxSize:         pulumi.Int(1),
			MinSize:         pulumi.Int(1),
			MixedInstancesPolicy: &autoscaling.GroupMixedInstancesPolicyArgs{
				LaunchTemplate: &autoscaling.GroupMixedInstancesPolicyLaunchTemplateArgs{
					LaunchTemplateSpecification: &autoscaling.GroupMixedInstancesPolicyLaunchTemplateLaunchTemplateSpecificationArgs{
						LaunchTemplateId: exampleLaunchTemplate.ID(),
					},
					Overrides: autoscaling.GroupMixedInstancesPolicyLaunchTemplateOverrideArray{
						&autoscaling.GroupMixedInstancesPolicyLaunchTemplateOverrideArgs{
							InstanceRequirements: &autoscaling.GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsArgs{
								MemoryMib: &autoscaling.GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsMemoryMibArgs{
									Min: pulumi.Int(1000),
								},
								VcpuCount: &autoscaling.GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsVcpuCountArgs{
									Min: pulumi.Int(4),
								},
							},
						},
					},
				},
			},
		})
		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.ec2.LaunchTemplate;
import com.pulumi.aws.ec2.LaunchTemplateArgs;
import com.pulumi.aws.autoscaling.Group;
import com.pulumi.aws.autoscaling.GroupArgs;
import com.pulumi.aws.autoscaling.inputs.GroupMixedInstancesPolicyArgs;
import com.pulumi.aws.autoscaling.inputs.GroupMixedInstancesPolicyLaunchTemplateArgs;
import com.pulumi.aws.autoscaling.inputs.GroupMixedInstancesPolicyLaunchTemplateLaunchTemplateSpecificationArgs;
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 exampleLaunchTemplate = new LaunchTemplate("exampleLaunchTemplate", LaunchTemplateArgs.builder()        
            .namePrefix("example")
            .imageId(data.aws_ami().example().id())
            .instanceType("c5.large")
            .build());

        var exampleGroup = new Group("exampleGroup", GroupArgs.builder()        
            .availabilityZones("us-east-1a")
            .desiredCapacity(1)
            .maxSize(1)
            .minSize(1)
            .mixedInstancesPolicy(GroupMixedInstancesPolicyArgs.builder()
                .launchTemplate(GroupMixedInstancesPolicyLaunchTemplateArgs.builder()
                    .launchTemplateSpecification(GroupMixedInstancesPolicyLaunchTemplateLaunchTemplateSpecificationArgs.builder()
                        .launchTemplateId(exampleLaunchTemplate.id())
                        .build())
                    .overrides(GroupMixedInstancesPolicyLaunchTemplateOverrideArgs.builder()
                        .instanceRequirements(GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsArgs.builder()
                            .memoryMib(GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsMemoryMibArgs.builder()
                                .min(1000)
                                .build())
                            .vcpuCount(GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsVcpuCountArgs.builder()
                                .min(4)
                                .build())
                            .build())
                        .build())
                    .build())
                .build())
            .build());

    }
}
import pulumi
import pulumi_aws as aws

example_launch_template = aws.ec2.LaunchTemplate("exampleLaunchTemplate",
    name_prefix="example",
    image_id=data["aws_ami"]["example"]["id"],
    instance_type="c5.large")
example_group = aws.autoscaling.Group("exampleGroup",
    availability_zones=["us-east-1a"],
    desired_capacity=1,
    max_size=1,
    min_size=1,
    mixed_instances_policy=aws.autoscaling.GroupMixedInstancesPolicyArgs(
        launch_template=aws.autoscaling.GroupMixedInstancesPolicyLaunchTemplateArgs(
            launch_template_specification=aws.autoscaling.GroupMixedInstancesPolicyLaunchTemplateLaunchTemplateSpecificationArgs(
                launch_template_id=example_launch_template.id,
            ),
            overrides=[aws.autoscaling.GroupMixedInstancesPolicyLaunchTemplateOverrideArgs(
                instance_requirements=aws.autoscaling.GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsArgs(
                    memory_mib=aws.autoscaling.GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsMemoryMibArgs(
                        min=1000,
                    ),
                    vcpu_count=aws.autoscaling.GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsVcpuCountArgs(
                        min=4,
                    ),
                ),
            )],
        ),
    ))
import * as pulumi from "@pulumi/pulumi";
import * as aws from "@pulumi/aws";

const exampleLaunchTemplate = new aws.ec2.LaunchTemplate("exampleLaunchTemplate", {
    namePrefix: "example",
    imageId: data.aws_ami.example.id,
    instanceType: "c5.large",
});
const exampleGroup = new aws.autoscaling.Group("exampleGroup", {
    availabilityZones: ["us-east-1a"],
    desiredCapacity: 1,
    maxSize: 1,
    minSize: 1,
    mixedInstancesPolicy: {
        launchTemplate: {
            launchTemplateSpecification: {
                launchTemplateId: exampleLaunchTemplate.id,
            },
            overrides: [{
                instanceRequirements: {
                    memoryMib: {
                        min: 1000,
                    },
                    vcpuCount: {
                        min: 4,
                    },
                },
            }],
        },
    },
});
resources:
  exampleLaunchTemplate:
    type: aws:ec2:LaunchTemplate
    properties:
      namePrefix: example
      imageId: ${data.aws_ami.example.id}
      instanceType: c5.large
  exampleGroup:
    type: aws:autoscaling:Group
    properties:
      availabilityZones:
        - us-east-1a
      desiredCapacity: 1
      maxSize: 1
      minSize: 1
      mixedInstancesPolicy:
        launchTemplate:
          launchTemplateSpecification:
            launchTemplateId: ${exampleLaunchTemplate.id}
          overrides:
            - instanceRequirements:
                memoryMib:
                  min: 1000
                vcpuCount:
                  min: 4

Automatically refresh all instances after the group is updated

using System.Collections.Generic;
using Pulumi;
using Aws = Pulumi.Aws;

return await Deployment.RunAsync(() => 
{
    var exampleAmi = Aws.Ec2.GetAmi.Invoke(new()
    {
        MostRecent = true,
        Owners = new[]
        {
            "amazon",
        },
        Filters = new[]
        {
            new Aws.Ec2.Inputs.GetAmiFilterInputArgs
            {
                Name = "name",
                Values = new[]
                {
                    "amzn-ami-hvm-*-x86_64-gp2",
                },
            },
        },
    });

    var exampleLaunchTemplate = new Aws.Ec2.LaunchTemplate("exampleLaunchTemplate", new()
    {
        ImageId = exampleAmi.Apply(getAmiResult => getAmiResult.Id),
        InstanceType = "t3.nano",
    });

    var exampleGroup = new Aws.AutoScaling.Group("exampleGroup", new()
    {
        AvailabilityZones = new[]
        {
            "us-east-1a",
        },
        DesiredCapacity = 1,
        MaxSize = 2,
        MinSize = 1,
        LaunchTemplate = new Aws.AutoScaling.Inputs.GroupLaunchTemplateArgs
        {
            Id = exampleLaunchTemplate.Id,
            Version = exampleLaunchTemplate.LatestVersion,
        },
        Tags = new[]
        {
            new Aws.AutoScaling.Inputs.GroupTagArgs
            {
                Key = "Key",
                Value = "Value",
                PropagateAtLaunch = true,
            },
        },
        InstanceRefresh = new Aws.AutoScaling.Inputs.GroupInstanceRefreshArgs
        {
            Strategy = "Rolling",
            Preferences = new Aws.AutoScaling.Inputs.GroupInstanceRefreshPreferencesArgs
            {
                MinHealthyPercentage = 50,
            },
            Triggers = new[]
            {
                "tag",
            },
        },
    });

});
package main

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

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		exampleAmi, err := ec2.LookupAmi(ctx, &ec2.LookupAmiArgs{
			MostRecent: pulumi.BoolRef(true),
			Owners: []string{
				"amazon",
			},
			Filters: []ec2.GetAmiFilter{
				{
					Name: "name",
					Values: []string{
						"amzn-ami-hvm-*-x86_64-gp2",
					},
				},
			},
		}, nil)
		if err != nil {
			return err
		}
		exampleLaunchTemplate, err := ec2.NewLaunchTemplate(ctx, "exampleLaunchTemplate", &ec2.LaunchTemplateArgs{
			ImageId:      *pulumi.String(exampleAmi.Id),
			InstanceType: pulumi.String("t3.nano"),
		})
		if err != nil {
			return err
		}
		_, err = autoscaling.NewGroup(ctx, "exampleGroup", &autoscaling.GroupArgs{
			AvailabilityZones: pulumi.StringArray{
				pulumi.String("us-east-1a"),
			},
			DesiredCapacity: pulumi.Int(1),
			MaxSize:         pulumi.Int(2),
			MinSize:         pulumi.Int(1),
			LaunchTemplate: &autoscaling.GroupLaunchTemplateArgs{
				Id:      exampleLaunchTemplate.ID(),
				Version: exampleLaunchTemplate.LatestVersion,
			},
			Tags: autoscaling.GroupTagArray{
				&autoscaling.GroupTagArgs{
					Key:               pulumi.String("Key"),
					Value:             pulumi.String("Value"),
					PropagateAtLaunch: pulumi.Bool(true),
				},
			},
			InstanceRefresh: &autoscaling.GroupInstanceRefreshArgs{
				Strategy: pulumi.String("Rolling"),
				Preferences: &autoscaling.GroupInstanceRefreshPreferencesArgs{
					MinHealthyPercentage: pulumi.Int(50),
				},
				Triggers: pulumi.StringArray{
					pulumi.String("tag"),
				},
			},
		})
		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.ec2.Ec2Functions;
import com.pulumi.aws.ec2.inputs.GetAmiArgs;
import com.pulumi.aws.ec2.LaunchTemplate;
import com.pulumi.aws.ec2.LaunchTemplateArgs;
import com.pulumi.aws.autoscaling.Group;
import com.pulumi.aws.autoscaling.GroupArgs;
import com.pulumi.aws.autoscaling.inputs.GroupLaunchTemplateArgs;
import com.pulumi.aws.autoscaling.inputs.GroupTagArgs;
import com.pulumi.aws.autoscaling.inputs.GroupInstanceRefreshArgs;
import com.pulumi.aws.autoscaling.inputs.GroupInstanceRefreshPreferencesArgs;
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) {
        final var exampleAmi = Ec2Functions.getAmi(GetAmiArgs.builder()
            .mostRecent(true)
            .owners("amazon")
            .filters(GetAmiFilterArgs.builder()
                .name("name")
                .values("amzn-ami-hvm-*-x86_64-gp2")
                .build())
            .build());

        var exampleLaunchTemplate = new LaunchTemplate("exampleLaunchTemplate", LaunchTemplateArgs.builder()        
            .imageId(exampleAmi.applyValue(getAmiResult -> getAmiResult.id()))
            .instanceType("t3.nano")
            .build());

        var exampleGroup = new Group("exampleGroup", GroupArgs.builder()        
            .availabilityZones("us-east-1a")
            .desiredCapacity(1)
            .maxSize(2)
            .minSize(1)
            .launchTemplate(GroupLaunchTemplateArgs.builder()
                .id(exampleLaunchTemplate.id())
                .version(exampleLaunchTemplate.latestVersion())
                .build())
            .tags(GroupTagArgs.builder()
                .key("Key")
                .value("Value")
                .propagateAtLaunch(true)
                .build())
            .instanceRefresh(GroupInstanceRefreshArgs.builder()
                .strategy("Rolling")
                .preferences(GroupInstanceRefreshPreferencesArgs.builder()
                    .minHealthyPercentage(50)
                    .build())
                .triggers("tag")
                .build())
            .build());

    }
}
import pulumi
import pulumi_aws as aws

example_ami = aws.ec2.get_ami(most_recent=True,
    owners=["amazon"],
    filters=[aws.ec2.GetAmiFilterArgs(
        name="name",
        values=["amzn-ami-hvm-*-x86_64-gp2"],
    )])
example_launch_template = aws.ec2.LaunchTemplate("exampleLaunchTemplate",
    image_id=example_ami.id,
    instance_type="t3.nano")
example_group = aws.autoscaling.Group("exampleGroup",
    availability_zones=["us-east-1a"],
    desired_capacity=1,
    max_size=2,
    min_size=1,
    launch_template=aws.autoscaling.GroupLaunchTemplateArgs(
        id=example_launch_template.id,
        version=example_launch_template.latest_version,
    ),
    tags=[aws.autoscaling.GroupTagArgs(
        key="Key",
        value="Value",
        propagate_at_launch=True,
    )],
    instance_refresh=aws.autoscaling.GroupInstanceRefreshArgs(
        strategy="Rolling",
        preferences=aws.autoscaling.GroupInstanceRefreshPreferencesArgs(
            min_healthy_percentage=50,
        ),
        triggers=["tag"],
    ))
import * as pulumi from "@pulumi/pulumi";
import * as aws from "@pulumi/aws";

const exampleAmi = aws.ec2.getAmi({
    mostRecent: true,
    owners: ["amazon"],
    filters: [{
        name: "name",
        values: ["amzn-ami-hvm-*-x86_64-gp2"],
    }],
});
const exampleLaunchTemplate = new aws.ec2.LaunchTemplate("exampleLaunchTemplate", {
    imageId: exampleAmi.then(exampleAmi => exampleAmi.id),
    instanceType: "t3.nano",
});
const exampleGroup = new aws.autoscaling.Group("exampleGroup", {
    availabilityZones: ["us-east-1a"],
    desiredCapacity: 1,
    maxSize: 2,
    minSize: 1,
    launchTemplate: {
        id: exampleLaunchTemplate.id,
        version: exampleLaunchTemplate.latestVersion,
    },
    tags: [{
        key: "Key",
        value: "Value",
        propagateAtLaunch: true,
    }],
    instanceRefresh: {
        strategy: "Rolling",
        preferences: {
            minHealthyPercentage: 50,
        },
        triggers: ["tag"],
    },
});
resources:
  exampleGroup:
    type: aws:autoscaling:Group
    properties:
      availabilityZones:
        - us-east-1a
      desiredCapacity: 1
      maxSize: 2
      minSize: 1
      launchTemplate:
        id: ${exampleLaunchTemplate.id}
        version: ${exampleLaunchTemplate.latestVersion}
      tags:
        - key: Key
          value: Value
          propagateAtLaunch: true
      instanceRefresh:
        strategy: Rolling
        preferences:
          minHealthyPercentage: 50
        triggers:
          - tag
  exampleLaunchTemplate:
    type: aws:ec2:LaunchTemplate
    properties:
      imageId: ${exampleAmi.id}
      instanceType: t3.nano
variables:
  exampleAmi:
    fn::invoke:
      Function: aws:ec2:getAmi
      Arguments:
        mostRecent: true
        owners:
          - amazon
        filters:
          - name: name
            values:
              - amzn-ami-hvm-*-x86_64-gp2

Auto Scaling group with Warm Pool

using System.Collections.Generic;
using Pulumi;
using Aws = Pulumi.Aws;

return await Deployment.RunAsync(() => 
{
    var exampleLaunchTemplate = new Aws.Ec2.LaunchTemplate("exampleLaunchTemplate", new()
    {
        NamePrefix = "example",
        ImageId = data.Aws_ami.Example.Id,
        InstanceType = "c5.large",
    });

    var exampleGroup = new Aws.AutoScaling.Group("exampleGroup", new()
    {
        AvailabilityZones = new[]
        {
            "us-east-1a",
        },
        DesiredCapacity = 1,
        MaxSize = 5,
        MinSize = 1,
        WarmPool = new Aws.AutoScaling.Inputs.GroupWarmPoolArgs
        {
            PoolState = "Hibernated",
            MinSize = 1,
            MaxGroupPreparedCapacity = 10,
            InstanceReusePolicy = new Aws.AutoScaling.Inputs.GroupWarmPoolInstanceReusePolicyArgs
            {
                ReuseOnScaleIn = true,
            },
        },
    });

});
package main

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

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := ec2.NewLaunchTemplate(ctx, "exampleLaunchTemplate", &ec2.LaunchTemplateArgs{
			NamePrefix:   pulumi.String("example"),
			ImageId:      pulumi.Any(data.Aws_ami.Example.Id),
			InstanceType: pulumi.String("c5.large"),
		})
		if err != nil {
			return err
		}
		_, err = autoscaling.NewGroup(ctx, "exampleGroup", &autoscaling.GroupArgs{
			AvailabilityZones: pulumi.StringArray{
				pulumi.String("us-east-1a"),
			},
			DesiredCapacity: pulumi.Int(1),
			MaxSize:         pulumi.Int(5),
			MinSize:         pulumi.Int(1),
			WarmPool: &autoscaling.GroupWarmPoolArgs{
				PoolState:                pulumi.String("Hibernated"),
				MinSize:                  pulumi.Int(1),
				MaxGroupPreparedCapacity: pulumi.Int(10),
				InstanceReusePolicy: &autoscaling.GroupWarmPoolInstanceReusePolicyArgs{
					ReuseOnScaleIn: pulumi.Bool(true),
				},
			},
		})
		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.ec2.LaunchTemplate;
import com.pulumi.aws.ec2.LaunchTemplateArgs;
import com.pulumi.aws.autoscaling.Group;
import com.pulumi.aws.autoscaling.GroupArgs;
import com.pulumi.aws.autoscaling.inputs.GroupWarmPoolArgs;
import com.pulumi.aws.autoscaling.inputs.GroupWarmPoolInstanceReusePolicyArgs;
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 exampleLaunchTemplate = new LaunchTemplate("exampleLaunchTemplate", LaunchTemplateArgs.builder()        
            .namePrefix("example")
            .imageId(data.aws_ami().example().id())
            .instanceType("c5.large")
            .build());

        var exampleGroup = new Group("exampleGroup", GroupArgs.builder()        
            .availabilityZones("us-east-1a")
            .desiredCapacity(1)
            .maxSize(5)
            .minSize(1)
            .warmPool(GroupWarmPoolArgs.builder()
                .poolState("Hibernated")
                .minSize(1)
                .maxGroupPreparedCapacity(10)
                .instanceReusePolicy(GroupWarmPoolInstanceReusePolicyArgs.builder()
                    .reuseOnScaleIn(true)
                    .build())
                .build())
            .build());

    }
}
import pulumi
import pulumi_aws as aws

example_launch_template = aws.ec2.LaunchTemplate("exampleLaunchTemplate",
    name_prefix="example",
    image_id=data["aws_ami"]["example"]["id"],
    instance_type="c5.large")
example_group = aws.autoscaling.Group("exampleGroup",
    availability_zones=["us-east-1a"],
    desired_capacity=1,
    max_size=5,
    min_size=1,
    warm_pool=aws.autoscaling.GroupWarmPoolArgs(
        pool_state="Hibernated",
        min_size=1,
        max_group_prepared_capacity=10,
        instance_reuse_policy=aws.autoscaling.GroupWarmPoolInstanceReusePolicyArgs(
            reuse_on_scale_in=True,
        ),
    ))
import * as pulumi from "@pulumi/pulumi";
import * as aws from "@pulumi/aws";

const exampleLaunchTemplate = new aws.ec2.LaunchTemplate("exampleLaunchTemplate", {
    namePrefix: "example",
    imageId: data.aws_ami.example.id,
    instanceType: "c5.large",
});
const exampleGroup = new aws.autoscaling.Group("exampleGroup", {
    availabilityZones: ["us-east-1a"],
    desiredCapacity: 1,
    maxSize: 5,
    minSize: 1,
    warmPool: {
        poolState: "Hibernated",
        minSize: 1,
        maxGroupPreparedCapacity: 10,
        instanceReusePolicy: {
            reuseOnScaleIn: true,
        },
    },
});
resources:
  exampleLaunchTemplate:
    type: aws:ec2:LaunchTemplate
    properties:
      namePrefix: example
      imageId: ${data.aws_ami.example.id}
      instanceType: c5.large
  exampleGroup:
    type: aws:autoscaling:Group
    properties:
      availabilityZones:
        - us-east-1a
      desiredCapacity: 1
      maxSize: 5
      minSize: 1
      warmPool:
        poolState: Hibernated
        minSize: 1
        maxGroupPreparedCapacity: 10
        instanceReusePolicy:
          reuseOnScaleIn: true

Create Group Resource

new Group(name: string, args: GroupArgs, opts?: CustomResourceOptions);
@overload
def Group(resource_name: str,
          opts: Optional[ResourceOptions] = None,
          availability_zones: Optional[Sequence[str]] = None,
          capacity_rebalance: Optional[bool] = None,
          context: Optional[str] = None,
          default_cooldown: Optional[int] = None,
          default_instance_warmup: Optional[int] = None,
          desired_capacity: Optional[int] = None,
          desired_capacity_type: Optional[str] = None,
          enabled_metrics: Optional[Sequence[str]] = None,
          force_delete: Optional[bool] = None,
          force_delete_warm_pool: Optional[bool] = None,
          health_check_grace_period: Optional[int] = None,
          health_check_type: Optional[str] = None,
          initial_lifecycle_hooks: Optional[Sequence[GroupInitialLifecycleHookArgs]] = None,
          instance_refresh: Optional[GroupInstanceRefreshArgs] = None,
          launch_configuration: Optional[str] = None,
          launch_template: Optional[GroupLaunchTemplateArgs] = None,
          load_balancers: Optional[Sequence[str]] = None,
          max_instance_lifetime: Optional[int] = None,
          max_size: Optional[int] = None,
          metrics_granularity: Optional[Union[str, MetricsGranularity]] = None,
          min_elb_capacity: Optional[int] = None,
          min_size: Optional[int] = None,
          mixed_instances_policy: Optional[GroupMixedInstancesPolicyArgs] = None,
          name: Optional[str] = None,
          name_prefix: Optional[str] = None,
          placement_group: Optional[str] = None,
          protect_from_scale_in: Optional[bool] = None,
          service_linked_role_arn: Optional[str] = None,
          suspended_processes: Optional[Sequence[str]] = None,
          tags: Optional[Sequence[GroupTagArgs]] = None,
          tags_collection: Optional[Sequence[Mapping[str, str]]] = None,
          target_group_arns: Optional[Sequence[str]] = None,
          termination_policies: Optional[Sequence[str]] = None,
          vpc_zone_identifiers: Optional[Sequence[str]] = None,
          wait_for_capacity_timeout: Optional[str] = None,
          wait_for_elb_capacity: Optional[int] = None,
          warm_pool: Optional[GroupWarmPoolArgs] = None)
@overload
def Group(resource_name: str,
          args: GroupArgs,
          opts: Optional[ResourceOptions] = None)
func NewGroup(ctx *Context, name string, args GroupArgs, opts ...ResourceOption) (*Group, error)
public Group(string name, GroupArgs args, CustomResourceOptions? opts = null)
public Group(String name, GroupArgs args)
public Group(String name, GroupArgs args, CustomResourceOptions options)
type: aws:autoscaling:Group
properties: # The arguments to resource properties.
options: # Bag of options to control resource's behavior.

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

Group Resource Properties

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

Inputs

The Group resource accepts the following input properties:

MaxSize int

Maximum size of the Auto Scaling Group.

MinSize int

Minimum size of the Auto Scaling Group. (See also Waiting for Capacity below.)

AvailabilityZones List<string>

List of one or more availability zones for the group. Used for EC2-Classic, attaching a network interface via id from a launch template and default subnets when not specified with vpc_zone_identifier argument. Conflicts with vpc_zone_identifier.

CapacityRebalance bool

Whether capacity rebalance is enabled. Otherwise, capacity rebalance is disabled.

Context string

Reserved.

DefaultCooldown int

Amount of time, in seconds, after a scaling activity completes before another scaling activity can start.

DefaultInstanceWarmup int

Amount of time, in seconds, until a newly launched instance can contribute to the Amazon CloudWatch metrics. This delay lets an instance finish initializing before Amazon EC2 Auto Scaling aggregates instance metrics, resulting in more reliable usage data. Set this value equal to the amount of time that it takes for resource consumption to become stable after an instance reaches the InService state. (See Set the default instance warmup for an Auto Scaling group)

DesiredCapacity int

Number of Amazon EC2 instances that should be running in the group. (See also Waiting for Capacity below.)

DesiredCapacityType string

The unit of measurement for the value specified for desired_capacity. Supported for attribute-based instance type selection only. Valid values: "units", "vcpu", "memory-mib".

EnabledMetrics List<string>

List of metrics to collect. The allowed values are defined by the underlying AWS API.

ForceDelete bool

Allows deleting the Auto Scaling Group without waiting for all instances in the pool to terminate. You can force an Auto Scaling Group to delete even if it's in the process of scaling a resource. Normally, this provider drains all the instances before deleting the group. This bypasses that behavior and potentially leaves resources dangling.

ForceDeleteWarmPool bool
HealthCheckGracePeriod int

Time (in seconds) after instance comes into service before checking health.

HealthCheckType string

"EC2" or "ELB". Controls how health checking is done.

InitialLifecycleHooks List<GroupInitialLifecycleHookArgs>

One or more Lifecycle Hooks to attach to the Auto Scaling Group before instances are launched. The syntax is exactly the same as the separate aws.autoscaling.LifecycleHook resource, without the autoscaling_group_name attribute. Please note that this will only work when creating a new Auto Scaling Group. For all other use-cases, please use aws.autoscaling.LifecycleHook resource.

InstanceRefresh GroupInstanceRefreshArgs

If this block is configured, start an Instance Refresh when this Auto Scaling Group is updated. Defined below.

LaunchConfiguration string | string

Name of the launch configuration to use.

LaunchTemplate GroupLaunchTemplateArgs

Nested argument with Launch template specification to use to launch instances. See Launch Template below for more details.

LoadBalancers List<string>

List of elastic load balancer names to add to the autoscaling group names. Only valid for classic load balancers. For ALBs, use target_group_arns instead.

MaxInstanceLifetime int

Maximum amount of time, in seconds, that an instance can be in service, values must be either equal to 0 or between 86400 and 31536000 seconds.

MetricsGranularity string | Pulumi.Aws.AutoScaling.MetricsGranularity

Granularity to associate with the metrics to collect. The only valid value is 1Minute. Default is 1Minute.

MinElbCapacity int

Setting this causes the provider to wait for this number of instances from this Auto Scaling Group to show up healthy in the ELB only on creation. Updates will not wait on ELB instance number changes. (See also Waiting for Capacity below.)

MixedInstancesPolicy GroupMixedInstancesPolicyArgs

Configuration block containing settings to define launch targets for Auto Scaling groups. See Mixed Instances Policy below for more details.

Name string

Name of the Auto Scaling Group. By default generated by the provider. Conflicts with name_prefix.

NamePrefix string

Creates a unique name beginning with the specified prefix. Conflicts with name.

PlacementGroup string | string

Name of the placement group into which you'll launch your instances, if any.

ProtectFromScaleIn bool

Whether newly launched instances are automatically protected from termination by Amazon EC2 Auto Scaling when scaling in. For more information about preventing instances from terminating on scale in, see Using instance scale-in protection in the Amazon EC2 Auto Scaling User Guide.

ServiceLinkedRoleArn string

ARN of the service-linked role that the ASG will use to call other AWS services

SuspendedProcesses List<string>

List of processes to suspend for the Auto Scaling Group. The allowed values are Launch, Terminate, HealthCheck, ReplaceUnhealthy, AZRebalance, AlarmNotification, ScheduledActions, AddToLoadBalancer, InstanceRefresh. Note that if you suspend either the Launch or Terminate process types, it can prevent your Auto Scaling Group from functioning properly.

Tags List<GroupTagArgs>

Configuration block(s) containing resource tags. Conflicts with tags. See Tag below for more details.

TagsCollection List<ImmutableDictionary<string, string>>

Set of maps containing resource tags. Conflicts with tag. See Tags below for more details.

Deprecated:

Use tag instead

TargetGroupArns List<string>

Set of aws.alb.TargetGroup ARNs, for use with Application or Network Load Balancing.

TerminationPolicies List<string>

List of policies to decide how the instances in the Auto Scaling Group should be terminated. The allowed values are OldestInstance, NewestInstance, OldestLaunchConfiguration, ClosestToNextInstanceHour, OldestLaunchTemplate, AllocationStrategy, Default. Additionally, the ARN of a Lambda function can be specified for custom termination policies.

VpcZoneIdentifiers List<string>

List of subnet IDs to launch resources in. Subnets automatically determine which availability zones the group will reside. Conflicts with availability_zones.

WaitForCapacityTimeout string

Maximum duration that the provider should wait for ASG instances to be healthy before timing out. (See also Waiting for Capacity below.) Setting this to "0" causes the provider to skip all Capacity Waiting behavior.

WaitForElbCapacity int

Setting this will cause the provider to wait for exactly this number of healthy instances from this Auto Scaling Group in all attached load balancers on both create and update operations. (Takes precedence over min_elb_capacity behavior.) (See also Waiting for Capacity below.)

WarmPool GroupWarmPoolArgs

If this block is configured, add a Warm Pool to the specified Auto Scaling group. Defined below

MaxSize int

Maximum size of the Auto Scaling Group.

MinSize int

Minimum size of the Auto Scaling Group. (See also Waiting for Capacity below.)

AvailabilityZones []string

List of one or more availability zones for the group. Used for EC2-Classic, attaching a network interface via id from a launch template and default subnets when not specified with vpc_zone_identifier argument. Conflicts with vpc_zone_identifier.

CapacityRebalance bool

Whether capacity rebalance is enabled. Otherwise, capacity rebalance is disabled.

Context string

Reserved.

DefaultCooldown int

Amount of time, in seconds, after a scaling activity completes before another scaling activity can start.

DefaultInstanceWarmup int

Amount of time, in seconds, until a newly launched instance can contribute to the Amazon CloudWatch metrics. This delay lets an instance finish initializing before Amazon EC2 Auto Scaling aggregates instance metrics, resulting in more reliable usage data. Set this value equal to the amount of time that it takes for resource consumption to become stable after an instance reaches the InService state. (See Set the default instance warmup for an Auto Scaling group)

DesiredCapacity int

Number of Amazon EC2 instances that should be running in the group. (See also Waiting for Capacity below.)

DesiredCapacityType string

The unit of measurement for the value specified for desired_capacity. Supported for attribute-based instance type selection only. Valid values: "units", "vcpu", "memory-mib".

EnabledMetrics []string

List of metrics to collect. The allowed values are defined by the underlying AWS API.

ForceDelete bool

Allows deleting the Auto Scaling Group without waiting for all instances in the pool to terminate. You can force an Auto Scaling Group to delete even if it's in the process of scaling a resource. Normally, this provider drains all the instances before deleting the group. This bypasses that behavior and potentially leaves resources dangling.

ForceDeleteWarmPool bool
HealthCheckGracePeriod int

Time (in seconds) after instance comes into service before checking health.

HealthCheckType string

"EC2" or "ELB". Controls how health checking is done.

InitialLifecycleHooks []GroupInitialLifecycleHookArgs

One or more Lifecycle Hooks to attach to the Auto Scaling Group before instances are launched. The syntax is exactly the same as the separate aws.autoscaling.LifecycleHook resource, without the autoscaling_group_name attribute. Please note that this will only work when creating a new Auto Scaling Group. For all other use-cases, please use aws.autoscaling.LifecycleHook resource.

InstanceRefresh GroupInstanceRefreshArgs

If this block is configured, start an Instance Refresh when this Auto Scaling Group is updated. Defined below.

LaunchConfiguration string | string

Name of the launch configuration to use.

LaunchTemplate GroupLaunchTemplateArgs

Nested argument with Launch template specification to use to launch instances. See Launch Template below for more details.

LoadBalancers []string

List of elastic load balancer names to add to the autoscaling group names. Only valid for classic load balancers. For ALBs, use target_group_arns instead.

MaxInstanceLifetime int

Maximum amount of time, in seconds, that an instance can be in service, values must be either equal to 0 or between 86400 and 31536000 seconds.

MetricsGranularity string | MetricsGranularity

Granularity to associate with the metrics to collect. The only valid value is 1Minute. Default is 1Minute.

MinElbCapacity int

Setting this causes the provider to wait for this number of instances from this Auto Scaling Group to show up healthy in the ELB only on creation. Updates will not wait on ELB instance number changes. (See also Waiting for Capacity below.)

MixedInstancesPolicy GroupMixedInstancesPolicyArgs

Configuration block containing settings to define launch targets for Auto Scaling groups. See Mixed Instances Policy below for more details.

Name string

Name of the Auto Scaling Group. By default generated by the provider. Conflicts with name_prefix.

NamePrefix string

Creates a unique name beginning with the specified prefix. Conflicts with name.

PlacementGroup string | string

Name of the placement group into which you'll launch your instances, if any.

ProtectFromScaleIn bool

Whether newly launched instances are automatically protected from termination by Amazon EC2 Auto Scaling when scaling in. For more information about preventing instances from terminating on scale in, see Using instance scale-in protection in the Amazon EC2 Auto Scaling User Guide.

ServiceLinkedRoleArn string

ARN of the service-linked role that the ASG will use to call other AWS services

SuspendedProcesses []string

List of processes to suspend for the Auto Scaling Group. The allowed values are Launch, Terminate, HealthCheck, ReplaceUnhealthy, AZRebalance, AlarmNotification, ScheduledActions, AddToLoadBalancer, InstanceRefresh. Note that if you suspend either the Launch or Terminate process types, it can prevent your Auto Scaling Group from functioning properly.

Tags []GroupTagArgs

Configuration block(s) containing resource tags. Conflicts with tags. See Tag below for more details.

TagsCollection []map[string]string

Set of maps containing resource tags. Conflicts with tag. See Tags below for more details.

Deprecated:

Use tag instead

TargetGroupArns []string

Set of aws.alb.TargetGroup ARNs, for use with Application or Network Load Balancing.

TerminationPolicies []string

List of policies to decide how the instances in the Auto Scaling Group should be terminated. The allowed values are OldestInstance, NewestInstance, OldestLaunchConfiguration, ClosestToNextInstanceHour, OldestLaunchTemplate, AllocationStrategy, Default. Additionally, the ARN of a Lambda function can be specified for custom termination policies.

VpcZoneIdentifiers []string

List of subnet IDs to launch resources in. Subnets automatically determine which availability zones the group will reside. Conflicts with availability_zones.

WaitForCapacityTimeout string

Maximum duration that the provider should wait for ASG instances to be healthy before timing out. (See also Waiting for Capacity below.) Setting this to "0" causes the provider to skip all Capacity Waiting behavior.

WaitForElbCapacity int

Setting this will cause the provider to wait for exactly this number of healthy instances from this Auto Scaling Group in all attached load balancers on both create and update operations. (Takes precedence over min_elb_capacity behavior.) (See also Waiting for Capacity below.)

WarmPool GroupWarmPoolArgs

If this block is configured, add a Warm Pool to the specified Auto Scaling group. Defined below

maxSize Integer

Maximum size of the Auto Scaling Group.

minSize Integer

Minimum size of the Auto Scaling Group. (See also Waiting for Capacity below.)

availabilityZones List<String>

List of one or more availability zones for the group. Used for EC2-Classic, attaching a network interface via id from a launch template and default subnets when not specified with vpc_zone_identifier argument. Conflicts with vpc_zone_identifier.

capacityRebalance Boolean

Whether capacity rebalance is enabled. Otherwise, capacity rebalance is disabled.

context String

Reserved.

defaultCooldown Integer

Amount of time, in seconds, after a scaling activity completes before another scaling activity can start.

defaultInstanceWarmup Integer

Amount of time, in seconds, until a newly launched instance can contribute to the Amazon CloudWatch metrics. This delay lets an instance finish initializing before Amazon EC2 Auto Scaling aggregates instance metrics, resulting in more reliable usage data. Set this value equal to the amount of time that it takes for resource consumption to become stable after an instance reaches the InService state. (See Set the default instance warmup for an Auto Scaling group)

desiredCapacity Integer

Number of Amazon EC2 instances that should be running in the group. (See also Waiting for Capacity below.)

desiredCapacityType String

The unit of measurement for the value specified for desired_capacity. Supported for attribute-based instance type selection only. Valid values: "units", "vcpu", "memory-mib".

enabledMetrics List<String>

List of metrics to collect. The allowed values are defined by the underlying AWS API.

forceDelete Boolean

Allows deleting the Auto Scaling Group without waiting for all instances in the pool to terminate. You can force an Auto Scaling Group to delete even if it's in the process of scaling a resource. Normally, this provider drains all the instances before deleting the group. This bypasses that behavior and potentially leaves resources dangling.

forceDeleteWarmPool Boolean
healthCheckGracePeriod Integer

Time (in seconds) after instance comes into service before checking health.

healthCheckType String

"EC2" or "ELB". Controls how health checking is done.

initialLifecycleHooks List<GroupInitialLifecycleHookArgs>

One or more Lifecycle Hooks to attach to the Auto Scaling Group before instances are launched. The syntax is exactly the same as the separate aws.autoscaling.LifecycleHook resource, without the autoscaling_group_name attribute. Please note that this will only work when creating a new Auto Scaling Group. For all other use-cases, please use aws.autoscaling.LifecycleHook resource.

instanceRefresh GroupInstanceRefreshArgs

If this block is configured, start an Instance Refresh when this Auto Scaling Group is updated. Defined below.

launchConfiguration String | String

Name of the launch configuration to use.

launchTemplate GroupLaunchTemplateArgs

Nested argument with Launch template specification to use to launch instances. See Launch Template below for more details.

loadBalancers List<String>

List of elastic load balancer names to add to the autoscaling group names. Only valid for classic load balancers. For ALBs, use target_group_arns instead.

maxInstanceLifetime Integer

Maximum amount of time, in seconds, that an instance can be in service, values must be either equal to 0 or between 86400 and 31536000 seconds.

metricsGranularity String | MetricsGranularity

Granularity to associate with the metrics to collect. The only valid value is 1Minute. Default is 1Minute.

minElbCapacity Integer

Setting this causes the provider to wait for this number of instances from this Auto Scaling Group to show up healthy in the ELB only on creation. Updates will not wait on ELB instance number changes. (See also Waiting for Capacity below.)

mixedInstancesPolicy GroupMixedInstancesPolicyArgs

Configuration block containing settings to define launch targets for Auto Scaling groups. See Mixed Instances Policy below for more details.

name String

Name of the Auto Scaling Group. By default generated by the provider. Conflicts with name_prefix.

namePrefix String

Creates a unique name beginning with the specified prefix. Conflicts with name.

placementGroup String | String

Name of the placement group into which you'll launch your instances, if any.

protectFromScaleIn Boolean

Whether newly launched instances are automatically protected from termination by Amazon EC2 Auto Scaling when scaling in. For more information about preventing instances from terminating on scale in, see Using instance scale-in protection in the Amazon EC2 Auto Scaling User Guide.

serviceLinkedRoleArn String

ARN of the service-linked role that the ASG will use to call other AWS services

suspendedProcesses List<String>

List of processes to suspend for the Auto Scaling Group. The allowed values are Launch, Terminate, HealthCheck, ReplaceUnhealthy, AZRebalance, AlarmNotification, ScheduledActions, AddToLoadBalancer, InstanceRefresh. Note that if you suspend either the Launch or Terminate process types, it can prevent your Auto Scaling Group from functioning properly.

tags List<GroupTagArgs>

Configuration block(s) containing resource tags. Conflicts with tags. See Tag below for more details.

tagsCollection List<Map<String,String>>

Set of maps containing resource tags. Conflicts with tag. See Tags below for more details.

Deprecated:

Use tag instead

targetGroupArns List<String>

Set of aws.alb.TargetGroup ARNs, for use with Application or Network Load Balancing.

terminationPolicies List<String>

List of policies to decide how the instances in the Auto Scaling Group should be terminated. The allowed values are OldestInstance, NewestInstance, OldestLaunchConfiguration, ClosestToNextInstanceHour, OldestLaunchTemplate, AllocationStrategy, Default. Additionally, the ARN of a Lambda function can be specified for custom termination policies.

vpcZoneIdentifiers List<String>

List of subnet IDs to launch resources in. Subnets automatically determine which availability zones the group will reside. Conflicts with availability_zones.

waitForCapacityTimeout String

Maximum duration that the provider should wait for ASG instances to be healthy before timing out. (See also Waiting for Capacity below.) Setting this to "0" causes the provider to skip all Capacity Waiting behavior.

waitForElbCapacity Integer

Setting this will cause the provider to wait for exactly this number of healthy instances from this Auto Scaling Group in all attached load balancers on both create and update operations. (Takes precedence over min_elb_capacity behavior.) (See also Waiting for Capacity below.)

warmPool GroupWarmPoolArgs

If this block is configured, add a Warm Pool to the specified Auto Scaling group. Defined below

maxSize number

Maximum size of the Auto Scaling Group.

minSize number

Minimum size of the Auto Scaling Group. (See also Waiting for Capacity below.)

availabilityZones string[]

List of one or more availability zones for the group. Used for EC2-Classic, attaching a network interface via id from a launch template and default subnets when not specified with vpc_zone_identifier argument. Conflicts with vpc_zone_identifier.

capacityRebalance boolean

Whether capacity rebalance is enabled. Otherwise, capacity rebalance is disabled.

context string

Reserved.

defaultCooldown number

Amount of time, in seconds, after a scaling activity completes before another scaling activity can start.

defaultInstanceWarmup number

Amount of time, in seconds, until a newly launched instance can contribute to the Amazon CloudWatch metrics. This delay lets an instance finish initializing before Amazon EC2 Auto Scaling aggregates instance metrics, resulting in more reliable usage data. Set this value equal to the amount of time that it takes for resource consumption to become stable after an instance reaches the InService state. (See Set the default instance warmup for an Auto Scaling group)

desiredCapacity number

Number of Amazon EC2 instances that should be running in the group. (See also Waiting for Capacity below.)

desiredCapacityType string

The unit of measurement for the value specified for desired_capacity. Supported for attribute-based instance type selection only. Valid values: "units", "vcpu", "memory-mib".

enabledMetrics Metric[]

List of metrics to collect. The allowed values are defined by the underlying AWS API.

forceDelete boolean

Allows deleting the Auto Scaling Group without waiting for all instances in the pool to terminate. You can force an Auto Scaling Group to delete even if it's in the process of scaling a resource. Normally, this provider drains all the instances before deleting the group. This bypasses that behavior and potentially leaves resources dangling.

forceDeleteWarmPool boolean
healthCheckGracePeriod number

Time (in seconds) after instance comes into service before checking health.

healthCheckType string

"EC2" or "ELB". Controls how health checking is done.

initialLifecycleHooks GroupInitialLifecycleHookArgs[]

One or more Lifecycle Hooks to attach to the Auto Scaling Group before instances are launched. The syntax is exactly the same as the separate aws.autoscaling.LifecycleHook resource, without the autoscaling_group_name attribute. Please note that this will only work when creating a new Auto Scaling Group. For all other use-cases, please use aws.autoscaling.LifecycleHook resource.

instanceRefresh GroupInstanceRefreshArgs

If this block is configured, start an Instance Refresh when this Auto Scaling Group is updated. Defined below.

launchConfiguration string | LaunchConfiguration

Name of the launch configuration to use.

launchTemplate GroupLaunchTemplateArgs

Nested argument with Launch template specification to use to launch instances. See Launch Template below for more details.

loadBalancers string[]

List of elastic load balancer names to add to the autoscaling group names. Only valid for classic load balancers. For ALBs, use target_group_arns instead.

maxInstanceLifetime number

Maximum amount of time, in seconds, that an instance can be in service, values must be either equal to 0 or between 86400 and 31536000 seconds.

metricsGranularity string | MetricsGranularity

Granularity to associate with the metrics to collect. The only valid value is 1Minute. Default is 1Minute.

minElbCapacity number

Setting this causes the provider to wait for this number of instances from this Auto Scaling Group to show up healthy in the ELB only on creation. Updates will not wait on ELB instance number changes. (See also Waiting for Capacity below.)

mixedInstancesPolicy GroupMixedInstancesPolicyArgs

Configuration block containing settings to define launch targets for Auto Scaling groups. See Mixed Instances Policy below for more details.

name string

Name of the Auto Scaling Group. By default generated by the provider. Conflicts with name_prefix.

namePrefix string

Creates a unique name beginning with the specified prefix. Conflicts with name.

placementGroup string | PlacementGroup

Name of the placement group into which you'll launch your instances, if any.

protectFromScaleIn boolean

Whether newly launched instances are automatically protected from termination by Amazon EC2 Auto Scaling when scaling in. For more information about preventing instances from terminating on scale in, see Using instance scale-in protection in the Amazon EC2 Auto Scaling User Guide.

serviceLinkedRoleArn string

ARN of the service-linked role that the ASG will use to call other AWS services

suspendedProcesses string[]

List of processes to suspend for the Auto Scaling Group. The allowed values are Launch, Terminate, HealthCheck, ReplaceUnhealthy, AZRebalance, AlarmNotification, ScheduledActions, AddToLoadBalancer, InstanceRefresh. Note that if you suspend either the Launch or Terminate process types, it can prevent your Auto Scaling Group from functioning properly.

tags GroupTagArgs[]

Configuration block(s) containing resource tags. Conflicts with tags. See Tag below for more details.

tagsCollection {[key: string]: string}[]

Set of maps containing resource tags. Conflicts with tag. See Tags below for more details.

Deprecated:

Use tag instead

targetGroupArns string[]

Set of aws.alb.TargetGroup ARNs, for use with Application or Network Load Balancing.

terminationPolicies string[]

List of policies to decide how the instances in the Auto Scaling Group should be terminated. The allowed values are OldestInstance, NewestInstance, OldestLaunchConfiguration, ClosestToNextInstanceHour, OldestLaunchTemplate, AllocationStrategy, Default. Additionally, the ARN of a Lambda function can be specified for custom termination policies.

vpcZoneIdentifiers string[]

List of subnet IDs to launch resources in. Subnets automatically determine which availability zones the group will reside. Conflicts with availability_zones.

waitForCapacityTimeout string

Maximum duration that the provider should wait for ASG instances to be healthy before timing out. (See also Waiting for Capacity below.) Setting this to "0" causes the provider to skip all Capacity Waiting behavior.

waitForElbCapacity number

Setting this will cause the provider to wait for exactly this number of healthy instances from this Auto Scaling Group in all attached load balancers on both create and update operations. (Takes precedence over min_elb_capacity behavior.) (See also Waiting for Capacity below.)

warmPool GroupWarmPoolArgs

If this block is configured, add a Warm Pool to the specified Auto Scaling group. Defined below

max_size int

Maximum size of the Auto Scaling Group.

min_size int

Minimum size of the Auto Scaling Group. (See also Waiting for Capacity below.)

availability_zones Sequence[str]

List of one or more availability zones for the group. Used for EC2-Classic, attaching a network interface via id from a launch template and default subnets when not specified with vpc_zone_identifier argument. Conflicts with vpc_zone_identifier.

capacity_rebalance bool

Whether capacity rebalance is enabled. Otherwise, capacity rebalance is disabled.

context str

Reserved.

default_cooldown int

Amount of time, in seconds, after a scaling activity completes before another scaling activity can start.

default_instance_warmup int

Amount of time, in seconds, until a newly launched instance can contribute to the Amazon CloudWatch metrics. This delay lets an instance finish initializing before Amazon EC2 Auto Scaling aggregates instance metrics, resulting in more reliable usage data. Set this value equal to the amount of time that it takes for resource consumption to become stable after an instance reaches the InService state. (See Set the default instance warmup for an Auto Scaling group)

desired_capacity int

Number of Amazon EC2 instances that should be running in the group. (See also Waiting for Capacity below.)

desired_capacity_type str

The unit of measurement for the value specified for desired_capacity. Supported for attribute-based instance type selection only. Valid values: "units", "vcpu", "memory-mib".

enabled_metrics Sequence[str]

List of metrics to collect. The allowed values are defined by the underlying AWS API.

force_delete bool

Allows deleting the Auto Scaling Group without waiting for all instances in the pool to terminate. You can force an Auto Scaling Group to delete even if it's in the process of scaling a resource. Normally, this provider drains all the instances before deleting the group. This bypasses that behavior and potentially leaves resources dangling.

force_delete_warm_pool bool
health_check_grace_period int

Time (in seconds) after instance comes into service before checking health.

health_check_type str

"EC2" or "ELB". Controls how health checking is done.

initial_lifecycle_hooks Sequence[GroupInitialLifecycleHookArgs]

One or more Lifecycle Hooks to attach to the Auto Scaling Group before instances are launched. The syntax is exactly the same as the separate aws.autoscaling.LifecycleHook resource, without the autoscaling_group_name attribute. Please note that this will only work when creating a new Auto Scaling Group. For all other use-cases, please use aws.autoscaling.LifecycleHook resource.

instance_refresh GroupInstanceRefreshArgs

If this block is configured, start an Instance Refresh when this Auto Scaling Group is updated. Defined below.

launch_configuration str | str

Name of the launch configuration to use.

launch_template GroupLaunchTemplateArgs

Nested argument with Launch template specification to use to launch instances. See Launch Template below for more details.

load_balancers Sequence[str]

List of elastic load balancer names to add to the autoscaling group names. Only valid for classic load balancers. For ALBs, use target_group_arns instead.

max_instance_lifetime int

Maximum amount of time, in seconds, that an instance can be in service, values must be either equal to 0 or between 86400 and 31536000 seconds.

metrics_granularity str | MetricsGranularity

Granularity to associate with the metrics to collect. The only valid value is 1Minute. Default is 1Minute.

min_elb_capacity int

Setting this causes the provider to wait for this number of instances from this Auto Scaling Group to show up healthy in the ELB only on creation. Updates will not wait on ELB instance number changes. (See also Waiting for Capacity below.)

mixed_instances_policy GroupMixedInstancesPolicyArgs

Configuration block containing settings to define launch targets for Auto Scaling groups. See Mixed Instances Policy below for more details.

name str

Name of the Auto Scaling Group. By default generated by the provider. Conflicts with name_prefix.

name_prefix str

Creates a unique name beginning with the specified prefix. Conflicts with name.

placement_group str | str

Name of the placement group into which you'll launch your instances, if any.

protect_from_scale_in bool

Whether newly launched instances are automatically protected from termination by Amazon EC2 Auto Scaling when scaling in. For more information about preventing instances from terminating on scale in, see Using instance scale-in protection in the Amazon EC2 Auto Scaling User Guide.

service_linked_role_arn str

ARN of the service-linked role that the ASG will use to call other AWS services

suspended_processes Sequence[str]

List of processes to suspend for the Auto Scaling Group. The allowed values are Launch, Terminate, HealthCheck, ReplaceUnhealthy, AZRebalance, AlarmNotification, ScheduledActions, AddToLoadBalancer, InstanceRefresh. Note that if you suspend either the Launch or Terminate process types, it can prevent your Auto Scaling Group from functioning properly.

tags Sequence[GroupTagArgs]

Configuration block(s) containing resource tags. Conflicts with tags. See Tag below for more details.

tags_collection Sequence[Mapping[str, str]]

Set of maps containing resource tags. Conflicts with tag. See Tags below for more details.

Deprecated:

Use tag instead

target_group_arns Sequence[str]

Set of aws.alb.TargetGroup ARNs, for use with Application or Network Load Balancing.

termination_policies Sequence[str]

List of policies to decide how the instances in the Auto Scaling Group should be terminated. The allowed values are OldestInstance, NewestInstance, OldestLaunchConfiguration, ClosestToNextInstanceHour, OldestLaunchTemplate, AllocationStrategy, Default. Additionally, the ARN of a Lambda function can be specified for custom termination policies.

vpc_zone_identifiers Sequence[str]

List of subnet IDs to launch resources in. Subnets automatically determine which availability zones the group will reside. Conflicts with availability_zones.

wait_for_capacity_timeout str

Maximum duration that the provider should wait for ASG instances to be healthy before timing out. (See also Waiting for Capacity below.) Setting this to "0" causes the provider to skip all Capacity Waiting behavior.

wait_for_elb_capacity int

Setting this will cause the provider to wait for exactly this number of healthy instances from this Auto Scaling Group in all attached load balancers on both create and update operations. (Takes precedence over min_elb_capacity behavior.) (See also Waiting for Capacity below.)

warm_pool GroupWarmPoolArgs

If this block is configured, add a Warm Pool to the specified Auto Scaling group. Defined below

maxSize Number

Maximum size of the Auto Scaling Group.

minSize Number

Minimum size of the Auto Scaling Group. (See also Waiting for Capacity below.)

availabilityZones List<String>

List of one or more availability zones for the group. Used for EC2-Classic, attaching a network interface via id from a launch template and default subnets when not specified with vpc_zone_identifier argument. Conflicts with vpc_zone_identifier.

capacityRebalance Boolean

Whether capacity rebalance is enabled. Otherwise, capacity rebalance is disabled.

context String

Reserved.

defaultCooldown Number

Amount of time, in seconds, after a scaling activity completes before another scaling activity can start.

defaultInstanceWarmup Number

Amount of time, in seconds, until a newly launched instance can contribute to the Amazon CloudWatch metrics. This delay lets an instance finish initializing before Amazon EC2 Auto Scaling aggregates instance metrics, resulting in more reliable usage data. Set this value equal to the amount of time that it takes for resource consumption to become stable after an instance reaches the InService state. (See Set the default instance warmup for an Auto Scaling group)

desiredCapacity Number

Number of Amazon EC2 instances that should be running in the group. (See also Waiting for Capacity below.)

desiredCapacityType String

The unit of measurement for the value specified for desired_capacity. Supported for attribute-based instance type selection only. Valid values: "units", "vcpu", "memory-mib".

enabledMetrics List<>

List of metrics to collect. The allowed values are defined by the underlying AWS API.

forceDelete Boolean

Allows deleting the Auto Scaling Group without waiting for all instances in the pool to terminate. You can force an Auto Scaling Group to delete even if it's in the process of scaling a resource. Normally, this provider drains all the instances before deleting the group. This bypasses that behavior and potentially leaves resources dangling.

forceDeleteWarmPool Boolean
healthCheckGracePeriod Number

Time (in seconds) after instance comes into service before checking health.

healthCheckType String

"EC2" or "ELB". Controls how health checking is done.

initialLifecycleHooks List<Property Map>

One or more Lifecycle Hooks to attach to the Auto Scaling Group before instances are launched. The syntax is exactly the same as the separate aws.autoscaling.LifecycleHook resource, without the autoscaling_group_name attribute. Please note that this will only work when creating a new Auto Scaling Group. For all other use-cases, please use aws.autoscaling.LifecycleHook resource.

instanceRefresh Property Map

If this block is configured, start an Instance Refresh when this Auto Scaling Group is updated. Defined below.

launchConfiguration String |

Name of the launch configuration to use.

launchTemplate Property Map

Nested argument with Launch template specification to use to launch instances. See Launch Template below for more details.

loadBalancers List<String>

List of elastic load balancer names to add to the autoscaling group names. Only valid for classic load balancers. For ALBs, use target_group_arns instead.

maxInstanceLifetime Number

Maximum amount of time, in seconds, that an instance can be in service, values must be either equal to 0 or between 86400 and 31536000 seconds.

metricsGranularity String | "1Minute"

Granularity to associate with the metrics to collect. The only valid value is 1Minute. Default is 1Minute.

minElbCapacity Number

Setting this causes the provider to wait for this number of instances from this Auto Scaling Group to show up healthy in the ELB only on creation. Updates will not wait on ELB instance number changes. (See also Waiting for Capacity below.)

mixedInstancesPolicy Property Map

Configuration block containing settings to define launch targets for Auto Scaling groups. See Mixed Instances Policy below for more details.

name String

Name of the Auto Scaling Group. By default generated by the provider. Conflicts with name_prefix.

namePrefix String

Creates a unique name beginning with the specified prefix. Conflicts with name.

placementGroup String |

Name of the placement group into which you'll launch your instances, if any.

protectFromScaleIn Boolean

Whether newly launched instances are automatically protected from termination by Amazon EC2 Auto Scaling when scaling in. For more information about preventing instances from terminating on scale in, see Using instance scale-in protection in the Amazon EC2 Auto Scaling User Guide.

serviceLinkedRoleArn String

ARN of the service-linked role that the ASG will use to call other AWS services

suspendedProcesses List<String>

List of processes to suspend for the Auto Scaling Group. The allowed values are Launch, Terminate, HealthCheck, ReplaceUnhealthy, AZRebalance, AlarmNotification, ScheduledActions, AddToLoadBalancer, InstanceRefresh. Note that if you suspend either the Launch or Terminate process types, it can prevent your Auto Scaling Group from functioning properly.

tags List<Property Map>

Configuration block(s) containing resource tags. Conflicts with tags. See Tag below for more details.

tagsCollection List<Map<String>>

Set of maps containing resource tags. Conflicts with tag. See Tags below for more details.

Deprecated:

Use tag instead

targetGroupArns List<String>

Set of aws.alb.TargetGroup ARNs, for use with Application or Network Load Balancing.

terminationPolicies List<String>

List of policies to decide how the instances in the Auto Scaling Group should be terminated. The allowed values are OldestInstance, NewestInstance, OldestLaunchConfiguration, ClosestToNextInstanceHour, OldestLaunchTemplate, AllocationStrategy, Default. Additionally, the ARN of a Lambda function can be specified for custom termination policies.

vpcZoneIdentifiers List<String>

List of subnet IDs to launch resources in. Subnets automatically determine which availability zones the group will reside. Conflicts with availability_zones.

waitForCapacityTimeout String

Maximum duration that the provider should wait for ASG instances to be healthy before timing out. (See also Waiting for Capacity below.) Setting this to "0" causes the provider to skip all Capacity Waiting behavior.

waitForElbCapacity Number

Setting this will cause the provider to wait for exactly this number of healthy instances from this Auto Scaling Group in all attached load balancers on both create and update operations. (Takes precedence over min_elb_capacity behavior.) (See also Waiting for Capacity below.)

warmPool Property Map

If this block is configured, add a Warm Pool to the specified Auto Scaling group. Defined below

Outputs

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

Arn string

ARN for this Auto Scaling Group

Id string

The provider-assigned unique ID for this managed resource.

Arn string

ARN for this Auto Scaling Group

Id string

The provider-assigned unique ID for this managed resource.

arn String

ARN for this Auto Scaling Group

id String

The provider-assigned unique ID for this managed resource.

arn string

ARN for this Auto Scaling Group

id string

The provider-assigned unique ID for this managed resource.

arn str

ARN for this Auto Scaling Group

id str

The provider-assigned unique ID for this managed resource.

arn String

ARN for this Auto Scaling Group

id String

The provider-assigned unique ID for this managed resource.

Look up Existing Group Resource

Get an existing Group 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?: GroupState, opts?: CustomResourceOptions): Group
@staticmethod
def get(resource_name: str,
        id: str,
        opts: Optional[ResourceOptions] = None,
        arn: Optional[str] = None,
        availability_zones: Optional[Sequence[str]] = None,
        capacity_rebalance: Optional[bool] = None,
        context: Optional[str] = None,
        default_cooldown: Optional[int] = None,
        default_instance_warmup: Optional[int] = None,
        desired_capacity: Optional[int] = None,
        desired_capacity_type: Optional[str] = None,
        enabled_metrics: Optional[Sequence[str]] = None,
        force_delete: Optional[bool] = None,
        force_delete_warm_pool: Optional[bool] = None,
        health_check_grace_period: Optional[int] = None,
        health_check_type: Optional[str] = None,
        initial_lifecycle_hooks: Optional[Sequence[GroupInitialLifecycleHookArgs]] = None,
        instance_refresh: Optional[GroupInstanceRefreshArgs] = None,
        launch_configuration: Optional[str] = None,
        launch_template: Optional[GroupLaunchTemplateArgs] = None,
        load_balancers: Optional[Sequence[str]] = None,
        max_instance_lifetime: Optional[int] = None,
        max_size: Optional[int] = None,
        metrics_granularity: Optional[Union[str, MetricsGranularity]] = None,
        min_elb_capacity: Optional[int] = None,
        min_size: Optional[int] = None,
        mixed_instances_policy: Optional[GroupMixedInstancesPolicyArgs] = None,
        name: Optional[str] = None,
        name_prefix: Optional[str] = None,
        placement_group: Optional[str] = None,
        protect_from_scale_in: Optional[bool] = None,
        service_linked_role_arn: Optional[str] = None,
        suspended_processes: Optional[Sequence[str]] = None,
        tags: Optional[Sequence[GroupTagArgs]] = None,
        tags_collection: Optional[Sequence[Mapping[str, str]]] = None,
        target_group_arns: Optional[Sequence[str]] = None,
        termination_policies: Optional[Sequence[str]] = None,
        vpc_zone_identifiers: Optional[Sequence[str]] = None,
        wait_for_capacity_timeout: Optional[str] = None,
        wait_for_elb_capacity: Optional[int] = None,
        warm_pool: Optional[GroupWarmPoolArgs] = None) -> Group
func GetGroup(ctx *Context, name string, id IDInput, state *GroupState, opts ...ResourceOption) (*Group, error)
public static Group Get(string name, Input<string> id, GroupState? state, CustomResourceOptions? opts = null)
public static Group get(String name, Output<String> id, GroupState state, CustomResourceOptions options)
Resource lookup is not supported in YAML
name
The unique name of the resulting resource.
id
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
The unique name of the resulting resource.
id
The unique provider ID of the resource to lookup.
name
The unique name of the resulting resource.
id
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
The unique name of the resulting resource.
id
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
The unique name of the resulting resource.
id
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:
Arn string

ARN for this Auto Scaling Group

AvailabilityZones List<string>

List of one or more availability zones for the group. Used for EC2-Classic, attaching a network interface via id from a launch template and default subnets when not specified with vpc_zone_identifier argument. Conflicts with vpc_zone_identifier.

CapacityRebalance bool

Whether capacity rebalance is enabled. Otherwise, capacity rebalance is disabled.

Context string

Reserved.

DefaultCooldown int

Amount of time, in seconds, after a scaling activity completes before another scaling activity can start.

DefaultInstanceWarmup int

Amount of time, in seconds, until a newly launched instance can contribute to the Amazon CloudWatch metrics. This delay lets an instance finish initializing before Amazon EC2 Auto Scaling aggregates instance metrics, resulting in more reliable usage data. Set this value equal to the amount of time that it takes for resource consumption to become stable after an instance reaches the InService state. (See Set the default instance warmup for an Auto Scaling group)

DesiredCapacity int

Number of Amazon EC2 instances that should be running in the group. (See also Waiting for Capacity below.)

DesiredCapacityType string

The unit of measurement for the value specified for desired_capacity. Supported for attribute-based instance type selection only. Valid values: "units", "vcpu", "memory-mib".

EnabledMetrics List<string>

List of metrics to collect. The allowed values are defined by the underlying AWS API.

ForceDelete bool

Allows deleting the Auto Scaling Group without waiting for all instances in the pool to terminate. You can force an Auto Scaling Group to delete even if it's in the process of scaling a resource. Normally, this provider drains all the instances before deleting the group. This bypasses that behavior and potentially leaves resources dangling.

ForceDeleteWarmPool bool
HealthCheckGracePeriod int

Time (in seconds) after instance comes into service before checking health.

HealthCheckType string

"EC2" or "ELB". Controls how health checking is done.

InitialLifecycleHooks List<GroupInitialLifecycleHookArgs>

One or more Lifecycle Hooks to attach to the Auto Scaling Group before instances are launched. The syntax is exactly the same as the separate aws.autoscaling.LifecycleHook resource, without the autoscaling_group_name attribute. Please note that this will only work when creating a new Auto Scaling Group. For all other use-cases, please use aws.autoscaling.LifecycleHook resource.

InstanceRefresh GroupInstanceRefreshArgs

If this block is configured, start an Instance Refresh when this Auto Scaling Group is updated. Defined below.

LaunchConfiguration string | string

Name of the launch configuration to use.

LaunchTemplate GroupLaunchTemplateArgs

Nested argument with Launch template specification to use to launch instances. See Launch Template below for more details.

LoadBalancers List<string>

List of elastic load balancer names to add to the autoscaling group names. Only valid for classic load balancers. For ALBs, use target_group_arns instead.

MaxInstanceLifetime int

Maximum amount of time, in seconds, that an instance can be in service, values must be either equal to 0 or between 86400 and 31536000 seconds.

MaxSize int

Maximum size of the Auto Scaling Group.

MetricsGranularity string | Pulumi.Aws.AutoScaling.MetricsGranularity

Granularity to associate with the metrics to collect. The only valid value is 1Minute. Default is 1Minute.

MinElbCapacity int

Setting this causes the provider to wait for this number of instances from this Auto Scaling Group to show up healthy in the ELB only on creation. Updates will not wait on ELB instance number changes. (See also Waiting for Capacity below.)

MinSize int

Minimum size of the Auto Scaling Group. (See also Waiting for Capacity below.)

MixedInstancesPolicy GroupMixedInstancesPolicyArgs

Configuration block containing settings to define launch targets for Auto Scaling groups. See Mixed Instances Policy below for more details.

Name string

Name of the Auto Scaling Group. By default generated by the provider. Conflicts with name_prefix.

NamePrefix string

Creates a unique name beginning with the specified prefix. Conflicts with name.

PlacementGroup string | string

Name of the placement group into which you'll launch your instances, if any.

ProtectFromScaleIn bool

Whether newly launched instances are automatically protected from termination by Amazon EC2 Auto Scaling when scaling in. For more information about preventing instances from terminating on scale in, see Using instance scale-in protection in the Amazon EC2 Auto Scaling User Guide.

ServiceLinkedRoleArn string

ARN of the service-linked role that the ASG will use to call other AWS services

SuspendedProcesses List<string>

List of processes to suspend for the Auto Scaling Group. The allowed values are Launch, Terminate, HealthCheck, ReplaceUnhealthy, AZRebalance, AlarmNotification, ScheduledActions, AddToLoadBalancer, InstanceRefresh. Note that if you suspend either the Launch or Terminate process types, it can prevent your Auto Scaling Group from functioning properly.

Tags List<GroupTagArgs>

Configuration block(s) containing resource tags. Conflicts with tags. See Tag below for more details.

TagsCollection List<ImmutableDictionary<string, string>>

Set of maps containing resource tags. Conflicts with tag. See Tags below for more details.

Deprecated:

Use tag instead

TargetGroupArns List<string>

Set of aws.alb.TargetGroup ARNs, for use with Application or Network Load Balancing.

TerminationPolicies List<string>

List of policies to decide how the instances in the Auto Scaling Group should be terminated. The allowed values are OldestInstance, NewestInstance, OldestLaunchConfiguration, ClosestToNextInstanceHour, OldestLaunchTemplate, AllocationStrategy, Default. Additionally, the ARN of a Lambda function can be specified for custom termination policies.

VpcZoneIdentifiers List<string>

List of subnet IDs to launch resources in. Subnets automatically determine which availability zones the group will reside. Conflicts with availability_zones.

WaitForCapacityTimeout string

Maximum duration that the provider should wait for ASG instances to be healthy before timing out. (See also Waiting for Capacity below.) Setting this to "0" causes the provider to skip all Capacity Waiting behavior.

WaitForElbCapacity int

Setting this will cause the provider to wait for exactly this number of healthy instances from this Auto Scaling Group in all attached load balancers on both create and update operations. (Takes precedence over min_elb_capacity behavior.) (See also Waiting for Capacity below.)

WarmPool GroupWarmPoolArgs

If this block is configured, add a Warm Pool to the specified Auto Scaling group. Defined below

Arn string

ARN for this Auto Scaling Group

AvailabilityZones []string

List of one or more availability zones for the group. Used for EC2-Classic, attaching a network interface via id from a launch template and default subnets when not specified with vpc_zone_identifier argument. Conflicts with vpc_zone_identifier.

CapacityRebalance bool

Whether capacity rebalance is enabled. Otherwise, capacity rebalance is disabled.

Context string

Reserved.

DefaultCooldown int

Amount of time, in seconds, after a scaling activity completes before another scaling activity can start.

DefaultInstanceWarmup int

Amount of time, in seconds, until a newly launched instance can contribute to the Amazon CloudWatch metrics. This delay lets an instance finish initializing before Amazon EC2 Auto Scaling aggregates instance metrics, resulting in more reliable usage data. Set this value equal to the amount of time that it takes for resource consumption to become stable after an instance reaches the InService state. (See Set the default instance warmup for an Auto Scaling group)

DesiredCapacity int

Number of Amazon EC2 instances that should be running in the group. (See also Waiting for Capacity below.)

DesiredCapacityType string

The unit of measurement for the value specified for desired_capacity. Supported for attribute-based instance type selection only. Valid values: "units", "vcpu", "memory-mib".

EnabledMetrics []string

List of metrics to collect. The allowed values are defined by the underlying AWS API.

ForceDelete bool

Allows deleting the Auto Scaling Group without waiting for all instances in the pool to terminate. You can force an Auto Scaling Group to delete even if it's in the process of scaling a resource. Normally, this provider drains all the instances before deleting the group. This bypasses that behavior and potentially leaves resources dangling.

ForceDeleteWarmPool bool
HealthCheckGracePeriod int

Time (in seconds) after instance comes into service before checking health.

HealthCheckType string

"EC2" or "ELB". Controls how health checking is done.

InitialLifecycleHooks []GroupInitialLifecycleHookArgs

One or more Lifecycle Hooks to attach to the Auto Scaling Group before instances are launched. The syntax is exactly the same as the separate aws.autoscaling.LifecycleHook resource, without the autoscaling_group_name attribute. Please note that this will only work when creating a new Auto Scaling Group. For all other use-cases, please use aws.autoscaling.LifecycleHook resource.

InstanceRefresh GroupInstanceRefreshArgs

If this block is configured, start an Instance Refresh when this Auto Scaling Group is updated. Defined below.

LaunchConfiguration string | string

Name of the launch configuration to use.

LaunchTemplate GroupLaunchTemplateArgs

Nested argument with Launch template specification to use to launch instances. See Launch Template below for more details.

LoadBalancers []string

List of elastic load balancer names to add to the autoscaling group names. Only valid for classic load balancers. For ALBs, use target_group_arns instead.

MaxInstanceLifetime int

Maximum amount of time, in seconds, that an instance can be in service, values must be either equal to 0 or between 86400 and 31536000 seconds.

MaxSize int

Maximum size of the Auto Scaling Group.

MetricsGranularity string | MetricsGranularity

Granularity to associate with the metrics to collect. The only valid value is 1Minute. Default is 1Minute.

MinElbCapacity int

Setting this causes the provider to wait for this number of instances from this Auto Scaling Group to show up healthy in the ELB only on creation. Updates will not wait on ELB instance number changes. (See also Waiting for Capacity below.)

MinSize int

Minimum size of the Auto Scaling Group. (See also Waiting for Capacity below.)

MixedInstancesPolicy GroupMixedInstancesPolicyArgs

Configuration block containing settings to define launch targets for Auto Scaling groups. See Mixed Instances Policy below for more details.

Name string

Name of the Auto Scaling Group. By default generated by the provider. Conflicts with name_prefix.

NamePrefix string

Creates a unique name beginning with the specified prefix. Conflicts with name.

PlacementGroup string | string

Name of the placement group into which you'll launch your instances, if any.

ProtectFromScaleIn bool

Whether newly launched instances are automatically protected from termination by Amazon EC2 Auto Scaling when scaling in. For more information about preventing instances from terminating on scale in, see Using instance scale-in protection in the Amazon EC2 Auto Scaling User Guide.

ServiceLinkedRoleArn string

ARN of the service-linked role that the ASG will use to call other AWS services

SuspendedProcesses []string

List of processes to suspend for the Auto Scaling Group. The allowed values are Launch, Terminate, HealthCheck, ReplaceUnhealthy, AZRebalance, AlarmNotification, ScheduledActions, AddToLoadBalancer, InstanceRefresh. Note that if you suspend either the Launch or Terminate process types, it can prevent your Auto Scaling Group from functioning properly.

Tags []GroupTagArgs

Configuration block(s) containing resource tags. Conflicts with tags. See Tag below for more details.

TagsCollection []map[string]string

Set of maps containing resource tags. Conflicts with tag. See Tags below for more details.

Deprecated:

Use tag instead

TargetGroupArns []string

Set of aws.alb.TargetGroup ARNs, for use with Application or Network Load Balancing.

TerminationPolicies []string

List of policies to decide how the instances in the Auto Scaling Group should be terminated. The allowed values are OldestInstance, NewestInstance, OldestLaunchConfiguration, ClosestToNextInstanceHour, OldestLaunchTemplate, AllocationStrategy, Default. Additionally, the ARN of a Lambda function can be specified for custom termination policies.

VpcZoneIdentifiers []string

List of subnet IDs to launch resources in. Subnets automatically determine which availability zones the group will reside. Conflicts with availability_zones.

WaitForCapacityTimeout string

Maximum duration that the provider should wait for ASG instances to be healthy before timing out. (See also Waiting for Capacity below.) Setting this to "0" causes the provider to skip all Capacity Waiting behavior.

WaitForElbCapacity int

Setting this will cause the provider to wait for exactly this number of healthy instances from this Auto Scaling Group in all attached load balancers on both create and update operations. (Takes precedence over min_elb_capacity behavior.) (See also Waiting for Capacity below.)

WarmPool GroupWarmPoolArgs

If this block is configured, add a Warm Pool to the specified Auto Scaling group. Defined below

arn String

ARN for this Auto Scaling Group

availabilityZones List<String>

List of one or more availability zones for the group. Used for EC2-Classic, attaching a network interface via id from a launch template and default subnets when not specified with vpc_zone_identifier argument. Conflicts with vpc_zone_identifier.

capacityRebalance Boolean

Whether capacity rebalance is enabled. Otherwise, capacity rebalance is disabled.

context String

Reserved.

defaultCooldown Integer

Amount of time, in seconds, after a scaling activity completes before another scaling activity can start.

defaultInstanceWarmup Integer

Amount of time, in seconds, until a newly launched instance can contribute to the Amazon CloudWatch metrics. This delay lets an instance finish initializing before Amazon EC2 Auto Scaling aggregates instance metrics, resulting in more reliable usage data. Set this value equal to the amount of time that it takes for resource consumption to become stable after an instance reaches the InService state. (See Set the default instance warmup for an Auto Scaling group)

desiredCapacity Integer

Number of Amazon EC2 instances that should be running in the group. (See also Waiting for Capacity below.)

desiredCapacityType String

The unit of measurement for the value specified for desired_capacity. Supported for attribute-based instance type selection only. Valid values: "units", "vcpu", "memory-mib".

enabledMetrics List<String>

List of metrics to collect. The allowed values are defined by the underlying AWS API.

forceDelete Boolean

Allows deleting the Auto Scaling Group without waiting for all instances in the pool to terminate. You can force an Auto Scaling Group to delete even if it's in the process of scaling a resource. Normally, this provider drains all the instances before deleting the group. This bypasses that behavior and potentially leaves resources dangling.

forceDeleteWarmPool Boolean
healthCheckGracePeriod Integer

Time (in seconds) after instance comes into service before checking health.

healthCheckType String

"EC2" or "ELB". Controls how health checking is done.

initialLifecycleHooks List<GroupInitialLifecycleHookArgs>

One or more Lifecycle Hooks to attach to the Auto Scaling Group before instances are launched. The syntax is exactly the same as the separate aws.autoscaling.LifecycleHook resource, without the autoscaling_group_name attribute. Please note that this will only work when creating a new Auto Scaling Group. For all other use-cases, please use aws.autoscaling.LifecycleHook resource.

instanceRefresh GroupInstanceRefreshArgs

If this block is configured, start an Instance Refresh when this Auto Scaling Group is updated. Defined below.

launchConfiguration String | String

Name of the launch configuration to use.

launchTemplate GroupLaunchTemplateArgs

Nested argument with Launch template specification to use to launch instances. See Launch Template below for more details.

loadBalancers List<String>

List of elastic load balancer names to add to the autoscaling group names. Only valid for classic load balancers. For ALBs, use target_group_arns instead.

maxInstanceLifetime Integer

Maximum amount of time, in seconds, that an instance can be in service, values must be either equal to 0 or between 86400 and 31536000 seconds.

maxSize Integer

Maximum size of the Auto Scaling Group.

metricsGranularity String | MetricsGranularity

Granularity to associate with the metrics to collect. The only valid value is 1Minute. Default is 1Minute.

minElbCapacity Integer

Setting this causes the provider to wait for this number of instances from this Auto Scaling Group to show up healthy in the ELB only on creation. Updates will not wait on ELB instance number changes. (See also Waiting for Capacity below.)

minSize Integer

Minimum size of the Auto Scaling Group. (See also Waiting for Capacity below.)

mixedInstancesPolicy GroupMixedInstancesPolicyArgs

Configuration block containing settings to define launch targets for Auto Scaling groups. See Mixed Instances Policy below for more details.

name String

Name of the Auto Scaling Group. By default generated by the provider. Conflicts with name_prefix.

namePrefix String

Creates a unique name beginning with the specified prefix. Conflicts with name.

placementGroup String | String

Name of the placement group into which you'll launch your instances, if any.

protectFromScaleIn Boolean

Whether newly launched instances are automatically protected from termination by Amazon EC2 Auto Scaling when scaling in. For more information about preventing instances from terminating on scale in, see Using instance scale-in protection in the Amazon EC2 Auto Scaling User Guide.

serviceLinkedRoleArn String

ARN of the service-linked role that the ASG will use to call other AWS services

suspendedProcesses List<String>

List of processes to suspend for the Auto Scaling Group. The allowed values are Launch, Terminate, HealthCheck, ReplaceUnhealthy, AZRebalance, AlarmNotification, ScheduledActions, AddToLoadBalancer, InstanceRefresh. Note that if you suspend either the Launch or Terminate process types, it can prevent your Auto Scaling Group from functioning properly.

tags List<GroupTagArgs>

Configuration block(s) containing resource tags. Conflicts with tags. See Tag below for more details.

tagsCollection List<Map<String,String>>

Set of maps containing resource tags. Conflicts with tag. See Tags below for more details.

Deprecated:

Use tag instead

targetGroupArns List<String>

Set of aws.alb.TargetGroup ARNs, for use with Application or Network Load Balancing.

terminationPolicies List<String>

List of policies to decide how the instances in the Auto Scaling Group should be terminated. The allowed values are OldestInstance, NewestInstance, OldestLaunchConfiguration, ClosestToNextInstanceHour, OldestLaunchTemplate, AllocationStrategy, Default. Additionally, the ARN of a Lambda function can be specified for custom termination policies.

vpcZoneIdentifiers List<String>

List of subnet IDs to launch resources in. Subnets automatically determine which availability zones the group will reside. Conflicts with availability_zones.

waitForCapacityTimeout String

Maximum duration that the provider should wait for ASG instances to be healthy before timing out. (See also Waiting for Capacity below.) Setting this to "0" causes the provider to skip all Capacity Waiting behavior.

waitForElbCapacity Integer

Setting this will cause the provider to wait for exactly this number of healthy instances from this Auto Scaling Group in all attached load balancers on both create and update operations. (Takes precedence over min_elb_capacity behavior.) (See also Waiting for Capacity below.)

warmPool GroupWarmPoolArgs

If this block is configured, add a Warm Pool to the specified Auto Scaling group. Defined below

arn string

ARN for this Auto Scaling Group

availabilityZones string[]

List of one or more availability zones for the group. Used for EC2-Classic, attaching a network interface via id from a launch template and default subnets when not specified with vpc_zone_identifier argument. Conflicts with vpc_zone_identifier.

capacityRebalance boolean

Whether capacity rebalance is enabled. Otherwise, capacity rebalance is disabled.

context string

Reserved.

defaultCooldown number

Amount of time, in seconds, after a scaling activity completes before another scaling activity can start.

defaultInstanceWarmup number

Amount of time, in seconds, until a newly launched instance can contribute to the Amazon CloudWatch metrics. This delay lets an instance finish initializing before Amazon EC2 Auto Scaling aggregates instance metrics, resulting in more reliable usage data. Set this value equal to the amount of time that it takes for resource consumption to become stable after an instance reaches the InService state. (See Set the default instance warmup for an Auto Scaling group)

desiredCapacity number

Number of Amazon EC2 instances that should be running in the group. (See also Waiting for Capacity below.)

desiredCapacityType string

The unit of measurement for the value specified for desired_capacity. Supported for attribute-based instance type selection only. Valid values: "units", "vcpu", "memory-mib".

enabledMetrics Metric[]

List of metrics to collect. The allowed values are defined by the underlying AWS API.

forceDelete boolean

Allows deleting the Auto Scaling Group without waiting for all instances in the pool to terminate. You can force an Auto Scaling Group to delete even if it's in the process of scaling a resource. Normally, this provider drains all the instances before deleting the group. This bypasses that behavior and potentially leaves resources dangling.

forceDeleteWarmPool boolean
healthCheckGracePeriod number

Time (in seconds) after instance comes into service before checking health.

healthCheckType string

"EC2" or "ELB". Controls how health checking is done.

initialLifecycleHooks GroupInitialLifecycleHookArgs[]

One or more Lifecycle Hooks to attach to the Auto Scaling Group before instances are launched. The syntax is exactly the same as the separate aws.autoscaling.LifecycleHook resource, without the autoscaling_group_name attribute. Please note that this will only work when creating a new Auto Scaling Group. For all other use-cases, please use aws.autoscaling.LifecycleHook resource.

instanceRefresh GroupInstanceRefreshArgs

If this block is configured, start an Instance Refresh when this Auto Scaling Group is updated. Defined below.

launchConfiguration string | LaunchConfiguration

Name of the launch configuration to use.

launchTemplate GroupLaunchTemplateArgs

Nested argument with Launch template specification to use to launch instances. See Launch Template below for more details.

loadBalancers string[]

List of elastic load balancer names to add to the autoscaling group names. Only valid for classic load balancers. For ALBs, use target_group_arns instead.

maxInstanceLifetime number

Maximum amount of time, in seconds, that an instance can be in service, values must be either equal to 0 or between 86400 and 31536000 seconds.

maxSize number

Maximum size of the Auto Scaling Group.

metricsGranularity string | MetricsGranularity

Granularity to associate with the metrics to collect. The only valid value is 1Minute. Default is 1Minute.

minElbCapacity number

Setting this causes the provider to wait for this number of instances from this Auto Scaling Group to show up healthy in the ELB only on creation. Updates will not wait on ELB instance number changes. (See also Waiting for Capacity below.)

minSize number

Minimum size of the Auto Scaling Group. (See also Waiting for Capacity below.)

mixedInstancesPolicy GroupMixedInstancesPolicyArgs

Configuration block containing settings to define launch targets for Auto Scaling groups. See Mixed Instances Policy below for more details.

name string

Name of the Auto Scaling Group. By default generated by the provider. Conflicts with name_prefix.

namePrefix string

Creates a unique name beginning with the specified prefix. Conflicts with name.

placementGroup string | PlacementGroup

Name of the placement group into which you'll launch your instances, if any.

protectFromScaleIn boolean

Whether newly launched instances are automatically protected from termination by Amazon EC2 Auto Scaling when scaling in. For more information about preventing instances from terminating on scale in, see Using instance scale-in protection in the Amazon EC2 Auto Scaling User Guide.

serviceLinkedRoleArn string

ARN of the service-linked role that the ASG will use to call other AWS services

suspendedProcesses string[]

List of processes to suspend for the Auto Scaling Group. The allowed values are Launch, Terminate, HealthCheck, ReplaceUnhealthy, AZRebalance, AlarmNotification, ScheduledActions, AddToLoadBalancer, InstanceRefresh. Note that if you suspend either the Launch or Terminate process types, it can prevent your Auto Scaling Group from functioning properly.

tags GroupTagArgs[]

Configuration block(s) containing resource tags. Conflicts with tags. See Tag below for more details.

tagsCollection {[key: string]: string}[]

Set of maps containing resource tags. Conflicts with tag. See Tags below for more details.

Deprecated:

Use tag instead

targetGroupArns string[]

Set of aws.alb.TargetGroup ARNs, for use with Application or Network Load Balancing.

terminationPolicies string[]

List of policies to decide how the instances in the Auto Scaling Group should be terminated. The allowed values are OldestInstance, NewestInstance, OldestLaunchConfiguration, ClosestToNextInstanceHour, OldestLaunchTemplate, AllocationStrategy, Default. Additionally, the ARN of a Lambda function can be specified for custom termination policies.

vpcZoneIdentifiers string[]

List of subnet IDs to launch resources in. Subnets automatically determine which availability zones the group will reside. Conflicts with availability_zones.

waitForCapacityTimeout string

Maximum duration that the provider should wait for ASG instances to be healthy before timing out. (See also Waiting for Capacity below.) Setting this to "0" causes the provider to skip all Capacity Waiting behavior.

waitForElbCapacity number

Setting this will cause the provider to wait for exactly this number of healthy instances from this Auto Scaling Group in all attached load balancers on both create and update operations. (Takes precedence over min_elb_capacity behavior.) (See also Waiting for Capacity below.)

warmPool GroupWarmPoolArgs

If this block is configured, add a Warm Pool to the specified Auto Scaling group. Defined below

arn str

ARN for this Auto Scaling Group

availability_zones Sequence[str]

List of one or more availability zones for the group. Used for EC2-Classic, attaching a network interface via id from a launch template and default subnets when not specified with vpc_zone_identifier argument. Conflicts with vpc_zone_identifier.

capacity_rebalance bool

Whether capacity rebalance is enabled. Otherwise, capacity rebalance is disabled.

context str

Reserved.

default_cooldown int

Amount of time, in seconds, after a scaling activity completes before another scaling activity can start.

default_instance_warmup int

Amount of time, in seconds, until a newly launched instance can contribute to the Amazon CloudWatch metrics. This delay lets an instance finish initializing before Amazon EC2 Auto Scaling aggregates instance metrics, resulting in more reliable usage data. Set this value equal to the amount of time that it takes for resource consumption to become stable after an instance reaches the InService state. (See Set the default instance warmup for an Auto Scaling group)

desired_capacity int

Number of Amazon EC2 instances that should be running in the group. (See also Waiting for Capacity below.)

desired_capacity_type str

The unit of measurement for the value specified for desired_capacity. Supported for attribute-based instance type selection only. Valid values: "units", "vcpu", "memory-mib".

enabled_metrics Sequence[str]

List of metrics to collect. The allowed values are defined by the underlying AWS API.

force_delete bool

Allows deleting the Auto Scaling Group without waiting for all instances in the pool to terminate. You can force an Auto Scaling Group to delete even if it's in the process of scaling a resource. Normally, this provider drains all the instances before deleting the group. This bypasses that behavior and potentially leaves resources dangling.

force_delete_warm_pool bool
health_check_grace_period int

Time (in seconds) after instance comes into service before checking health.

health_check_type str

"EC2" or "ELB". Controls how health checking is done.

initial_lifecycle_hooks Sequence[GroupInitialLifecycleHookArgs]

One or more Lifecycle Hooks to attach to the Auto Scaling Group before instances are launched. The syntax is exactly the same as the separate aws.autoscaling.LifecycleHook resource, without the autoscaling_group_name attribute. Please note that this will only work when creating a new Auto Scaling Group. For all other use-cases, please use aws.autoscaling.LifecycleHook resource.

instance_refresh GroupInstanceRefreshArgs

If this block is configured, start an Instance Refresh when this Auto Scaling Group is updated. Defined below.

launch_configuration str | str

Name of the launch configuration to use.

launch_template GroupLaunchTemplateArgs

Nested argument with Launch template specification to use to launch instances. See Launch Template below for more details.

load_balancers Sequence[str]

List of elastic load balancer names to add to the autoscaling group names. Only valid for classic load balancers. For ALBs, use target_group_arns instead.

max_instance_lifetime int

Maximum amount of time, in seconds, that an instance can be in service, values must be either equal to 0 or between 86400 and 31536000 seconds.

max_size int

Maximum size of the Auto Scaling Group.

metrics_granularity str | MetricsGranularity

Granularity to associate with the metrics to collect. The only valid value is 1Minute. Default is 1Minute.

min_elb_capacity int

Setting this causes the provider to wait for this number of instances from this Auto Scaling Group to show up healthy in the ELB only on creation. Updates will not wait on ELB instance number changes. (See also Waiting for Capacity below.)

min_size int

Minimum size of the Auto Scaling Group. (See also Waiting for Capacity below.)

mixed_instances_policy GroupMixedInstancesPolicyArgs

Configuration block containing settings to define launch targets for Auto Scaling groups. See Mixed Instances Policy below for more details.

name str

Name of the Auto Scaling Group. By default generated by the provider. Conflicts with name_prefix.

name_prefix str

Creates a unique name beginning with the specified prefix. Conflicts with name.

placement_group str | str

Name of the placement group into which you'll launch your instances, if any.

protect_from_scale_in bool

Whether newly launched instances are automatically protected from termination by Amazon EC2 Auto Scaling when scaling in. For more information about preventing instances from terminating on scale in, see Using instance scale-in protection in the Amazon EC2 Auto Scaling User Guide.

service_linked_role_arn str

ARN of the service-linked role that the ASG will use to call other AWS services

suspended_processes Sequence[str]

List of processes to suspend for the Auto Scaling Group. The allowed values are Launch, Terminate, HealthCheck, ReplaceUnhealthy, AZRebalance, AlarmNotification, ScheduledActions, AddToLoadBalancer, InstanceRefresh. Note that if you suspend either the Launch or Terminate process types, it can prevent your Auto Scaling Group from functioning properly.

tags Sequence[GroupTagArgs]

Configuration block(s) containing resource tags. Conflicts with tags. See Tag below for more details.

tags_collection Sequence[Mapping[str, str]]

Set of maps containing resource tags. Conflicts with tag. See Tags below for more details.

Deprecated:

Use tag instead

target_group_arns Sequence[str]

Set of aws.alb.TargetGroup ARNs, for use with Application or Network Load Balancing.

termination_policies Sequence[str]

List of policies to decide how the instances in the Auto Scaling Group should be terminated. The allowed values are OldestInstance, NewestInstance, OldestLaunchConfiguration, ClosestToNextInstanceHour, OldestLaunchTemplate, AllocationStrategy, Default. Additionally, the ARN of a Lambda function can be specified for custom termination policies.

vpc_zone_identifiers Sequence[str]

List of subnet IDs to launch resources in. Subnets automatically determine which availability zones the group will reside. Conflicts with availability_zones.

wait_for_capacity_timeout str

Maximum duration that the provider should wait for ASG instances to be healthy before timing out. (See also Waiting for Capacity below.) Setting this to "0" causes the provider to skip all Capacity Waiting behavior.

wait_for_elb_capacity int

Setting this will cause the provider to wait for exactly this number of healthy instances from this Auto Scaling Group in all attached load balancers on both create and update operations. (Takes precedence over min_elb_capacity behavior.) (See also Waiting for Capacity below.)

warm_pool GroupWarmPoolArgs

If this block is configured, add a Warm Pool to the specified Auto Scaling group. Defined below

arn String

ARN for this Auto Scaling Group

availabilityZones List<String>

List of one or more availability zones for the group. Used for EC2-Classic, attaching a network interface via id from a launch template and default subnets when not specified with vpc_zone_identifier argument. Conflicts with vpc_zone_identifier.

capacityRebalance Boolean

Whether capacity rebalance is enabled. Otherwise, capacity rebalance is disabled.

context String

Reserved.

defaultCooldown Number

Amount of time, in seconds, after a scaling activity completes before another scaling activity can start.

defaultInstanceWarmup Number

Amount of time, in seconds, until a newly launched instance can contribute to the Amazon CloudWatch metrics. This delay lets an instance finish initializing before Amazon EC2 Auto Scaling aggregates instance metrics, resulting in more reliable usage data. Set this value equal to the amount of time that it takes for resource consumption to become stable after an instance reaches the InService state. (See Set the default instance warmup for an Auto Scaling group)

desiredCapacity Number

Number of Amazon EC2 instances that should be running in the group. (See also Waiting for Capacity below.)

desiredCapacityType String

The unit of measurement for the value specified for desired_capacity. Supported for attribute-based instance type selection only. Valid values: "units", "vcpu", "memory-mib".

enabledMetrics List<>

List of metrics to collect. The allowed values are defined by the underlying AWS API.

forceDelete Boolean

Allows deleting the Auto Scaling Group without waiting for all instances in the pool to terminate. You can force an Auto Scaling Group to delete even if it's in the process of scaling a resource. Normally, this provider drains all the instances before deleting the group. This bypasses that behavior and potentially leaves resources dangling.

forceDeleteWarmPool Boolean
healthCheckGracePeriod Number

Time (in seconds) after instance comes into service before checking health.

healthCheckType String

"EC2" or "ELB". Controls how health checking is done.

initialLifecycleHooks List<Property Map>

One or more Lifecycle Hooks to attach to the Auto Scaling Group before instances are launched. The syntax is exactly the same as the separate aws.autoscaling.LifecycleHook resource, without the autoscaling_group_name attribute. Please note that this will only work when creating a new Auto Scaling Group. For all other use-cases, please use aws.autoscaling.LifecycleHook resource.

instanceRefresh Property Map

If this block is configured, start an Instance Refresh when this Auto Scaling Group is updated. Defined below.

launchConfiguration String |

Name of the launch configuration to use.

launchTemplate Property Map

Nested argument with Launch template specification to use to launch instances. See Launch Template below for more details.

loadBalancers List<String>

List of elastic load balancer names to add to the autoscaling group names. Only valid for classic load balancers. For ALBs, use target_group_arns instead.

maxInstanceLifetime Number

Maximum amount of time, in seconds, that an instance can be in service, values must be either equal to 0 or between 86400 and 31536000 seconds.

maxSize Number

Maximum size of the Auto Scaling Group.

metricsGranularity String | "1Minute"

Granularity to associate with the metrics to collect. The only valid value is 1Minute. Default is 1Minute.

minElbCapacity Number

Setting this causes the provider to wait for this number of instances from this Auto Scaling Group to show up healthy in the ELB only on creation. Updates will not wait on ELB instance number changes. (See also Waiting for Capacity below.)

minSize Number

Minimum size of the Auto Scaling Group. (See also Waiting for Capacity below.)

mixedInstancesPolicy Property Map

Configuration block containing settings to define launch targets for Auto Scaling groups. See Mixed Instances Policy below for more details.

name String

Name of the Auto Scaling Group. By default generated by the provider. Conflicts with name_prefix.

namePrefix String

Creates a unique name beginning with the specified prefix. Conflicts with name.

placementGroup String |

Name of the placement group into which you'll launch your instances, if any.

protectFromScaleIn Boolean

Whether newly launched instances are automatically protected from termination by Amazon EC2 Auto Scaling when scaling in. For more information about preventing instances from terminating on scale in, see Using instance scale-in protection in the Amazon EC2 Auto Scaling User Guide.

serviceLinkedRoleArn String

ARN of the service-linked role that the ASG will use to call other AWS services

suspendedProcesses List<String>

List of processes to suspend for the Auto Scaling Group. The allowed values are Launch, Terminate, HealthCheck, ReplaceUnhealthy, AZRebalance, AlarmNotification, ScheduledActions, AddToLoadBalancer, InstanceRefresh. Note that if you suspend either the Launch or Terminate process types, it can prevent your Auto Scaling Group from functioning properly.

tags List<Property Map>

Configuration block(s) containing resource tags. Conflicts with tags. See Tag below for more details.

tagsCollection List<Map<String>>

Set of maps containing resource tags. Conflicts with tag. See Tags below for more details.

Deprecated:

Use tag instead

targetGroupArns List<String>

Set of aws.alb.TargetGroup ARNs, for use with Application or Network Load Balancing.

terminationPolicies List<String>

List of policies to decide how the instances in the Auto Scaling Group should be terminated. The allowed values are OldestInstance, NewestInstance, OldestLaunchConfiguration, ClosestToNextInstanceHour, OldestLaunchTemplate, AllocationStrategy, Default. Additionally, the ARN of a Lambda function can be specified for custom termination policies.

vpcZoneIdentifiers List<String>

List of subnet IDs to launch resources in. Subnets automatically determine which availability zones the group will reside. Conflicts with availability_zones.

waitForCapacityTimeout String

Maximum duration that the provider should wait for ASG instances to be healthy before timing out. (See also Waiting for Capacity below.) Setting this to "0" causes the provider to skip all Capacity Waiting behavior.

waitForElbCapacity Number

Setting this will cause the provider to wait for exactly this number of healthy instances from this Auto Scaling Group in all attached load balancers on both create and update operations. (Takes precedence over min_elb_capacity behavior.) (See also Waiting for Capacity below.)

warmPool Property Map

If this block is configured, add a Warm Pool to the specified Auto Scaling group. Defined below

Supporting Types

GroupInitialLifecycleHook

LifecycleTransition string
Name string

Name of the Auto Scaling Group. By default generated by the provider. Conflicts with name_prefix.

DefaultResult string
HeartbeatTimeout int
NotificationMetadata string
NotificationTargetArn string
RoleArn string
LifecycleTransition string
Name string

Name of the Auto Scaling Group. By default generated by the provider. Conflicts with name_prefix.

DefaultResult string
HeartbeatTimeout int
NotificationMetadata string
NotificationTargetArn string
RoleArn string
lifecycleTransition String
name String

Name of the Auto Scaling Group. By default generated by the provider. Conflicts with name_prefix.

defaultResult String
heartbeatTimeout Integer
notificationMetadata String
notificationTargetArn String
roleArn String
lifecycleTransition string
name string

Name of the Auto Scaling Group. By default generated by the provider. Conflicts with name_prefix.

defaultResult string
heartbeatTimeout number
notificationMetadata string
notificationTargetArn string
roleArn string
lifecycle_transition str
name str

Name of the Auto Scaling Group. By default generated by the provider. Conflicts with name_prefix.

default_result str
heartbeat_timeout int
notification_metadata str
notification_target_arn str
role_arn str
lifecycleTransition String
name String

Name of the Auto Scaling Group. By default generated by the provider. Conflicts with name_prefix.

defaultResult String
heartbeatTimeout Number
notificationMetadata String
notificationTargetArn String
roleArn String

GroupInstanceRefresh

Strategy string

Strategy to use for instance refresh. The only allowed value is Rolling. See StartInstanceRefresh Action for more information.

Preferences GroupInstanceRefreshPreferences

Override default parameters for Instance Refresh.

Triggers List<string>

Set of additional property names that will trigger an Instance Refresh. A refresh will always be triggered by a change in any of launch_configuration, launch_template, or mixed_instances_policy.

Strategy string

Strategy to use for instance refresh. The only allowed value is Rolling. See StartInstanceRefresh Action for more information.

Preferences GroupInstanceRefreshPreferences

Override default parameters for Instance Refresh.

Triggers []string

Set of additional property names that will trigger an Instance Refresh. A refresh will always be triggered by a change in any of launch_configuration, launch_template, or mixed_instances_policy.

strategy String

Strategy to use for instance refresh. The only allowed value is Rolling. See StartInstanceRefresh Action for more information.

preferences GroupInstanceRefreshPreferences

Override default parameters for Instance Refresh.

triggers List<String>

Set of additional property names that will trigger an Instance Refresh. A refresh will always be triggered by a change in any of launch_configuration, launch_template, or mixed_instances_policy.

strategy string

Strategy to use for instance refresh. The only allowed value is Rolling. See StartInstanceRefresh Action for more information.

preferences GroupInstanceRefreshPreferences

Override default parameters for Instance Refresh.

triggers string[]

Set of additional property names that will trigger an Instance Refresh. A refresh will always be triggered by a change in any of launch_configuration, launch_template, or mixed_instances_policy.

strategy str

Strategy to use for instance refresh. The only allowed value is Rolling. See StartInstanceRefresh Action for more information.

preferences GroupInstanceRefreshPreferences

Override default parameters for Instance Refresh.

triggers Sequence[str]

Set of additional property names that will trigger an Instance Refresh. A refresh will always be triggered by a change in any of launch_configuration, launch_template, or mixed_instances_policy.

strategy String

Strategy to use for instance refresh. The only allowed value is Rolling. See StartInstanceRefresh Action for more information.

preferences Property Map

Override default parameters for Instance Refresh.

triggers List<String>

Set of additional property names that will trigger an Instance Refresh. A refresh will always be triggered by a change in any of launch_configuration, launch_template, or mixed_instances_policy.

GroupInstanceRefreshPreferences

CheckpointDelay string

Number of seconds to wait after a checkpoint. Defaults to 3600.

CheckpointPercentages List<int>

List of percentages for each checkpoint. Values must be unique and in ascending order. To replace all instances, the final number must be 100.

InstanceWarmup string

Number of seconds until a newly launched instance is configured and ready to use. Default behavior is to use the Auto Scaling Group's health check grace period.

MinHealthyPercentage int

Amount of capacity in the Auto Scaling group that must remain healthy during an instance refresh to allow the operation to continue, as a percentage of the desired capacity of the Auto Scaling group. Defaults to 90.

SkipMatching bool

Replace instances that already have your desired configuration. Defaults to false.

CheckpointDelay string

Number of seconds to wait after a checkpoint. Defaults to 3600.

CheckpointPercentages []int

List of percentages for each checkpoint. Values must be unique and in ascending order. To replace all instances, the final number must be 100.

InstanceWarmup string

Number of seconds until a newly launched instance is configured and ready to use. Default behavior is to use the Auto Scaling Group's health check grace period.

MinHealthyPercentage int

Amount of capacity in the Auto Scaling group that must remain healthy during an instance refresh to allow the operation to continue, as a percentage of the desired capacity of the Auto Scaling group. Defaults to 90.

SkipMatching bool

Replace instances that already have your desired configuration. Defaults to false.

checkpointDelay String

Number of seconds to wait after a checkpoint. Defaults to 3600.

checkpointPercentages List<Integer>

List of percentages for each checkpoint. Values must be unique and in ascending order. To replace all instances, the final number must be 100.

instanceWarmup String

Number of seconds until a newly launched instance is configured and ready to use. Default behavior is to use the Auto Scaling Group's health check grace period.

minHealthyPercentage Integer

Amount of capacity in the Auto Scaling group that must remain healthy during an instance refresh to allow the operation to continue, as a percentage of the desired capacity of the Auto Scaling group. Defaults to 90.

skipMatching Boolean

Replace instances that already have your desired configuration. Defaults to false.

checkpointDelay string

Number of seconds to wait after a checkpoint. Defaults to 3600.

checkpointPercentages number[]

List of percentages for each checkpoint. Values must be unique and in ascending order. To replace all instances, the final number must be 100.

instanceWarmup string

Number of seconds until a newly launched instance is configured and ready to use. Default behavior is to use the Auto Scaling Group's health check grace period.

minHealthyPercentage number

Amount of capacity in the Auto Scaling group that must remain healthy during an instance refresh to allow the operation to continue, as a percentage of the desired capacity of the Auto Scaling group. Defaults to 90.

skipMatching boolean

Replace instances that already have your desired configuration. Defaults to false.

checkpoint_delay str

Number of seconds to wait after a checkpoint. Defaults to 3600.

checkpoint_percentages Sequence[int]

List of percentages for each checkpoint. Values must be unique and in ascending order. To replace all instances, the final number must be 100.

instance_warmup str

Number of seconds until a newly launched instance is configured and ready to use. Default behavior is to use the Auto Scaling Group's health check grace period.

min_healthy_percentage int

Amount of capacity in the Auto Scaling group that must remain healthy during an instance refresh to allow the operation to continue, as a percentage of the desired capacity of the Auto Scaling group. Defaults to 90.

skip_matching bool

Replace instances that already have your desired configuration. Defaults to false.

checkpointDelay String

Number of seconds to wait after a checkpoint. Defaults to 3600.

checkpointPercentages List<Number>

List of percentages for each checkpoint. Values must be unique and in ascending order. To replace all instances, the final number must be 100.

instanceWarmup String

Number of seconds until a newly launched instance is configured and ready to use. Default behavior is to use the Auto Scaling Group's health check grace period.

minHealthyPercentage Number

Amount of capacity in the Auto Scaling group that must remain healthy during an instance refresh to allow the operation to continue, as a percentage of the desired capacity of the Auto Scaling group. Defaults to 90.

skipMatching Boolean

Replace instances that already have your desired configuration. Defaults to false.

GroupLaunchTemplate

Id string

ID of the launch template. Conflicts with name.

Name string

Name of the launch template. Conflicts with id.

Version string

Template version. Can be version number, $Latest, or $Default. (Default: $Default).

Id string

ID of the launch template. Conflicts with name.

Name string

Name of the launch template. Conflicts with id.

Version string

Template version. Can be version number, $Latest, or $Default. (Default: $Default).

id String

ID of the launch template. Conflicts with name.

name String

Name of the launch template. Conflicts with id.

version String

Template version. Can be version number, $Latest, or $Default. (Default: $Default).

id string

ID of the launch template. Conflicts with name.

name string

Name of the launch template. Conflicts with id.

version string

Template version. Can be version number, $Latest, or $Default. (Default: $Default).

id str

ID of the launch template. Conflicts with name.

name str

Name of the launch template. Conflicts with id.

version str

Template version. Can be version number, $Latest, or $Default. (Default: $Default).

id String

ID of the launch template. Conflicts with name.

name String

Name of the launch template. Conflicts with id.

version String

Template version. Can be version number, $Latest, or $Default. (Default: $Default).

GroupMixedInstancesPolicy

LaunchTemplate GroupMixedInstancesPolicyLaunchTemplate

Nested argument containing launch template settings along with the overrides to specify multiple instance types and weights. Defined below.

InstancesDistribution GroupMixedInstancesPolicyInstancesDistribution

Nested argument containing settings on how to mix on-demand and Spot instances in the Auto Scaling group. Defined below.

LaunchTemplate GroupMixedInstancesPolicyLaunchTemplate

Nested argument containing launch template settings along with the overrides to specify multiple instance types and weights. Defined below.

InstancesDistribution GroupMixedInstancesPolicyInstancesDistribution

Nested argument containing settings on how to mix on-demand and Spot instances in the Auto Scaling group. Defined below.

launchTemplate GroupMixedInstancesPolicyLaunchTemplate

Nested argument containing launch template settings along with the overrides to specify multiple instance types and weights. Defined below.

instancesDistribution GroupMixedInstancesPolicyInstancesDistribution

Nested argument containing settings on how to mix on-demand and Spot instances in the Auto Scaling group. Defined below.

launchTemplate GroupMixedInstancesPolicyLaunchTemplate

Nested argument containing launch template settings along with the overrides to specify multiple instance types and weights. Defined below.

instancesDistribution GroupMixedInstancesPolicyInstancesDistribution

Nested argument containing settings on how to mix on-demand and Spot instances in the Auto Scaling group. Defined below.

launch_template GroupMixedInstancesPolicyLaunchTemplate

Nested argument containing launch template settings along with the overrides to specify multiple instance types and weights. Defined below.

instances_distribution GroupMixedInstancesPolicyInstancesDistribution

Nested argument containing settings on how to mix on-demand and Spot instances in the Auto Scaling group. Defined below.

launchTemplate Property Map

Nested argument containing launch template settings along with the overrides to specify multiple instance types and weights. Defined below.

instancesDistribution Property Map

Nested argument containing settings on how to mix on-demand and Spot instances in the Auto Scaling group. Defined below.

GroupMixedInstancesPolicyInstancesDistribution

OnDemandAllocationStrategy string

Strategy to use when launching on-demand instances. Valid values: prioritized. Default: prioritized.

OnDemandBaseCapacity int

Absolute minimum amount of desired capacity that must be fulfilled by on-demand instances. Default: 0.

OnDemandPercentageAboveBaseCapacity int

Percentage split between on-demand and Spot instances above the base on-demand capacity. Default: 100.

SpotAllocationStrategy string

How to allocate capacity across the Spot pools. Valid values: lowest-price, capacity-optimized, capacity-optimized-prioritized, and price-capacity-optimized. Default: lowest-price.

SpotInstancePools int

Number of Spot pools per availability zone to allocate capacity. EC2 Auto Scaling selects the cheapest Spot pools and evenly allocates Spot capacity across the number of Spot pools that you specify. Only available with spot_allocation_strategy set to lowest-price. Otherwise it must be set to 0, if it has been defined before. Default: 2.

SpotMaxPrice string

Maximum price per unit hour that the user is willing to pay for the Spot instances. Default: an empty string which means the on-demand price.

OnDemandAllocationStrategy string

Strategy to use when launching on-demand instances. Valid values: prioritized. Default: prioritized.

OnDemandBaseCapacity int

Absolute minimum amount of desired capacity that must be fulfilled by on-demand instances. Default: 0.

OnDemandPercentageAboveBaseCapacity int

Percentage split between on-demand and Spot instances above the base on-demand capacity. Default: 100.

SpotAllocationStrategy string

How to allocate capacity across the Spot pools. Valid values: lowest-price, capacity-optimized, capacity-optimized-prioritized, and price-capacity-optimized. Default: lowest-price.

SpotInstancePools int

Number of Spot pools per availability zone to allocate capacity. EC2 Auto Scaling selects the cheapest Spot pools and evenly allocates Spot capacity across the number of Spot pools that you specify. Only available with spot_allocation_strategy set to lowest-price. Otherwise it must be set to 0, if it has been defined before. Default: 2.

SpotMaxPrice string

Maximum price per unit hour that the user is willing to pay for the Spot instances. Default: an empty string which means the on-demand price.

onDemandAllocationStrategy String

Strategy to use when launching on-demand instances. Valid values: prioritized. Default: prioritized.

onDemandBaseCapacity Integer

Absolute minimum amount of desired capacity that must be fulfilled by on-demand instances. Default: 0.

onDemandPercentageAboveBaseCapacity Integer

Percentage split between on-demand and Spot instances above the base on-demand capacity. Default: 100.

spotAllocationStrategy String

How to allocate capacity across the Spot pools. Valid values: lowest-price, capacity-optimized, capacity-optimized-prioritized, and price-capacity-optimized. Default: lowest-price.

spotInstancePools Integer

Number of Spot pools per availability zone to allocate capacity. EC2 Auto Scaling selects the cheapest Spot pools and evenly allocates Spot capacity across the number of Spot pools that you specify. Only available with spot_allocation_strategy set to lowest-price. Otherwise it must be set to 0, if it has been defined before. Default: 2.

spotMaxPrice String

Maximum price per unit hour that the user is willing to pay for the Spot instances. Default: an empty string which means the on-demand price.

onDemandAllocationStrategy string

Strategy to use when launching on-demand instances. Valid values: prioritized. Default: prioritized.

onDemandBaseCapacity number

Absolute minimum amount of desired capacity that must be fulfilled by on-demand instances. Default: 0.

onDemandPercentageAboveBaseCapacity number

Percentage split between on-demand and Spot instances above the base on-demand capacity. Default: 100.

spotAllocationStrategy string

How to allocate capacity across the Spot pools. Valid values: lowest-price, capacity-optimized, capacity-optimized-prioritized, and price-capacity-optimized. Default: lowest-price.

spotInstancePools number

Number of Spot pools per availability zone to allocate capacity. EC2 Auto Scaling selects the cheapest Spot pools and evenly allocates Spot capacity across the number of Spot pools that you specify. Only available with spot_allocation_strategy set to lowest-price. Otherwise it must be set to 0, if it has been defined before. Default: 2.

spotMaxPrice string

Maximum price per unit hour that the user is willing to pay for the Spot instances. Default: an empty string which means the on-demand price.

on_demand_allocation_strategy str

Strategy to use when launching on-demand instances. Valid values: prioritized. Default: prioritized.

on_demand_base_capacity int

Absolute minimum amount of desired capacity that must be fulfilled by on-demand instances. Default: 0.

on_demand_percentage_above_base_capacity int

Percentage split between on-demand and Spot instances above the base on-demand capacity. Default: 100.

spot_allocation_strategy str

How to allocate capacity across the Spot pools. Valid values: lowest-price, capacity-optimized, capacity-optimized-prioritized, and price-capacity-optimized. Default: lowest-price.

spot_instance_pools int

Number of Spot pools per availability zone to allocate capacity. EC2 Auto Scaling selects the cheapest Spot pools and evenly allocates Spot capacity across the number of Spot pools that you specify. Only available with spot_allocation_strategy set to lowest-price. Otherwise it must be set to 0, if it has been defined before. Default: 2.

spot_max_price str

Maximum price per unit hour that the user is willing to pay for the Spot instances. Default: an empty string which means the on-demand price.

onDemandAllocationStrategy String

Strategy to use when launching on-demand instances. Valid values: prioritized. Default: prioritized.

onDemandBaseCapacity Number

Absolute minimum amount of desired capacity that must be fulfilled by on-demand instances. Default: 0.

onDemandPercentageAboveBaseCapacity Number

Percentage split between on-demand and Spot instances above the base on-demand capacity. Default: 100.

spotAllocationStrategy String

How to allocate capacity across the Spot pools. Valid values: lowest-price, capacity-optimized, capacity-optimized-prioritized, and price-capacity-optimized. Default: lowest-price.

spotInstancePools Number

Number of Spot pools per availability zone to allocate capacity. EC2 Auto Scaling selects the cheapest Spot pools and evenly allocates Spot capacity across the number of Spot pools that you specify. Only available with spot_allocation_strategy set to lowest-price. Otherwise it must be set to 0, if it has been defined before. Default: 2.

spotMaxPrice String

Maximum price per unit hour that the user is willing to pay for the Spot instances. Default: an empty string which means the on-demand price.

GroupMixedInstancesPolicyLaunchTemplate

LaunchTemplateSpecification GroupMixedInstancesPolicyLaunchTemplateLaunchTemplateSpecification

Nested argument defines the Launch Template. Defined below.

Overrides List<GroupMixedInstancesPolicyLaunchTemplateOverride>

List of nested arguments provides the ability to specify multiple instance types. This will override the same parameter in the launch template. For on-demand instances, Auto Scaling considers the order of preference of instance types to launch based on the order specified in the overrides list. Defined below.

LaunchTemplateSpecification GroupMixedInstancesPolicyLaunchTemplateLaunchTemplateSpecification

Nested argument defines the Launch Template. Defined below.

Overrides []GroupMixedInstancesPolicyLaunchTemplateOverride

List of nested arguments provides the ability to specify multiple instance types. This will override the same parameter in the launch template. For on-demand instances, Auto Scaling considers the order of preference of instance types to launch based on the order specified in the overrides list. Defined below.

launchTemplateSpecification GroupMixedInstancesPolicyLaunchTemplateLaunchTemplateSpecification

Nested argument defines the Launch Template. Defined below.

overrides List<GroupMixedInstancesPolicyLaunchTemplateOverride>

List of nested arguments provides the ability to specify multiple instance types. This will override the same parameter in the launch template. For on-demand instances, Auto Scaling considers the order of preference of instance types to launch based on the order specified in the overrides list. Defined below.

launchTemplateSpecification GroupMixedInstancesPolicyLaunchTemplateLaunchTemplateSpecification

Nested argument defines the Launch Template. Defined below.

overrides GroupMixedInstancesPolicyLaunchTemplateOverride[]

List of nested arguments provides the ability to specify multiple instance types. This will override the same parameter in the launch template. For on-demand instances, Auto Scaling considers the order of preference of instance types to launch based on the order specified in the overrides list. Defined below.

launch_template_specification GroupMixedInstancesPolicyLaunchTemplateLaunchTemplateSpecification

Nested argument defines the Launch Template. Defined below.

overrides Sequence[GroupMixedInstancesPolicyLaunchTemplateOverride]

List of nested arguments provides the ability to specify multiple instance types. This will override the same parameter in the launch template. For on-demand instances, Auto Scaling considers the order of preference of instance types to launch based on the order specified in the overrides list. Defined below.

launchTemplateSpecification Property Map

Nested argument defines the Launch Template. Defined below.

overrides List<Property Map>

List of nested arguments provides the ability to specify multiple instance types. This will override the same parameter in the launch template. For on-demand instances, Auto Scaling considers the order of preference of instance types to launch based on the order specified in the overrides list. Defined below.

GroupMixedInstancesPolicyLaunchTemplateLaunchTemplateSpecification

LaunchTemplateId string

ID of the launch template. Conflicts with launch_template_name.

LaunchTemplateName string

Name of the launch template. Conflicts with launch_template_id.

Version string

Template version. Can be version number, $Latest, or $Default. (Default: $Default).

LaunchTemplateId string

ID of the launch template. Conflicts with launch_template_name.

LaunchTemplateName string

Name of the launch template. Conflicts with launch_template_id.

Version string

Template version. Can be version number, $Latest, or $Default. (Default: $Default).

launchTemplateId String

ID of the launch template. Conflicts with launch_template_name.

launchTemplateName String

Name of the launch template. Conflicts with launch_template_id.

version String

Template version. Can be version number, $Latest, or $Default. (Default: $Default).

launchTemplateId string

ID of the launch template. Conflicts with launch_template_name.

launchTemplateName string

Name of the launch template. Conflicts with launch_template_id.

version string

Template version. Can be version number, $Latest, or $Default. (Default: $Default).

launch_template_id str

ID of the launch template. Conflicts with launch_template_name.

launch_template_name str

Name of the launch template. Conflicts with launch_template_id.

version str

Template version. Can be version number, $Latest, or $Default. (Default: $Default).

launchTemplateId String

ID of the launch template. Conflicts with launch_template_name.

launchTemplateName String

Name of the launch template. Conflicts with launch_template_id.

version String

Template version. Can be version number, $Latest, or $Default. (Default: $Default).

GroupMixedInstancesPolicyLaunchTemplateOverride

InstanceRequirements GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirements

Override the instance type in the Launch Template with instance types that satisfy the requirements.

InstanceType string

Override the instance type in the Launch Template.

LaunchTemplateSpecification GroupMixedInstancesPolicyLaunchTemplateOverrideLaunchTemplateSpecification

Nested argument defines the Launch Template. Defined below.

WeightedCapacity string

Number of capacity units, which gives the instance type a proportional weight to other instance types.

InstanceRequirements GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirements

Override the instance type in the Launch Template with instance types that satisfy the requirements.

InstanceType string

Override the instance type in the Launch Template.

LaunchTemplateSpecification GroupMixedInstancesPolicyLaunchTemplateOverrideLaunchTemplateSpecification

Nested argument defines the Launch Template. Defined below.

WeightedCapacity string

Number of capacity units, which gives the instance type a proportional weight to other instance types.

instanceRequirements GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirements

Override the instance type in the Launch Template with instance types that satisfy the requirements.

instanceType String

Override the instance type in the Launch Template.

launchTemplateSpecification GroupMixedInstancesPolicyLaunchTemplateOverrideLaunchTemplateSpecification

Nested argument defines the Launch Template. Defined below.

weightedCapacity String

Number of capacity units, which gives the instance type a proportional weight to other instance types.

instanceRequirements GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirements

Override the instance type in the Launch Template with instance types that satisfy the requirements.

instanceType string

Override the instance type in the Launch Template.

launchTemplateSpecification GroupMixedInstancesPolicyLaunchTemplateOverrideLaunchTemplateSpecification

Nested argument defines the Launch Template. Defined below.

weightedCapacity string

Number of capacity units, which gives the instance type a proportional weight to other instance types.

instance_requirements GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirements

Override the instance type in the Launch Template with instance types that satisfy the requirements.

instance_type str

Override the instance type in the Launch Template.

launch_template_specification GroupMixedInstancesPolicyLaunchTemplateOverrideLaunchTemplateSpecification

Nested argument defines the Launch Template. Defined below.

weighted_capacity str

Number of capacity units, which gives the instance type a proportional weight to other instance types.

instanceRequirements Property Map

Override the instance type in the Launch Template with instance types that satisfy the requirements.

instanceType String

Override the instance type in the Launch Template.

launchTemplateSpecification Property Map

Nested argument defines the Launch Template. Defined below.

weightedCapacity String

Number of capacity units, which gives the instance type a proportional weight to other instance types.

GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirements

AcceleratorCount GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsAcceleratorCount

Block describing the minimum and maximum number of accelerators (GPUs, FPGAs, or AWS Inferentia chips). Default is no minimum or maximum.

AcceleratorManufacturers List<string>

List of accelerator manufacturer names. Default is any manufacturer.

AcceleratorNames List<string>

List of accelerator names. Default is any acclerator.

AcceleratorTotalMemoryMib GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsAcceleratorTotalMemoryMib

Block describing the minimum and maximum total memory of the accelerators. Default is no minimum or maximum.

AcceleratorTypes List<string>

List of accelerator types. Default is any accelerator type.

BareMetal string

Indicate whether bare metal instace types should be included, excluded, or required. Default is excluded.

BaselineEbsBandwidthMbps GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsBaselineEbsBandwidthMbps

Block describing the minimum and maximum baseline EBS bandwidth, in Mbps. Default is no minimum or maximum.

BurstablePerformance string

Indicate whether burstable performance instance types should be included, excluded, or required. Default is excluded.

CpuManufacturers List<string>

List of CPU manufacturer names. Default is any manufacturer.

ExcludedInstanceTypes List<string>

List of instance types to exclude. You can use strings with one or more wild cards, represented by an asterisk (*). The following are examples: c5*, m5a.*, r*, *3*. For example, if you specify c5*, you are excluding the entire C5 instance family, which includes all C5a and C5n instance types. If you specify m5a.*, you are excluding all the M5a instance types, but not the M5n instance types. Maximum of 400 entries in the list; each entry is limited to 30 characters. Default is no excluded instance types.

InstanceGenerations List<string>

List of instance generation names. Default is any generation.

LocalStorage string

Indicate whether instance types with local storage volumes are included, excluded, or required. Default is included.

LocalStorageTypes List<string>

List of local storage type names. Default any storage type.

MemoryGibPerVcpu GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsMemoryGibPerVcpu

Block describing the minimum and maximum amount of memory (GiB) per vCPU. Default is no minimum or maximum.

MemoryMib GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsMemoryMib

Block describing the minimum and maximum amount of memory (MiB). Default is no maximum.

NetworkInterfaceCount GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsNetworkInterfaceCount

Block describing the minimum and maximum number of network interfaces. Default is no minimum or maximum.

OnDemandMaxPricePercentageOverLowestPrice int

Price protection threshold for On-Demand Instances. This is the maximum you’ll pay for an On-Demand Instance, expressed as a percentage higher than the cheapest M, C, or R instance type with your specified attributes. When Amazon EC2 Auto Scaling selects instance types with your attributes, we will exclude instance types whose price is higher than your threshold. The parameter accepts an integer, which Amazon EC2 Auto Scaling interprets as a percentage. To turn off price protection, specify a high value, such as 999999. Default is 20.

RequireHibernateSupport bool

Indicate whether instance types must support On-Demand Instance Hibernation, either true or false. Default is false.

SpotMaxPricePercentageOverLowestPrice int

Price protection threshold for Spot Instances. This is the maximum you’ll pay for a Spot Instance, expressed as a percentage higher than the cheapest M, C, or R instance type with your specified attributes. When Amazon EC2 Auto Scaling selects instance types with your attributes, we will exclude instance types whose price is higher than your threshold. The parameter accepts an integer, which Amazon EC2 Auto Scaling interprets as a percentage. To turn off price protection, specify a high value, such as 999999. Default is 100.

TotalLocalStorageGb GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsTotalLocalStorageGb

Block describing the minimum and maximum total local storage (GB). Default is no minimum or maximum.

VcpuCount GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsVcpuCount

Block describing the minimum and maximum number of vCPUs. Default is no maximum.

AcceleratorCount GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsAcceleratorCount

Block describing the minimum and maximum number of accelerators (GPUs, FPGAs, or AWS Inferentia chips). Default is no minimum or maximum.

AcceleratorManufacturers []string

List of accelerator manufacturer names. Default is any manufacturer.

AcceleratorNames []string

List of accelerator names. Default is any acclerator.

AcceleratorTotalMemoryMib GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsAcceleratorTotalMemoryMib

Block describing the minimum and maximum total memory of the accelerators. Default is no minimum or maximum.

AcceleratorTypes []string

List of accelerator types. Default is any accelerator type.

BareMetal string

Indicate whether bare metal instace types should be included, excluded, or required. Default is excluded.

BaselineEbsBandwidthMbps GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsBaselineEbsBandwidthMbps

Block describing the minimum and maximum baseline EBS bandwidth, in Mbps. Default is no minimum or maximum.

BurstablePerformance string

Indicate whether burstable performance instance types should be included, excluded, or required. Default is excluded.

CpuManufacturers []string

List of CPU manufacturer names. Default is any manufacturer.

ExcludedInstanceTypes []string

List of instance types to exclude. You can use strings with one or more wild cards, represented by an asterisk (*). The following are examples: c5*, m5a.*, r*, *3*. For example, if you specify c5*, you are excluding the entire C5 instance family, which includes all C5a and C5n instance types. If you specify m5a.*, you are excluding all the M5a instance types, but not the M5n instance types. Maximum of 400 entries in the list; each entry is limited to 30 characters. Default is no excluded instance types.

InstanceGenerations []string

List of instance generation names. Default is any generation.

LocalStorage string

Indicate whether instance types with local storage volumes are included, excluded, or required. Default is included.

LocalStorageTypes []string

List of local storage type names. Default any storage type.

MemoryGibPerVcpu GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsMemoryGibPerVcpu

Block describing the minimum and maximum amount of memory (GiB) per vCPU. Default is no minimum or maximum.

MemoryMib GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsMemoryMib

Block describing the minimum and maximum amount of memory (MiB). Default is no maximum.

NetworkInterfaceCount GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsNetworkInterfaceCount

Block describing the minimum and maximum number of network interfaces. Default is no minimum or maximum.

OnDemandMaxPricePercentageOverLowestPrice int

Price protection threshold for On-Demand Instances. This is the maximum you’ll pay for an On-Demand Instance, expressed as a percentage higher than the cheapest M, C, or R instance type with your specified attributes. When Amazon EC2 Auto Scaling selects instance types with your attributes, we will exclude instance types whose price is higher than your threshold. The parameter accepts an integer, which Amazon EC2 Auto Scaling interprets as a percentage. To turn off price protection, specify a high value, such as 999999. Default is 20.

RequireHibernateSupport bool

Indicate whether instance types must support On-Demand Instance Hibernation, either true or false. Default is false.

SpotMaxPricePercentageOverLowestPrice int

Price protection threshold for Spot Instances. This is the maximum you’ll pay for a Spot Instance, expressed as a percentage higher than the cheapest M, C, or R instance type with your specified attributes. When Amazon EC2 Auto Scaling selects instance types with your attributes, we will exclude instance types whose price is higher than your threshold. The parameter accepts an integer, which Amazon EC2 Auto Scaling interprets as a percentage. To turn off price protection, specify a high value, such as 999999. Default is 100.

TotalLocalStorageGb GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsTotalLocalStorageGb

Block describing the minimum and maximum total local storage (GB). Default is no minimum or maximum.

VcpuCount GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsVcpuCount

Block describing the minimum and maximum number of vCPUs. Default is no maximum.

acceleratorCount GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsAcceleratorCount

Block describing the minimum and maximum number of accelerators (GPUs, FPGAs, or AWS Inferentia chips). Default is no minimum or maximum.

acceleratorManufacturers List<String>

List of accelerator manufacturer names. Default is any manufacturer.

acceleratorNames List<String>

List of accelerator names. Default is any acclerator.

acceleratorTotalMemoryMib GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsAcceleratorTotalMemoryMib

Block describing the minimum and maximum total memory of the accelerators. Default is no minimum or maximum.

acceleratorTypes List<String>

List of accelerator types. Default is any accelerator type.

bareMetal String

Indicate whether bare metal instace types should be included, excluded, or required. Default is excluded.

baselineEbsBandwidthMbps GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsBaselineEbsBandwidthMbps

Block describing the minimum and maximum baseline EBS bandwidth, in Mbps. Default is no minimum or maximum.

burstablePerformance String

Indicate whether burstable performance instance types should be included, excluded, or required. Default is excluded.

cpuManufacturers List<String>

List of CPU manufacturer names. Default is any manufacturer.

excludedInstanceTypes List<String>

List of instance types to exclude. You can use strings with one or more wild cards, represented by an asterisk (*). The following are examples: c5*, m5a.*, r*, *3*. For example, if you specify c5*, you are excluding the entire C5 instance family, which includes all C5a and C5n instance types. If you specify m5a.*, you are excluding all the M5a instance types, but not the M5n instance types. Maximum of 400 entries in the list; each entry is limited to 30 characters. Default is no excluded instance types.

instanceGenerations List<String>

List of instance generation names. Default is any generation.

localStorage String

Indicate whether instance types with local storage volumes are included, excluded, or required. Default is included.

localStorageTypes List<String>

List of local storage type names. Default any storage type.

memoryGibPerVcpu GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsMemoryGibPerVcpu

Block describing the minimum and maximum amount of memory (GiB) per vCPU. Default is no minimum or maximum.

memoryMib GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsMemoryMib

Block describing the minimum and maximum amount of memory (MiB). Default is no maximum.

networkInterfaceCount GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsNetworkInterfaceCount

Block describing the minimum and maximum number of network interfaces. Default is no minimum or maximum.

onDemandMaxPricePercentageOverLowestPrice Integer

Price protection threshold for On-Demand Instances. This is the maximum you’ll pay for an On-Demand Instance, expressed as a percentage higher than the cheapest M, C, or R instance type with your specified attributes. When Amazon EC2 Auto Scaling selects instance types with your attributes, we will exclude instance types whose price is higher than your threshold. The parameter accepts an integer, which Amazon EC2 Auto Scaling interprets as a percentage. To turn off price protection, specify a high value, such as 999999. Default is 20.

requireHibernateSupport Boolean

Indicate whether instance types must support On-Demand Instance Hibernation, either true or false. Default is false.

spotMaxPricePercentageOverLowestPrice Integer

Price protection threshold for Spot Instances. This is the maximum you’ll pay for a Spot Instance, expressed as a percentage higher than the cheapest M, C, or R instance type with your specified attributes. When Amazon EC2 Auto Scaling selects instance types with your attributes, we will exclude instance types whose price is higher than your threshold. The parameter accepts an integer, which Amazon EC2 Auto Scaling interprets as a percentage. To turn off price protection, specify a high value, such as 999999. Default is 100.

totalLocalStorageGb GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsTotalLocalStorageGb

Block describing the minimum and maximum total local storage (GB). Default is no minimum or maximum.

vcpuCount GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsVcpuCount

Block describing the minimum and maximum number of vCPUs. Default is no maximum.

acceleratorCount GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsAcceleratorCount

Block describing the minimum and maximum number of accelerators (GPUs, FPGAs, or AWS Inferentia chips). Default is no minimum or maximum.

acceleratorManufacturers string[]

List of accelerator manufacturer names. Default is any manufacturer.

acceleratorNames string[]

List of accelerator names. Default is any acclerator.

acceleratorTotalMemoryMib GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsAcceleratorTotalMemoryMib

Block describing the minimum and maximum total memory of the accelerators. Default is no minimum or maximum.

acceleratorTypes string[]

List of accelerator types. Default is any accelerator type.

bareMetal string

Indicate whether bare metal instace types should be included, excluded, or required. Default is excluded.

baselineEbsBandwidthMbps GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsBaselineEbsBandwidthMbps

Block describing the minimum and maximum baseline EBS bandwidth, in Mbps. Default is no minimum or maximum.

burstablePerformance string

Indicate whether burstable performance instance types should be included, excluded, or required. Default is excluded.

cpuManufacturers string[]

List of CPU manufacturer names. Default is any manufacturer.

excludedInstanceTypes string[]

List of instance types to exclude. You can use strings with one or more wild cards, represented by an asterisk (*). The following are examples: c5*, m5a.*, r*, *3*. For example, if you specify c5*, you are excluding the entire C5 instance family, which includes all C5a and C5n instance types. If you specify m5a.*, you are excluding all the M5a instance types, but not the M5n instance types. Maximum of 400 entries in the list; each entry is limited to 30 characters. Default is no excluded instance types.

instanceGenerations string[]

List of instance generation names. Default is any generation.

localStorage string

Indicate whether instance types with local storage volumes are included, excluded, or required. Default is included.

localStorageTypes string[]

List of local storage type names. Default any storage type.

memoryGibPerVcpu GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsMemoryGibPerVcpu

Block describing the minimum and maximum amount of memory (GiB) per vCPU. Default is no minimum or maximum.

memoryMib GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsMemoryMib

Block describing the minimum and maximum amount of memory (MiB). Default is no maximum.

networkInterfaceCount GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsNetworkInterfaceCount

Block describing the minimum and maximum number of network interfaces. Default is no minimum or maximum.

onDemandMaxPricePercentageOverLowestPrice number

Price protection threshold for On-Demand Instances. This is the maximum you’ll pay for an On-Demand Instance, expressed as a percentage higher than the cheapest M, C, or R instance type with your specified attributes. When Amazon EC2 Auto Scaling selects instance types with your attributes, we will exclude instance types whose price is higher than your threshold. The parameter accepts an integer, which Amazon EC2 Auto Scaling interprets as a percentage. To turn off price protection, specify a high value, such as 999999. Default is 20.

requireHibernateSupport boolean

Indicate whether instance types must support On-Demand Instance Hibernation, either true or false. Default is false.

spotMaxPricePercentageOverLowestPrice number

Price protection threshold for Spot Instances. This is the maximum you’ll pay for a Spot Instance, expressed as a percentage higher than the cheapest M, C, or R instance type with your specified attributes. When Amazon EC2 Auto Scaling selects instance types with your attributes, we will exclude instance types whose price is higher than your threshold. The parameter accepts an integer, which Amazon EC2 Auto Scaling interprets as a percentage. To turn off price protection, specify a high value, such as 999999. Default is 100.

totalLocalStorageGb GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsTotalLocalStorageGb

Block describing the minimum and maximum total local storage (GB). Default is no minimum or maximum.

vcpuCount GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsVcpuCount

Block describing the minimum and maximum number of vCPUs. Default is no maximum.

accelerator_count GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsAcceleratorCount

Block describing the minimum and maximum number of accelerators (GPUs, FPGAs, or AWS Inferentia chips). Default is no minimum or maximum.

accelerator_manufacturers Sequence[str]

List of accelerator manufacturer names. Default is any manufacturer.

accelerator_names Sequence[str]

List of accelerator names. Default is any acclerator.

accelerator_total_memory_mib GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsAcceleratorTotalMemoryMib

Block describing the minimum and maximum total memory of the accelerators. Default is no minimum or maximum.

accelerator_types Sequence[str]

List of accelerator types. Default is any accelerator type.

bare_metal str

Indicate whether bare metal instace types should be included, excluded, or required. Default is excluded.

baseline_ebs_bandwidth_mbps GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsBaselineEbsBandwidthMbps

Block describing the minimum and maximum baseline EBS bandwidth, in Mbps. Default is no minimum or maximum.

burstable_performance str

Indicate whether burstable performance instance types should be included, excluded, or required. Default is excluded.

cpu_manufacturers Sequence[str]

List of CPU manufacturer names. Default is any manufacturer.

excluded_instance_types Sequence[str]

List of instance types to exclude. You can use strings with one or more wild cards, represented by an asterisk (*). The following are examples: c5*, m5a.*, r*, *3*. For example, if you specify c5*, you are excluding the entire C5 instance family, which includes all C5a and C5n instance types. If you specify m5a.*, you are excluding all the M5a instance types, but not the M5n instance types. Maximum of 400 entries in the list; each entry is limited to 30 characters. Default is no excluded instance types.

instance_generations Sequence[str]

List of instance generation names. Default is any generation.

local_storage str

Indicate whether instance types with local storage volumes are included, excluded, or required. Default is included.

local_storage_types Sequence[str]

List of local storage type names. Default any storage type.

memory_gib_per_vcpu GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsMemoryGibPerVcpu

Block describing the minimum and maximum amount of memory (GiB) per vCPU. Default is no minimum or maximum.

memory_mib GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsMemoryMib

Block describing the minimum and maximum amount of memory (MiB). Default is no maximum.

network_interface_count GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsNetworkInterfaceCount

Block describing the minimum and maximum number of network interfaces. Default is no minimum or maximum.

on_demand_max_price_percentage_over_lowest_price int

Price protection threshold for On-Demand Instances. This is the maximum you’ll pay for an On-Demand Instance, expressed as a percentage higher than the cheapest M, C, or R instance type with your specified attributes. When Amazon EC2 Auto Scaling selects instance types with your attributes, we will exclude instance types whose price is higher than your threshold. The parameter accepts an integer, which Amazon EC2 Auto Scaling interprets as a percentage. To turn off price protection, specify a high value, such as 999999. Default is 20.

require_hibernate_support bool

Indicate whether instance types must support On-Demand Instance Hibernation, either true or false. Default is false.

spot_max_price_percentage_over_lowest_price int

Price protection threshold for Spot Instances. This is the maximum you’ll pay for a Spot Instance, expressed as a percentage higher than the cheapest M, C, or R instance type with your specified attributes. When Amazon EC2 Auto Scaling selects instance types with your attributes, we will exclude instance types whose price is higher than your threshold. The parameter accepts an integer, which Amazon EC2 Auto Scaling interprets as a percentage. To turn off price protection, specify a high value, such as 999999. Default is 100.

total_local_storage_gb GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsTotalLocalStorageGb

Block describing the minimum and maximum total local storage (GB). Default is no minimum or maximum.

vcpu_count GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsVcpuCount

Block describing the minimum and maximum number of vCPUs. Default is no maximum.

acceleratorCount Property Map

Block describing the minimum and maximum number of accelerators (GPUs, FPGAs, or AWS Inferentia chips). Default is no minimum or maximum.

acceleratorManufacturers List<String>

List of accelerator manufacturer names. Default is any manufacturer.

acceleratorNames List<String>

List of accelerator names. Default is any acclerator.

acceleratorTotalMemoryMib Property Map

Block describing the minimum and maximum total memory of the accelerators. Default is no minimum or maximum.

acceleratorTypes List<String>

List of accelerator types. Default is any accelerator type.

bareMetal String

Indicate whether bare metal instace types should be included, excluded, or required. Default is excluded.

baselineEbsBandwidthMbps Property Map

Block describing the minimum and maximum baseline EBS bandwidth, in Mbps. Default is no minimum or maximum.

burstablePerformance String

Indicate whether burstable performance instance types should be included, excluded, or required. Default is excluded.

cpuManufacturers List<String>

List of CPU manufacturer names. Default is any manufacturer.

excludedInstanceTypes List<String>

List of instance types to exclude. You can use strings with one or more wild cards, represented by an asterisk (*). The following are examples: c5*, m5a.*, r*, *3*. For example, if you specify c5*, you are excluding the entire C5 instance family, which includes all C5a and C5n instance types. If you specify m5a.*, you are excluding all the M5a instance types, but not the M5n instance types. Maximum of 400 entries in the list; each entry is limited to 30 characters. Default is no excluded instance types.

instanceGenerations List<String>

List of instance generation names. Default is any generation.

localStorage String

Indicate whether instance types with local storage volumes are included, excluded, or required. Default is included.

localStorageTypes List<String>

List of local storage type names. Default any storage type.

memoryGibPerVcpu Property Map

Block describing the minimum and maximum amount of memory (GiB) per vCPU. Default is no minimum or maximum.

memoryMib Property Map

Block describing the minimum and maximum amount of memory (MiB). Default is no maximum.

networkInterfaceCount Property Map

Block describing the minimum and maximum number of network interfaces. Default is no minimum or maximum.

onDemandMaxPricePercentageOverLowestPrice Number

Price protection threshold for On-Demand Instances. This is the maximum you’ll pay for an On-Demand Instance, expressed as a percentage higher than the cheapest M, C, or R instance type with your specified attributes. When Amazon EC2 Auto Scaling selects instance types with your attributes, we will exclude instance types whose price is higher than your threshold. The parameter accepts an integer, which Amazon EC2 Auto Scaling interprets as a percentage. To turn off price protection, specify a high value, such as 999999. Default is 20.

requireHibernateSupport Boolean

Indicate whether instance types must support On-Demand Instance Hibernation, either true or false. Default is false.

spotMaxPricePercentageOverLowestPrice Number

Price protection threshold for Spot Instances. This is the maximum you’ll pay for a Spot Instance, expressed as a percentage higher than the cheapest M, C, or R instance type with your specified attributes. When Amazon EC2 Auto Scaling selects instance types with your attributes, we will exclude instance types whose price is higher than your threshold. The parameter accepts an integer, which Amazon EC2 Auto Scaling interprets as a percentage. To turn off price protection, specify a high value, such as 999999. Default is 100.

totalLocalStorageGb Property Map

Block describing the minimum and maximum total local storage (GB). Default is no minimum or maximum.

vcpuCount Property Map

Block describing the minimum and maximum number of vCPUs. Default is no maximum.

GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsAcceleratorCount

Max int

Maximum. Set to 0 to exclude instance types with accelerators.

Min int

Minimum.

Max int

Maximum. Set to 0 to exclude instance types with accelerators.

Min int

Minimum.

max Integer

Maximum. Set to 0 to exclude instance types with accelerators.

min Integer

Minimum.

max number

Maximum. Set to 0 to exclude instance types with accelerators.

min number

Minimum.

max int

Maximum. Set to 0 to exclude instance types with accelerators.

min int

Minimum.

max Number

Maximum. Set to 0 to exclude instance types with accelerators.

min Number

Minimum.

GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsAcceleratorTotalMemoryMib

Max int

Maximum. Set to 0 to exclude instance types with accelerators.

Min int

Minimum.

Max int

Maximum. Set to 0 to exclude instance types with accelerators.

Min int

Minimum.

max Integer

Maximum. Set to 0 to exclude instance types with accelerators.

min Integer

Minimum.

max number

Maximum. Set to 0 to exclude instance types with accelerators.

min number

Minimum.

max int

Maximum. Set to 0 to exclude instance types with accelerators.

min int

Minimum.

max Number

Maximum. Set to 0 to exclude instance types with accelerators.

min Number

Minimum.

GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsBaselineEbsBandwidthMbps

Max int

Maximum. Set to 0 to exclude instance types with accelerators.

Min int

Minimum.

Max int

Maximum. Set to 0 to exclude instance types with accelerators.

Min int

Minimum.

max Integer

Maximum. Set to 0 to exclude instance types with accelerators.

min Integer

Minimum.

max number

Maximum. Set to 0 to exclude instance types with accelerators.

min number

Minimum.

max int

Maximum. Set to 0 to exclude instance types with accelerators.

min int

Minimum.

max Number

Maximum. Set to 0 to exclude instance types with accelerators.

min Number

Minimum.

GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsMemoryGibPerVcpu

Max double

Maximum. Set to 0 to exclude instance types with accelerators.

Min double

Minimum.

Max float64

Maximum. Set to 0 to exclude instance types with accelerators.

Min float64

Minimum.

max Double

Maximum. Set to 0 to exclude instance types with accelerators.

min Double

Minimum.

max number

Maximum. Set to 0 to exclude instance types with accelerators.

min number

Minimum.

max float

Maximum. Set to 0 to exclude instance types with accelerators.

min float

Minimum.

max Number

Maximum. Set to 0 to exclude instance types with accelerators.

min Number

Minimum.

GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsMemoryMib

Max int

Maximum. Set to 0 to exclude instance types with accelerators.

Min int

Minimum.

Max int

Maximum. Set to 0 to exclude instance types with accelerators.

Min int

Minimum.

max Integer

Maximum. Set to 0 to exclude instance types with accelerators.

min Integer

Minimum.

max number

Maximum. Set to 0 to exclude instance types with accelerators.

min number

Minimum.

max int

Maximum. Set to 0 to exclude instance types with accelerators.

min int

Minimum.

max Number

Maximum. Set to 0 to exclude instance types with accelerators.

min Number

Minimum.

GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsNetworkInterfaceCount

Max int

Maximum. Set to 0 to exclude instance types with accelerators.

Min int

Minimum.

Max int

Maximum. Set to 0 to exclude instance types with accelerators.

Min int

Minimum.

max Integer

Maximum. Set to 0 to exclude instance types with accelerators.

min Integer

Minimum.

max number

Maximum. Set to 0 to exclude instance types with accelerators.

min number

Minimum.

max int

Maximum. Set to 0 to exclude instance types with accelerators.

min int

Minimum.

max Number

Maximum. Set to 0 to exclude instance types with accelerators.

min Number

Minimum.

GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsTotalLocalStorageGb

Max double

Maximum. Set to 0 to exclude instance types with accelerators.

Min double

Minimum.

Max float64

Maximum. Set to 0 to exclude instance types with accelerators.

Min float64

Minimum.

max Double

Maximum. Set to 0 to exclude instance types with accelerators.

min Double

Minimum.

max number

Maximum. Set to 0 to exclude instance types with accelerators.

min number

Minimum.

max float

Maximum. Set to 0 to exclude instance types with accelerators.

min float

Minimum.

max Number

Maximum. Set to 0 to exclude instance types with accelerators.

min Number

Minimum.

GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsVcpuCount

Max int

Maximum. Set to 0 to exclude instance types with accelerators.

Min int

Minimum.

Max int

Maximum. Set to 0 to exclude instance types with accelerators.

Min int

Minimum.

max Integer

Maximum. Set to 0 to exclude instance types with accelerators.

min Integer

Minimum.

max number

Maximum. Set to 0 to exclude instance types with accelerators.

min number

Minimum.

max int

Maximum. Set to 0 to exclude instance types with accelerators.

min int

Minimum.

max Number

Maximum. Set to 0 to exclude instance types with accelerators.

min Number

Minimum.

GroupMixedInstancesPolicyLaunchTemplateOverrideLaunchTemplateSpecification

LaunchTemplateId string

ID of the launch template. Conflicts with launch_template_name.

LaunchTemplateName string

Name of the launch template. Conflicts with launch_template_id.

Version string

Template version. Can be version number, $Latest, or $Default. (Default: $Default).

LaunchTemplateId string

ID of the launch template. Conflicts with launch_template_name.

LaunchTemplateName string

Name of the launch template. Conflicts with launch_template_id.

Version string

Template version. Can be version number, $Latest, or $Default. (Default: $Default).

launchTemplateId String

ID of the launch template. Conflicts with launch_template_name.

launchTemplateName String

Name of the launch template. Conflicts with launch_template_id.

version String

Template version. Can be version number, $Latest, or $Default. (Default: $Default).

launchTemplateId string

ID of the launch template. Conflicts with launch_template_name.

launchTemplateName string

Name of the launch template. Conflicts with launch_template_id.

version string

Template version. Can be version number, $Latest, or $Default. (Default: $Default).

launch_template_id str

ID of the launch template. Conflicts with launch_template_name.

launch_template_name str

Name of the launch template. Conflicts with launch_template_id.

version str

Template version. Can be version number, $Latest, or $Default. (Default: $Default).

launchTemplateId String

ID of the launch template. Conflicts with launch_template_name.

launchTemplateName String

Name of the launch template. Conflicts with launch_template_id.

version String

Template version. Can be version number, $Latest, or $Default. (Default: $Default).

GroupTag

Key string

Key

PropagateAtLaunch bool

Enables propagation of the tag to Amazon EC2 instances launched via this ASG

Value string

Value

Key string

Key

PropagateAtLaunch bool

Enables propagation of the tag to Amazon EC2 instances launched via this ASG

Value string

Value

key String

Key

propagateAtLaunch Boolean

Enables propagation of the tag to Amazon EC2 instances launched via this ASG

value String

Value

key string

Key

propagateAtLaunch boolean

Enables propagation of the tag to Amazon EC2 instances launched via this ASG

value string

Value

key str

Key

propagate_at_launch bool

Enables propagation of the tag to Amazon EC2 instances launched via this ASG

value str

Value

key String

Key

propagateAtLaunch Boolean

Enables propagation of the tag to Amazon EC2 instances launched via this ASG

value String

Value

GroupWarmPool

InstanceReusePolicy GroupWarmPoolInstanceReusePolicy

Whether instances in the Auto Scaling group can be returned to the warm pool on scale in. The default is to terminate instances in the Auto Scaling group when the group scales in.

MaxGroupPreparedCapacity int

Total maximum number of instances that are allowed to be in the warm pool or in any state except Terminated for the Auto Scaling group.

MinSize int

Minimum number of instances to maintain in the warm pool. This helps you to ensure that there is always a certain number of warmed instances available to handle traffic spikes. Defaults to 0 if not specified.

PoolState string

Sets the instance state to transition to after the lifecycle hooks finish. Valid values are: Stopped (default), Running or Hibernated.

InstanceReusePolicy GroupWarmPoolInstanceReusePolicy

Whether instances in the Auto Scaling group can be returned to the warm pool on scale in. The default is to terminate instances in the Auto Scaling group when the group scales in.

MaxGroupPreparedCapacity int

Total maximum number of instances that are allowed to be in the warm pool or in any state except Terminated for the Auto Scaling group.

MinSize int

Minimum number of instances to maintain in the warm pool. This helps you to ensure that there is always a certain number of warmed instances available to handle traffic spikes. Defaults to 0 if not specified.

PoolState string

Sets the instance state to transition to after the lifecycle hooks finish. Valid values are: Stopped (default), Running or Hibernated.

instanceReusePolicy GroupWarmPoolInstanceReusePolicy

Whether instances in the Auto Scaling group can be returned to the warm pool on scale in. The default is to terminate instances in the Auto Scaling group when the group scales in.

maxGroupPreparedCapacity Integer

Total maximum number of instances that are allowed to be in the warm pool or in any state except Terminated for the Auto Scaling group.

minSize Integer

Minimum number of instances to maintain in the warm pool. This helps you to ensure that there is always a certain number of warmed instances available to handle traffic spikes. Defaults to 0 if not specified.

poolState String

Sets the instance state to transition to after the lifecycle hooks finish. Valid values are: Stopped (default), Running or Hibernated.

instanceReusePolicy GroupWarmPoolInstanceReusePolicy

Whether instances in the Auto Scaling group can be returned to the warm pool on scale in. The default is to terminate instances in the Auto Scaling group when the group scales in.

maxGroupPreparedCapacity number

Total maximum number of instances that are allowed to be in the warm pool or in any state except Terminated for the Auto Scaling group.

minSize number

Minimum number of instances to maintain in the warm pool. This helps you to ensure that there is always a certain number of warmed instances available to handle traffic spikes. Defaults to 0 if not specified.

poolState string

Sets the instance state to transition to after the lifecycle hooks finish. Valid values are: Stopped (default), Running or Hibernated.

instance_reuse_policy GroupWarmPoolInstanceReusePolicy

Whether instances in the Auto Scaling group can be returned to the warm pool on scale in. The default is to terminate instances in the Auto Scaling group when the group scales in.

max_group_prepared_capacity int

Total maximum number of instances that are allowed to be in the warm pool or in any state except Terminated for the Auto Scaling group.

min_size int

Minimum number of instances to maintain in the warm pool. This helps you to ensure that there is always a certain number of warmed instances available to handle traffic spikes. Defaults to 0 if not specified.

pool_state str

Sets the instance state to transition to after the lifecycle hooks finish. Valid values are: Stopped (default), Running or Hibernated.

instanceReusePolicy Property Map

Whether instances in the Auto Scaling group can be returned to the warm pool on scale in. The default is to terminate instances in the Auto Scaling group when the group scales in.

maxGroupPreparedCapacity Number

Total maximum number of instances that are allowed to be in the warm pool or in any state except Terminated for the Auto Scaling group.

minSize Number

Minimum number of instances to maintain in the warm pool. This helps you to ensure that there is always a certain number of warmed instances available to handle traffic spikes. Defaults to 0 if not specified.

poolState String

Sets the instance state to transition to after the lifecycle hooks finish. Valid values are: Stopped (default), Running or Hibernated.

GroupWarmPoolInstanceReusePolicy

ReuseOnScaleIn bool

Whether instances in the Auto Scaling group can be returned to the warm pool on scale in.

ReuseOnScaleIn bool

Whether instances in the Auto Scaling group can be returned to the warm pool on scale in.

reuseOnScaleIn Boolean

Whether instances in the Auto Scaling group can be returned to the warm pool on scale in.

reuseOnScaleIn boolean

Whether instances in the Auto Scaling group can be returned to the warm pool on scale in.

reuse_on_scale_in bool

Whether instances in the Auto Scaling group can be returned to the warm pool on scale in.

reuseOnScaleIn Boolean

Whether instances in the Auto Scaling group can be returned to the warm pool on scale in.

MetricsGranularity

OneMinute
1Minute
MetricsGranularityOneMinute
1Minute
OneMinute
1Minute
OneMinute
1Minute
ONE_MINUTE
1Minute
"1Minute"
1Minute

Import

Auto Scaling Groups can be imported using the name, e.g.,

 $ pulumi import aws:autoscaling/group:Group web web-asg

Package Details

Repository
AWS Classic pulumi/pulumi-aws
License
Apache-2.0
Notes

This Pulumi package is based on the aws Terraform Provider.