1. Packages
  2. AWS Classic
  3. API Docs
  4. autoscaling
  5. Group

Try AWS Native preview for resources not in the classic version.

AWS Classic v6.28.1 published on Thursday, Mar 28, 2024 by Pulumi

aws.autoscaling.Group

Explore with Pulumi AI

aws logo

Try AWS Native preview for resources not in the classic version.

AWS Classic v6.28.1 published on Thursday, Mar 28, 2024 by Pulumi

    Provides an Auto Scaling Group resource.

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

    NOTE on Auto Scaling Groups, Attachments and Traffic Source Attachments: Pulumi provides standalone Attachment (for attaching Classic Load Balancers and Application Load Balancer, Gateway Load Balancer, or Network Load Balancer target groups) and Traffic Source Attachment (for attaching Load Balancers and VPC Lattice target groups) resources and an Auto Scaling Group resource with load_balancers, target_group_arns and traffic_source attributes. Do not use the same traffic source in more than one of these resources. Doing so will cause a conflict of attachments. A lifecycle configuration block can be used to suppress differences if necessary.

    Example Usage

    import * as pulumi from "@pulumi/pulumi";
    import * as aws from "@pulumi/aws";
    
    const test = new aws.ec2.PlacementGroup("test", {
        name: "test",
        strategy: aws.ec2.PlacementStrategy.Cluster,
    });
    const bar = new aws.autoscaling.Group("bar", {
        name: "foobar3-test",
        maxSize: 5,
        minSize: 2,
        healthCheckGracePeriod: 300,
        healthCheckType: "ELB",
        desiredCapacity: 4,
        forceDelete: true,
        placementGroup: test.id,
        launchConfiguration: foobar.name,
        vpcZoneIdentifiers: [
            example1.id,
            example2.id,
        ],
        instanceMaintenancePolicy: {
            minHealthyPercentage: 90,
            maxHealthyPercentage: 120,
        },
        initialLifecycleHooks: [{
            name: "foobar",
            defaultResult: "CONTINUE",
            heartbeatTimeout: 2000,
            lifecycleTransition: "autoscaling:EC2_INSTANCE_LAUNCHING",
            notificationMetadata: JSON.stringify({
                foo: "bar",
            }),
            notificationTargetArn: "arn:aws:sqs:us-east-1:444455556666:queue1*",
            roleArn: "arn:aws:iam::123456789012:role/S3Access",
        }],
        tags: [
            {
                key: "foo",
                value: "bar",
                propagateAtLaunch: true,
            },
            {
                key: "lorem",
                value: "ipsum",
                propagateAtLaunch: false,
            },
        ],
    });
    
    import pulumi
    import json
    import pulumi_aws as aws
    
    test = aws.ec2.PlacementGroup("test",
        name="test",
        strategy=aws.ec2.PlacementStrategy.CLUSTER)
    bar = aws.autoscaling.Group("bar",
        name="foobar3-test",
        max_size=5,
        min_size=2,
        health_check_grace_period=300,
        health_check_type="ELB",
        desired_capacity=4,
        force_delete=True,
        placement_group=test.id,
        launch_configuration=foobar["name"],
        vpc_zone_identifiers=[
            example1["id"],
            example2["id"],
        ],
        instance_maintenance_policy=aws.autoscaling.GroupInstanceMaintenancePolicyArgs(
            min_healthy_percentage=90,
            max_healthy_percentage=120,
        ),
        initial_lifecycle_hooks=[aws.autoscaling.GroupInitialLifecycleHookArgs(
            name="foobar",
            default_result="CONTINUE",
            heartbeat_timeout=2000,
            lifecycle_transition="autoscaling:EC2_INSTANCE_LAUNCHING",
            notification_metadata=json.dumps({
                "foo": "bar",
            }),
            notification_target_arn="arn:aws:sqs:us-east-1:444455556666:queue1*",
            role_arn="arn:aws:iam::123456789012:role/S3Access",
        )],
        tags=[
            aws.autoscaling.GroupTagArgs(
                key="foo",
                value="bar",
                propagate_at_launch=True,
            ),
            aws.autoscaling.GroupTagArgs(
                key="lorem",
                value="ipsum",
                propagate_at_launch=False,
            ),
        ])
    
    package main
    
    import (
    	"encoding/json"
    
    	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/autoscaling"
    	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ec2"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		test, err := ec2.NewPlacementGroup(ctx, "test", &ec2.PlacementGroupArgs{
    			Name:     pulumi.String("test"),
    			Strategy: pulumi.String(ec2.PlacementStrategyCluster),
    		})
    		if err != nil {
    			return err
    		}
    		tmpJSON0, err := json.Marshal(map[string]interface{}{
    			"foo": "bar",
    		})
    		if err != nil {
    			return err
    		}
    		json0 := string(tmpJSON0)
    		_, err = autoscaling.NewGroup(ctx, "bar", &autoscaling.GroupArgs{
    			Name:                   pulumi.String("foobar3-test"),
    			MaxSize:                pulumi.Int(5),
    			MinSize:                pulumi.Int(2),
    			HealthCheckGracePeriod: pulumi.Int(300),
    			HealthCheckType:        pulumi.String("ELB"),
    			DesiredCapacity:        pulumi.Int(4),
    			ForceDelete:            pulumi.Bool(true),
    			PlacementGroup:         test.ID(),
    			LaunchConfiguration:    pulumi.Any(foobar.Name),
    			VpcZoneIdentifiers: pulumi.StringArray{
    				example1.Id,
    				example2.Id,
    			},
    			InstanceMaintenancePolicy: &autoscaling.GroupInstanceMaintenancePolicyArgs{
    				MinHealthyPercentage: pulumi.Int(90),
    				MaxHealthyPercentage: pulumi.Int(120),
    			},
    			InitialLifecycleHooks: autoscaling.GroupInitialLifecycleHookArray{
    				&autoscaling.GroupInitialLifecycleHookArgs{
    					Name:                  pulumi.String("foobar"),
    					DefaultResult:         pulumi.String("CONTINUE"),
    					HeartbeatTimeout:      pulumi.Int(2000),
    					LifecycleTransition:   pulumi.String("autoscaling:EC2_INSTANCE_LAUNCHING"),
    					NotificationMetadata:  pulumi.String(json0),
    					NotificationTargetArn: pulumi.String("arn:aws:sqs:us-east-1:444455556666:queue1*"),
    					RoleArn:               pulumi.String("arn:aws:iam::123456789012:role/S3Access"),
    				},
    			},
    			Tags: autoscaling.GroupTagArray{
    				&autoscaling.GroupTagArgs{
    					Key:               pulumi.String("foo"),
    					Value:             pulumi.String("bar"),
    					PropagateAtLaunch: pulumi.Bool(true),
    				},
    				&autoscaling.GroupTagArgs{
    					Key:               pulumi.String("lorem"),
    					Value:             pulumi.String("ipsum"),
    					PropagateAtLaunch: pulumi.Bool(false),
    				},
    			},
    		})
    		if err != nil {
    			return err
    		}
    		return nil
    	})
    }
    
    using System.Collections.Generic;
    using System.Linq;
    using System.Text.Json;
    using Pulumi;
    using Aws = Pulumi.Aws;
    
    return await Deployment.RunAsync(() => 
    {
        var test = new Aws.Ec2.PlacementGroup("test", new()
        {
            Name = "test",
            Strategy = Aws.Ec2.PlacementStrategy.Cluster,
        });
    
        var bar = new Aws.AutoScaling.Group("bar", new()
        {
            Name = "foobar3-test",
            MaxSize = 5,
            MinSize = 2,
            HealthCheckGracePeriod = 300,
            HealthCheckType = "ELB",
            DesiredCapacity = 4,
            ForceDelete = true,
            PlacementGroup = test.Id,
            LaunchConfiguration = foobar.Name,
            VpcZoneIdentifiers = new[]
            {
                example1.Id,
                example2.Id,
            },
            InstanceMaintenancePolicy = new Aws.AutoScaling.Inputs.GroupInstanceMaintenancePolicyArgs
            {
                MinHealthyPercentage = 90,
                MaxHealthyPercentage = 120,
            },
            InitialLifecycleHooks = new[]
            {
                new Aws.AutoScaling.Inputs.GroupInitialLifecycleHookArgs
                {
                    Name = "foobar",
                    DefaultResult = "CONTINUE",
                    HeartbeatTimeout = 2000,
                    LifecycleTransition = "autoscaling:EC2_INSTANCE_LAUNCHING",
                    NotificationMetadata = JsonSerializer.Serialize(new Dictionary<string, object?>
                    {
                        ["foo"] = "bar",
                    }),
                    NotificationTargetArn = "arn:aws:sqs:us-east-1:444455556666:queue1*",
                    RoleArn = "arn:aws:iam::123456789012:role/S3Access",
                },
            },
            Tags = new[]
            {
                new Aws.AutoScaling.Inputs.GroupTagArgs
                {
                    Key = "foo",
                    Value = "bar",
                    PropagateAtLaunch = true,
                },
                new Aws.AutoScaling.Inputs.GroupTagArgs
                {
                    Key = "lorem",
                    Value = "ipsum",
                    PropagateAtLaunch = false,
                },
            },
        });
    
    });
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import com.pulumi.aws.ec2.PlacementGroup;
    import com.pulumi.aws.ec2.PlacementGroupArgs;
    import com.pulumi.aws.autoscaling.Group;
    import com.pulumi.aws.autoscaling.GroupArgs;
    import com.pulumi.aws.autoscaling.inputs.GroupInstanceMaintenancePolicyArgs;
    import com.pulumi.aws.autoscaling.inputs.GroupInitialLifecycleHookArgs;
    import com.pulumi.aws.autoscaling.inputs.GroupTagArgs;
    import static com.pulumi.codegen.internal.Serialization.*;
    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 test = new PlacementGroup("test", PlacementGroupArgs.builder()        
                .name("test")
                .strategy("cluster")
                .build());
    
            var bar = new Group("bar", GroupArgs.builder()        
                .name("foobar3-test")
                .maxSize(5)
                .minSize(2)
                .healthCheckGracePeriod(300)
                .healthCheckType("ELB")
                .desiredCapacity(4)
                .forceDelete(true)
                .placementGroup(test.id())
                .launchConfiguration(foobar.name())
                .vpcZoneIdentifiers(            
                    example1.id(),
                    example2.id())
                .instanceMaintenancePolicy(GroupInstanceMaintenancePolicyArgs.builder()
                    .minHealthyPercentage(90)
                    .maxHealthyPercentage(120)
                    .build())
                .initialLifecycleHooks(GroupInitialLifecycleHookArgs.builder()
                    .name("foobar")
                    .defaultResult("CONTINUE")
                    .heartbeatTimeout(2000)
                    .lifecycleTransition("autoscaling:EC2_INSTANCE_LAUNCHING")
                    .notificationMetadata(serializeJson(
                        jsonObject(
                            jsonProperty("foo", "bar")
                        )))
                    .notificationTargetArn("arn:aws:sqs:us-east-1:444455556666:queue1*")
                    .roleArn("arn:aws:iam::123456789012:role/S3Access")
                    .build())
                .tags(            
                    GroupTagArgs.builder()
                        .key("foo")
                        .value("bar")
                        .propagateAtLaunch(true)
                        .build(),
                    GroupTagArgs.builder()
                        .key("lorem")
                        .value("ipsum")
                        .propagateAtLaunch(false)
                        .build())
                .build());
    
        }
    }
    
    resources:
      test:
        type: aws:ec2:PlacementGroup
        properties:
          name: test
          strategy: cluster
      bar:
        type: aws:autoscaling:Group
        properties:
          name: foobar3-test
          maxSize: 5
          minSize: 2
          healthCheckGracePeriod: 300
          healthCheckType: ELB
          desiredCapacity: 4
          forceDelete: true
          placementGroup: ${test.id}
          launchConfiguration: ${foobar.name}
          vpcZoneIdentifiers:
            - ${example1.id}
            - ${example2.id}
          instanceMaintenancePolicy:
            minHealthyPercentage: 90
            maxHealthyPercentage: 120
          initialLifecycleHooks:
            - name: foobar
              defaultResult: CONTINUE
              heartbeatTimeout: 2000
              lifecycleTransition: autoscaling:EC2_INSTANCE_LAUNCHING
              notificationMetadata:
                fn::toJSON:
                  foo: bar
              notificationTargetArn: arn:aws:sqs:us-east-1:444455556666:queue1*
              roleArn: arn:aws:iam::123456789012:role/S3Access
          tags:
            - key: foo
              value: bar
              propagateAtLaunch: true
            - key: lorem
              value: ipsum
              propagateAtLaunch: false
    

    With Latest Version Of Launch Template

    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",
        },
    });
    
    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",
        ))
    
    package main
    
    import (
    	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/autoscaling"
    	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ec2"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		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("$Latest"),
    			},
    		})
    		if err != nil {
    			return err
    		}
    		return nil
    	})
    }
    
    using System.Collections.Generic;
    using System.Linq;
    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 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());
    
        }
    }
    
    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

    import * as pulumi from "@pulumi/pulumi";
    import * as aws from "@pulumi/aws";
    
    const example = new aws.ec2.LaunchTemplate("example", {
        namePrefix: "example",
        imageId: exampleAwsAmi.id,
        instanceType: "c5.large",
    });
    const exampleGroup = new aws.autoscaling.Group("example", {
        availabilityZones: ["us-east-1a"],
        desiredCapacity: 1,
        maxSize: 1,
        minSize: 1,
        mixedInstancesPolicy: {
            launchTemplate: {
                launchTemplateSpecification: {
                    launchTemplateId: example.id,
                },
                overrides: [
                    {
                        instanceType: "c4.large",
                        weightedCapacity: "3",
                    },
                    {
                        instanceType: "c3.large",
                        weightedCapacity: "2",
                    },
                ],
            },
        },
    });
    
    import pulumi
    import pulumi_aws as aws
    
    example = aws.ec2.LaunchTemplate("example",
        name_prefix="example",
        image_id=example_aws_ami["id"],
        instance_type="c5.large")
    example_group = aws.autoscaling.Group("example",
        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.id,
                ),
                overrides=[
                    aws.autoscaling.GroupMixedInstancesPolicyLaunchTemplateOverrideArgs(
                        instance_type="c4.large",
                        weighted_capacity="3",
                    ),
                    aws.autoscaling.GroupMixedInstancesPolicyLaunchTemplateOverrideArgs(
                        instance_type="c3.large",
                        weighted_capacity="2",
                    ),
                ],
            ),
        ))
    
    package main
    
    import (
    	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/autoscaling"
    	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ec2"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		example, err := ec2.NewLaunchTemplate(ctx, "example", &ec2.LaunchTemplateArgs{
    			NamePrefix:   pulumi.String("example"),
    			ImageId:      pulumi.Any(exampleAwsAmi.Id),
    			InstanceType: pulumi.String("c5.large"),
    		})
    		if err != nil {
    			return err
    		}
    		_, err = autoscaling.NewGroup(ctx, "example", &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: example.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
    	})
    }
    
    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using Aws = Pulumi.Aws;
    
    return await Deployment.RunAsync(() => 
    {
        var example = new Aws.Ec2.LaunchTemplate("example", new()
        {
            NamePrefix = "example",
            ImageId = exampleAwsAmi.Id,
            InstanceType = "c5.large",
        });
    
        var exampleGroup = new Aws.AutoScaling.Group("example", 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 = example.Id,
                    },
                    Overrides = new[]
                    {
                        new Aws.AutoScaling.Inputs.GroupMixedInstancesPolicyLaunchTemplateOverrideArgs
                        {
                            InstanceType = "c4.large",
                            WeightedCapacity = "3",
                        },
                        new Aws.AutoScaling.Inputs.GroupMixedInstancesPolicyLaunchTemplateOverrideArgs
                        {
                            InstanceType = "c3.large",
                            WeightedCapacity = "2",
                        },
                    },
                },
            },
        });
    
    });
    
    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 example = new LaunchTemplate("example", LaunchTemplateArgs.builder()        
                .namePrefix("example")
                .imageId(exampleAwsAmi.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(example.id())
                            .build())
                        .overrides(                    
                            GroupMixedInstancesPolicyLaunchTemplateOverrideArgs.builder()
                                .instanceType("c4.large")
                                .weightedCapacity("3")
                                .build(),
                            GroupMixedInstancesPolicyLaunchTemplateOverrideArgs.builder()
                                .instanceType("c3.large")
                                .weightedCapacity("2")
                                .build())
                        .build())
                    .build())
                .build());
    
        }
    }
    
    resources:
      example:
        type: aws:ec2:LaunchTemplate
        properties:
          namePrefix: example
          imageId: ${exampleAwsAmi.id}
          instanceType: c5.large
      exampleGroup:
        type: aws:autoscaling:Group
        name: example
        properties:
          availabilityZones:
            - us-east-1a
          desiredCapacity: 1
          maxSize: 1
          minSize: 1
          mixedInstancesPolicy:
            launchTemplate:
              launchTemplateSpecification:
                launchTemplateId: ${example.id}
              overrides:
                - instanceType: c4.large
                  weightedCapacity: '3'
                - instanceType: c3.large
                  weightedCapacity: '2'
    

    Mixed Instances Policy with Spot Instances and Capacity Rebalance

    import * as pulumi from "@pulumi/pulumi";
    import * as aws from "@pulumi/aws";
    
    const example = new aws.ec2.LaunchTemplate("example", {
        namePrefix: "example",
        imageId: exampleAwsAmi.id,
        instanceType: "c5.large",
    });
    const exampleGroup = new aws.autoscaling.Group("example", {
        capacityRebalance: true,
        desiredCapacity: 12,
        maxSize: 15,
        minSize: 12,
        vpcZoneIdentifiers: [
            example1.id,
            example2.id,
        ],
        mixedInstancesPolicy: {
            instancesDistribution: {
                onDemandBaseCapacity: 0,
                onDemandPercentageAboveBaseCapacity: 25,
                spotAllocationStrategy: "capacity-optimized",
            },
            launchTemplate: {
                launchTemplateSpecification: {
                    launchTemplateId: example.id,
                },
                overrides: [
                    {
                        instanceType: "c4.large",
                        weightedCapacity: "3",
                    },
                    {
                        instanceType: "c3.large",
                        weightedCapacity: "2",
                    },
                ],
            },
        },
    });
    
    import pulumi
    import pulumi_aws as aws
    
    example = aws.ec2.LaunchTemplate("example",
        name_prefix="example",
        image_id=example_aws_ami["id"],
        instance_type="c5.large")
    example_group = aws.autoscaling.Group("example",
        capacity_rebalance=True,
        desired_capacity=12,
        max_size=15,
        min_size=12,
        vpc_zone_identifiers=[
            example1["id"],
            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.id,
                ),
                overrides=[
                    aws.autoscaling.GroupMixedInstancesPolicyLaunchTemplateOverrideArgs(
                        instance_type="c4.large",
                        weighted_capacity="3",
                    ),
                    aws.autoscaling.GroupMixedInstancesPolicyLaunchTemplateOverrideArgs(
                        instance_type="c3.large",
                        weighted_capacity="2",
                    ),
                ],
            ),
        ))
    
    package main
    
    import (
    	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/autoscaling"
    	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ec2"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		example, err := ec2.NewLaunchTemplate(ctx, "example", &ec2.LaunchTemplateArgs{
    			NamePrefix:   pulumi.String("example"),
    			ImageId:      pulumi.Any(exampleAwsAmi.Id),
    			InstanceType: pulumi.String("c5.large"),
    		})
    		if err != nil {
    			return err
    		}
    		_, err = autoscaling.NewGroup(ctx, "example", &autoscaling.GroupArgs{
    			CapacityRebalance: pulumi.Bool(true),
    			DesiredCapacity:   pulumi.Int(12),
    			MaxSize:           pulumi.Int(15),
    			MinSize:           pulumi.Int(12),
    			VpcZoneIdentifiers: pulumi.StringArray{
    				example1.Id,
    				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: example.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
    	})
    }
    
    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using Aws = Pulumi.Aws;
    
    return await Deployment.RunAsync(() => 
    {
        var example = new Aws.Ec2.LaunchTemplate("example", new()
        {
            NamePrefix = "example",
            ImageId = exampleAwsAmi.Id,
            InstanceType = "c5.large",
        });
    
        var exampleGroup = new Aws.AutoScaling.Group("example", new()
        {
            CapacityRebalance = true,
            DesiredCapacity = 12,
            MaxSize = 15,
            MinSize = 12,
            VpcZoneIdentifiers = new[]
            {
                example1.Id,
                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 = example.Id,
                    },
                    Overrides = new[]
                    {
                        new Aws.AutoScaling.Inputs.GroupMixedInstancesPolicyLaunchTemplateOverrideArgs
                        {
                            InstanceType = "c4.large",
                            WeightedCapacity = "3",
                        },
                        new Aws.AutoScaling.Inputs.GroupMixedInstancesPolicyLaunchTemplateOverrideArgs
                        {
                            InstanceType = "c3.large",
                            WeightedCapacity = "2",
                        },
                    },
                },
            },
        });
    
    });
    
    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 example = new LaunchTemplate("example", LaunchTemplateArgs.builder()        
                .namePrefix("example")
                .imageId(exampleAwsAmi.id())
                .instanceType("c5.large")
                .build());
    
            var exampleGroup = new Group("exampleGroup", GroupArgs.builder()        
                .capacityRebalance(true)
                .desiredCapacity(12)
                .maxSize(15)
                .minSize(12)
                .vpcZoneIdentifiers(            
                    example1.id(),
                    example2.id())
                .mixedInstancesPolicy(GroupMixedInstancesPolicyArgs.builder()
                    .instancesDistribution(GroupMixedInstancesPolicyInstancesDistributionArgs.builder()
                        .onDemandBaseCapacity(0)
                        .onDemandPercentageAboveBaseCapacity(25)
                        .spotAllocationStrategy("capacity-optimized")
                        .build())
                    .launchTemplate(GroupMixedInstancesPolicyLaunchTemplateArgs.builder()
                        .launchTemplateSpecification(GroupMixedInstancesPolicyLaunchTemplateLaunchTemplateSpecificationArgs.builder()
                            .launchTemplateId(example.id())
                            .build())
                        .overrides(                    
                            GroupMixedInstancesPolicyLaunchTemplateOverrideArgs.builder()
                                .instanceType("c4.large")
                                .weightedCapacity("3")
                                .build(),
                            GroupMixedInstancesPolicyLaunchTemplateOverrideArgs.builder()
                                .instanceType("c3.large")
                                .weightedCapacity("2")
                                .build())
                        .build())
                    .build())
                .build());
    
        }
    }
    
    resources:
      example:
        type: aws:ec2:LaunchTemplate
        properties:
          namePrefix: example
          imageId: ${exampleAwsAmi.id}
          instanceType: c5.large
      exampleGroup:
        type: aws:autoscaling:Group
        name: example
        properties:
          capacityRebalance: true
          desiredCapacity: 12
          maxSize: 15
          minSize: 12
          vpcZoneIdentifiers:
            - ${example1.id}
            - ${example2.id}
          mixedInstancesPolicy:
            instancesDistribution:
              onDemandBaseCapacity: 0
              onDemandPercentageAboveBaseCapacity: 25
              spotAllocationStrategy: capacity-optimized
            launchTemplate:
              launchTemplateSpecification:
                launchTemplateId: ${example.id}
              overrides:
                - instanceType: c4.large
                  weightedCapacity: '3'
                - instanceType: c3.large
                  weightedCapacity: '2'
    

    Mixed Instances Policy with Instance level LaunchTemplateSpecification Overrides

    When using a diverse instance set, some instance types might require a launch template with configuration values unique to that instance type such as a different AMI (Graviton2), architecture specific user data script, different EBS configuration, or different networking configuration.

    import * as pulumi from "@pulumi/pulumi";
    import * as aws from "@pulumi/aws";
    
    const example = new aws.ec2.LaunchTemplate("example", {
        namePrefix: "example",
        imageId: exampleAwsAmi.id,
        instanceType: "c5.large",
    });
    const example2 = new aws.ec2.LaunchTemplate("example2", {
        namePrefix: "example2",
        imageId: example2AwsAmi.id,
    });
    const exampleGroup = new aws.autoscaling.Group("example", {
        availabilityZones: ["us-east-1a"],
        desiredCapacity: 1,
        maxSize: 1,
        minSize: 1,
        mixedInstancesPolicy: {
            launchTemplate: {
                launchTemplateSpecification: {
                    launchTemplateId: example.id,
                },
                overrides: [
                    {
                        instanceType: "c4.large",
                        weightedCapacity: "3",
                    },
                    {
                        instanceType: "c6g.large",
                        launchTemplateSpecification: {
                            launchTemplateId: example2.id,
                        },
                        weightedCapacity: "2",
                    },
                ],
            },
        },
    });
    
    import pulumi
    import pulumi_aws as aws
    
    example = aws.ec2.LaunchTemplate("example",
        name_prefix="example",
        image_id=example_aws_ami["id"],
        instance_type="c5.large")
    example2 = aws.ec2.LaunchTemplate("example2",
        name_prefix="example2",
        image_id=example2_aws_ami["id"])
    example_group = aws.autoscaling.Group("example",
        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.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",
                    ),
                ],
            ),
        ))
    
    package main
    
    import (
    	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/autoscaling"
    	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ec2"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		example, err := ec2.NewLaunchTemplate(ctx, "example", &ec2.LaunchTemplateArgs{
    			NamePrefix:   pulumi.String("example"),
    			ImageId:      pulumi.Any(exampleAwsAmi.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(example2AwsAmi.Id),
    		})
    		if err != nil {
    			return err
    		}
    		_, err = autoscaling.NewGroup(ctx, "example", &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: example.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
    	})
    }
    
    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using Aws = Pulumi.Aws;
    
    return await Deployment.RunAsync(() => 
    {
        var example = new Aws.Ec2.LaunchTemplate("example", new()
        {
            NamePrefix = "example",
            ImageId = exampleAwsAmi.Id,
            InstanceType = "c5.large",
        });
    
        var example2 = new Aws.Ec2.LaunchTemplate("example2", new()
        {
            NamePrefix = "example2",
            ImageId = example2AwsAmi.Id,
        });
    
        var exampleGroup = new Aws.AutoScaling.Group("example", 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 = example.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 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 example = new LaunchTemplate("example", LaunchTemplateArgs.builder()        
                .namePrefix("example")
                .imageId(exampleAwsAmi.id())
                .instanceType("c5.large")
                .build());
    
            var example2 = new LaunchTemplate("example2", LaunchTemplateArgs.builder()        
                .namePrefix("example2")
                .imageId(example2AwsAmi.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(example.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());
    
        }
    }
    
    resources:
      example:
        type: aws:ec2:LaunchTemplate
        properties:
          namePrefix: example
          imageId: ${exampleAwsAmi.id}
          instanceType: c5.large
      example2:
        type: aws:ec2:LaunchTemplate
        properties:
          namePrefix: example2
          imageId: ${example2AwsAmi.id}
      exampleGroup:
        type: aws:autoscaling:Group
        name: example
        properties:
          availabilityZones:
            - us-east-1a
          desiredCapacity: 1
          maxSize: 1
          minSize: 1
          mixedInstancesPolicy:
            launchTemplate:
              launchTemplateSpecification:
                launchTemplateId: ${example.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

    As an alternative to manually choosing instance types when creating a mixed instances group, you can specify a set of instance attributes that describe your compute requirements.

    import * as pulumi from "@pulumi/pulumi";
    import * as aws from "@pulumi/aws";
    
    const example = new aws.ec2.LaunchTemplate("example", {
        namePrefix: "example",
        imageId: exampleAwsAmi.id,
        instanceType: "c5.large",
    });
    const exampleGroup = new aws.autoscaling.Group("example", {
        availabilityZones: ["us-east-1a"],
        desiredCapacity: 1,
        maxSize: 1,
        minSize: 1,
        mixedInstancesPolicy: {
            launchTemplate: {
                launchTemplateSpecification: {
                    launchTemplateId: example.id,
                },
                overrides: [{
                    instanceRequirements: {
                        memoryMib: {
                            min: 1000,
                        },
                        vcpuCount: {
                            min: 4,
                        },
                    },
                }],
            },
        },
    });
    
    import pulumi
    import pulumi_aws as aws
    
    example = aws.ec2.LaunchTemplate("example",
        name_prefix="example",
        image_id=example_aws_ami["id"],
        instance_type="c5.large")
    example_group = aws.autoscaling.Group("example",
        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.id,
                ),
                overrides=[aws.autoscaling.GroupMixedInstancesPolicyLaunchTemplateOverrideArgs(
                    instance_requirements=aws.autoscaling.GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsArgs(
                        memory_mib=aws.autoscaling.GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsMemoryMibArgs(
                            min=1000,
                        ),
                        vcpu_count=aws.autoscaling.GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsVcpuCountArgs(
                            min=4,
                        ),
                    ),
                )],
            ),
        ))
    
    package main
    
    import (
    	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/autoscaling"
    	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ec2"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		example, err := ec2.NewLaunchTemplate(ctx, "example", &ec2.LaunchTemplateArgs{
    			NamePrefix:   pulumi.String("example"),
    			ImageId:      pulumi.Any(exampleAwsAmi.Id),
    			InstanceType: pulumi.String("c5.large"),
    		})
    		if err != nil {
    			return err
    		}
    		_, err = autoscaling.NewGroup(ctx, "example", &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: example.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
    	})
    }
    
    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using Aws = Pulumi.Aws;
    
    return await Deployment.RunAsync(() => 
    {
        var example = new Aws.Ec2.LaunchTemplate("example", new()
        {
            NamePrefix = "example",
            ImageId = exampleAwsAmi.Id,
            InstanceType = "c5.large",
        });
    
        var exampleGroup = new Aws.AutoScaling.Group("example", 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 = example.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 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 example = new LaunchTemplate("example", LaunchTemplateArgs.builder()        
                .namePrefix("example")
                .imageId(exampleAwsAmi.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(example.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());
    
        }
    }
    
    resources:
      example:
        type: aws:ec2:LaunchTemplate
        properties:
          namePrefix: example
          imageId: ${exampleAwsAmi.id}
          instanceType: c5.large
      exampleGroup:
        type: aws:autoscaling:Group
        name: example
        properties:
          availabilityZones:
            - us-east-1a
          desiredCapacity: 1
          maxSize: 1
          minSize: 1
          mixedInstancesPolicy:
            launchTemplate:
              launchTemplateSpecification:
                launchTemplateId: ${example.id}
              overrides:
                - instanceRequirements:
                    memoryMib:
                      min: 1000
                    vcpuCount:
                      min: 4
    

    Dynamic tagging

    import * as pulumi from "@pulumi/pulumi";
    import * as aws from "@pulumi/aws";
    
    const config = new pulumi.Config();
    const extraTags = config.getObject("extraTags") || [
        {
            key: "Foo",
            propagateAtLaunch: true,
            value: "Bar",
        },
        {
            key: "Baz",
            propagateAtLaunch: true,
            value: "Bam",
        },
    ];
    const test = new aws.autoscaling.Group("test", {
        tags: [
            {
                key: "explicit1",
                value: "value1",
                propagateAtLaunch: true,
            },
            {
                key: "explicit2",
                value: "value2",
                propagateAtLaunch: true,
            },
        ],
        name: "foobar3-test",
        maxSize: 5,
        minSize: 2,
        launchConfiguration: foobar.name,
        vpcZoneIdentifiers: [
            example1.id,
            example2.id,
        ],
    });
    
    import pulumi
    import pulumi_aws as aws
    
    config = pulumi.Config()
    extra_tags = config.get_object("extraTags")
    if extra_tags is None:
        extra_tags = [
            {
                "key": "Foo",
                "propagateAtLaunch": True,
                "value": "Bar",
            },
            {
                "key": "Baz",
                "propagateAtLaunch": True,
                "value": "Bam",
            },
        ]
    test = aws.autoscaling.Group("test",
        tags=[
            aws.autoscaling.GroupTagArgs(
                key="explicit1",
                value="value1",
                propagate_at_launch=True,
            ),
            aws.autoscaling.GroupTagArgs(
                key="explicit2",
                value="value2",
                propagate_at_launch=True,
            ),
        ],
        name="foobar3-test",
        max_size=5,
        min_size=2,
        launch_configuration=foobar["name"],
        vpc_zone_identifiers=[
            example1["id"],
            example2["id"],
        ])
    
    package main
    
    import (
    	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/autoscaling"
    	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ec2"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		cfg := config.New(ctx, "")
    		extraTags := []map[string]interface{}{
    			map[string]interface{}{
    				"key":               "Foo",
    				"propagateAtLaunch": true,
    				"value":             "Bar",
    			},
    			map[string]interface{}{
    				"key":               "Baz",
    				"propagateAtLaunch": true,
    				"value":             "Bam",
    			},
    		}
    		if param := cfg.GetObject("extraTags"); param != nil {
    			extraTags = param
    		}
    		_, err := autoscaling.NewGroup(ctx, "test", &autoscaling.GroupArgs{
    			Tags: autoscaling.GroupTagArray{
    				&autoscaling.GroupTagArgs{
    					Key:               pulumi.String("explicit1"),
    					Value:             pulumi.String("value1"),
    					PropagateAtLaunch: pulumi.Bool(true),
    				},
    				&autoscaling.GroupTagArgs{
    					Key:               pulumi.String("explicit2"),
    					Value:             pulumi.String("value2"),
    					PropagateAtLaunch: pulumi.Bool(true),
    				},
    			},
    			Name:                pulumi.String("foobar3-test"),
    			MaxSize:             pulumi.Int(5),
    			MinSize:             pulumi.Int(2),
    			LaunchConfiguration: pulumi.Any(foobar.Name),
    			VpcZoneIdentifiers: pulumi.StringArray{
    				example1.Id,
    				example2.Id,
    			},
    		})
    		if err != nil {
    			return err
    		}
    		return nil
    	})
    }
    
    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using Aws = Pulumi.Aws;
    
    return await Deployment.RunAsync(() => 
    {
        var config = new Config();
        var extraTags = config.GetObject<dynamic>("extraTags") ?? new[]
        {
            
            {
                { "key", "Foo" },
                { "propagateAtLaunch", true },
                { "value", "Bar" },
            },
            
            {
                { "key", "Baz" },
                { "propagateAtLaunch", true },
                { "value", "Bam" },
            },
        };
        var test = new Aws.AutoScaling.Group("test", new()
        {
            Tags = new[]
            {
                new Aws.AutoScaling.Inputs.GroupTagArgs
                {
                    Key = "explicit1",
                    Value = "value1",
                    PropagateAtLaunch = true,
                },
                new Aws.AutoScaling.Inputs.GroupTagArgs
                {
                    Key = "explicit2",
                    Value = "value2",
                    PropagateAtLaunch = true,
                },
            },
            Name = "foobar3-test",
            MaxSize = 5,
            MinSize = 2,
            LaunchConfiguration = foobar.Name,
            VpcZoneIdentifiers = new[]
            {
                example1.Id,
                example2.Id,
            },
        });
    
    });
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import com.pulumi.aws.autoscaling.Group;
    import com.pulumi.aws.autoscaling.GroupArgs;
    import com.pulumi.aws.autoscaling.inputs.GroupTagArgs;
    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 config = ctx.config();
            final var extraTags = config.get("extraTags").orElse(        
                %!v(PANIC=Format method: runtime error: invalid memory address or nil pointer dereference),
                %!v(PANIC=Format method: runtime error: invalid memory address or nil pointer dereference));
            var test = new Group("test", GroupArgs.builder()        
                .tags(            
                    GroupTagArgs.builder()
                        .key("explicit1")
                        .value("value1")
                        .propagateAtLaunch(true)
                        .build(),
                    GroupTagArgs.builder()
                        .key("explicit2")
                        .value("value2")
                        .propagateAtLaunch(true)
                        .build())
                .name("foobar3-test")
                .maxSize(5)
                .minSize(2)
                .launchConfiguration(foobar.name())
                .vpcZoneIdentifiers(            
                    example1.id(),
                    example2.id())
                .build());
    
        }
    }
    
    configuration:
      extraTags:
        type: dynamic
        default:
          - key: Foo
            propagateAtLaunch: true
            value: Bar
          - key: Baz
            propagateAtLaunch: true
            value: Bam
    resources:
      test:
        type: aws:autoscaling:Group
        properties:
          tags:
            - key: explicit1
              value: value1
              propagateAtLaunch: true
            - key: explicit2
              value: value2
              propagateAtLaunch: true
          name: foobar3-test
          maxSize: 5
          minSize: 2
          launchConfiguration: ${foobar.name}
          vpcZoneIdentifiers:
            - ${example1.id}
            - ${example2.id}
    

    Automatically refresh all instances after the group is updated

    import * as pulumi from "@pulumi/pulumi";
    import * as aws from "@pulumi/aws";
    
    const example = aws.ec2.getAmi({
        mostRecent: true,
        owners: ["amazon"],
        filters: [{
            name: "name",
            values: ["amzn-ami-hvm-*-x86_64-gp2"],
        }],
    });
    const exampleLaunchTemplate = new aws.ec2.LaunchTemplate("example", {
        imageId: example.then(example => example.id),
        instanceType: "t3.nano",
    });
    const exampleGroup = new aws.autoscaling.Group("example", {
        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"],
        },
    });
    
    import pulumi
    import pulumi_aws as aws
    
    example = 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("example",
        image_id=example.id,
        instance_type="t3.nano")
    example_group = aws.autoscaling.Group("example",
        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"],
        ))
    
    package main
    
    import (
    	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/autoscaling"
    	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ec2"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		example, 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, "example", &ec2.LaunchTemplateArgs{
    			ImageId:      pulumi.String(example.Id),
    			InstanceType: pulumi.String("t3.nano"),
    		})
    		if err != nil {
    			return err
    		}
    		_, err = autoscaling.NewGroup(ctx, "example", &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
    	})
    }
    
    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using Aws = Pulumi.Aws;
    
    return await Deployment.RunAsync(() => 
    {
        var example = 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("example", new()
        {
            ImageId = example.Apply(getAmiResult => getAmiResult.Id),
            InstanceType = "t3.nano",
        });
    
        var exampleGroup = new Aws.AutoScaling.Group("example", 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 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 example = 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(example.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());
    
        }
    }
    
    resources:
      exampleGroup:
        type: aws:autoscaling:Group
        name: example
        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
        name: example
        properties:
          imageId: ${example.id}
          instanceType: t3.nano
    variables:
      example:
        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

    import * as pulumi from "@pulumi/pulumi";
    import * as aws from "@pulumi/aws";
    
    const example = new aws.ec2.LaunchTemplate("example", {
        namePrefix: "example",
        imageId: exampleAwsAmi.id,
        instanceType: "c5.large",
    });
    const exampleGroup = new aws.autoscaling.Group("example", {
        availabilityZones: ["us-east-1a"],
        desiredCapacity: 1,
        maxSize: 5,
        minSize: 1,
        warmPool: {
            poolState: "Hibernated",
            minSize: 1,
            maxGroupPreparedCapacity: 10,
            instanceReusePolicy: {
                reuseOnScaleIn: true,
            },
        },
    });
    
    import pulumi
    import pulumi_aws as aws
    
    example = aws.ec2.LaunchTemplate("example",
        name_prefix="example",
        image_id=example_aws_ami["id"],
        instance_type="c5.large")
    example_group = aws.autoscaling.Group("example",
        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,
            ),
        ))
    
    package main
    
    import (
    	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/autoscaling"
    	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ec2"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		_, err := ec2.NewLaunchTemplate(ctx, "example", &ec2.LaunchTemplateArgs{
    			NamePrefix:   pulumi.String("example"),
    			ImageId:      pulumi.Any(exampleAwsAmi.Id),
    			InstanceType: pulumi.String("c5.large"),
    		})
    		if err != nil {
    			return err
    		}
    		_, err = autoscaling.NewGroup(ctx, "example", &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
    	})
    }
    
    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using Aws = Pulumi.Aws;
    
    return await Deployment.RunAsync(() => 
    {
        var example = new Aws.Ec2.LaunchTemplate("example", new()
        {
            NamePrefix = "example",
            ImageId = exampleAwsAmi.Id,
            InstanceType = "c5.large",
        });
    
        var exampleGroup = new Aws.AutoScaling.Group("example", 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 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 example = new LaunchTemplate("example", LaunchTemplateArgs.builder()        
                .namePrefix("example")
                .imageId(exampleAwsAmi.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());
    
        }
    }
    
    resources:
      example:
        type: aws:ec2:LaunchTemplate
        properties:
          namePrefix: example
          imageId: ${exampleAwsAmi.id}
          instanceType: c5.large
      exampleGroup:
        type: aws:autoscaling:Group
        name: example
        properties:
          availabilityZones:
            - us-east-1a
          desiredCapacity: 1
          maxSize: 5
          minSize: 1
          warmPool:
            poolState: Hibernated
            minSize: 1
            maxGroupPreparedCapacity: 10
            instanceReusePolicy:
              reuseOnScaleIn: true
    

    Auto Scaling group with Traffic Sources

    import * as pulumi from "@pulumi/pulumi";
    import * as aws from "@pulumi/aws";
    
    const test = new aws.autoscaling.Group("test", {
        trafficSources: testAwsVpclatticeTargetGroup.map(__item => __item).map((v, k) => ({key: k, value: v})).map(entry => ({
            identifier: entry.value.arn,
            type: "vpc-lattice",
        })),
        vpcZoneIdentifiers: testAwsSubnet.id,
        maxSize: 1,
        minSize: 1,
        forceDelete: true,
    });
    
    import pulumi
    import pulumi_aws as aws
    
    test = aws.autoscaling.Group("test",
        traffic_sources=[aws.autoscaling.GroupTrafficSourceArgs(
            identifier=entry["value"]["arn"],
            type="vpc-lattice",
        ) for entry in [{"key": k, "value": v} for k, v in [__item for __item in test_aws_vpclattice_target_group]]],
        vpc_zone_identifiers=test_aws_subnet["id"],
        max_size=1,
        min_size=1,
        force_delete=True)
    
    Coming soon!```
    </pulumi-choosable>
    </div>
    <div>
    <pulumi-choosable type="language" values="csharp">
    
    ```csharp
    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using Aws = Pulumi.Aws;
    
    return await Deployment.RunAsync(() => 
    {
        var test = new Aws.AutoScaling.Group("test", new()
        {
            TrafficSources = testAwsVpclatticeTargetGroup.Select(__item => __item).ToList().Select((v, k) => new { Key = k, Value = v }).Select(entry => 
            {
                return new Aws.AutoScaling.Inputs.GroupTrafficSourceArgs
                {
                    Identifier = entry.Value.Arn,
                    Type = "vpc-lattice",
                };
            }).ToList(),
            VpcZoneIdentifiers = testAwsSubnet.Id,
            MaxSize = 1,
            MinSize = 1,
            ForceDelete = true,
        });
    
    });
    
    Coming soon!```
    </pulumi-choosable>
    </div>
    <div>
    <pulumi-choosable type="language" values="yaml">
    

    Coming soon!```

    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.

    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,
              ignore_failed_scaling_activities: Optional[bool] = None,
              initial_lifecycle_hooks: Optional[Sequence[GroupInitialLifecycleHookArgs]] = None,
              instance_maintenance_policy: Optional[GroupInstanceMaintenancePolicyArgs] = 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,
              target_group_arns: Optional[Sequence[str]] = None,
              termination_policies: Optional[Sequence[str]] = None,
              traffic_sources: Optional[Sequence[GroupTrafficSourceArgs]] = 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>
    A list of Availability Zones where instances in the Auto Scaling group can be created. Used for launching into the default VPC subnet in each Availability Zone when not using the vpc_zone_identifier attribute, or for attaching a network interface when an existing network interface ID is specified in a launch template. 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
    Allows deleting the Auto Scaling Group without waiting for all instances in the warm pool to terminate.
    HealthCheckGracePeriod int
    Time (in seconds) after instance comes into service before checking health.
    HealthCheckType string
    "EC2" or "ELB". Controls how health checking is done.
    IgnoreFailedScalingActivities bool
    Whether to ignore failed Auto Scaling scaling activities while waiting for capacity. The default is false -- failed scaling activities cause errors to be returned.
    InitialLifecycleHooks List<GroupInitialLifecycleHook>
    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.
    InstanceMaintenancePolicy GroupInstanceMaintenancePolicy
    If this block is configured, add a instance maintenance policy to the specified Auto Scaling group. Defined below.
    InstanceRefresh GroupInstanceRefresh
    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 GroupLaunchTemplate
    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. To remove all load balancer attachments an empty list should be specified.
    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 Pulumi 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 GroupMixedInstancesPolicy
    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 Pulumi. 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<GroupTag>
    Configuration block(s) containing resource tags. See Tag below for more details.
    TargetGroupArns List<string>
    Set of aws.alb.TargetGroup ARNs, for use with Application or Network Load Balancing. To remove all target group attachments an empty list should be specified.
    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.
    TrafficSources List<GroupTrafficSource>
    Attaches one or more traffic sources to the specified Auto Scaling group.
    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 Pulumi 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 GroupWarmPool
    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
    A list of Availability Zones where instances in the Auto Scaling group can be created. Used for launching into the default VPC subnet in each Availability Zone when not using the vpc_zone_identifier attribute, or for attaching a network interface when an existing network interface ID is specified in a launch template. 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
    Allows deleting the Auto Scaling Group without waiting for all instances in the warm pool to terminate.
    HealthCheckGracePeriod int
    Time (in seconds) after instance comes into service before checking health.
    HealthCheckType string
    "EC2" or "ELB". Controls how health checking is done.
    IgnoreFailedScalingActivities bool
    Whether to ignore failed Auto Scaling scaling activities while waiting for capacity. The default is false -- failed scaling activities cause errors to be returned.
    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.
    InstanceMaintenancePolicy GroupInstanceMaintenancePolicyArgs
    If this block is configured, add a instance maintenance policy to the specified Auto Scaling group. Defined below.
    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. To remove all load balancer attachments an empty list should be specified.
    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 Pulumi 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 Pulumi. 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. See Tag below for more details.
    TargetGroupArns []string
    Set of aws.alb.TargetGroup ARNs, for use with Application or Network Load Balancing. To remove all target group attachments an empty list should be specified.
    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.
    TrafficSources []GroupTrafficSourceArgs
    Attaches one or more traffic sources to the specified Auto Scaling group.
    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 Pulumi 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>
    A list of Availability Zones where instances in the Auto Scaling group can be created. Used for launching into the default VPC subnet in each Availability Zone when not using the vpc_zone_identifier attribute, or for attaching a network interface when an existing network interface ID is specified in a launch template. 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
    Allows deleting the Auto Scaling Group without waiting for all instances in the warm pool to terminate.
    healthCheckGracePeriod Integer
    Time (in seconds) after instance comes into service before checking health.
    healthCheckType String
    "EC2" or "ELB". Controls how health checking is done.
    ignoreFailedScalingActivities Boolean
    Whether to ignore failed Auto Scaling scaling activities while waiting for capacity. The default is false -- failed scaling activities cause errors to be returned.
    initialLifecycleHooks List<GroupInitialLifecycleHook>
    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.
    instanceMaintenancePolicy GroupInstanceMaintenancePolicy
    If this block is configured, add a instance maintenance policy to the specified Auto Scaling group. Defined below.
    instanceRefresh GroupInstanceRefresh
    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 GroupLaunchTemplate
    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. To remove all load balancer attachments an empty list should be specified.
    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 Pulumi 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 GroupMixedInstancesPolicy
    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 Pulumi. 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<GroupTag>
    Configuration block(s) containing resource tags. See Tag below for more details.
    targetGroupArns List<String>
    Set of aws.alb.TargetGroup ARNs, for use with Application or Network Load Balancing. To remove all target group attachments an empty list should be specified.
    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.
    trafficSources List<GroupTrafficSource>
    Attaches one or more traffic sources to the specified Auto Scaling group.
    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 Pulumi 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 GroupWarmPool
    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[]
    A list of Availability Zones where instances in the Auto Scaling group can be created. Used for launching into the default VPC subnet in each Availability Zone when not using the vpc_zone_identifier attribute, or for attaching a network interface when an existing network interface ID is specified in a launch template. 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
    Allows deleting the Auto Scaling Group without waiting for all instances in the warm pool to terminate.
    healthCheckGracePeriod number
    Time (in seconds) after instance comes into service before checking health.
    healthCheckType string
    "EC2" or "ELB". Controls how health checking is done.
    ignoreFailedScalingActivities boolean
    Whether to ignore failed Auto Scaling scaling activities while waiting for capacity. The default is false -- failed scaling activities cause errors to be returned.
    initialLifecycleHooks GroupInitialLifecycleHook[]
    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.
    instanceMaintenancePolicy GroupInstanceMaintenancePolicy
    If this block is configured, add a instance maintenance policy to the specified Auto Scaling group. Defined below.
    instanceRefresh GroupInstanceRefresh
    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 GroupLaunchTemplate
    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. To remove all load balancer attachments an empty list should be specified.
    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 Pulumi 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 GroupMixedInstancesPolicy
    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 Pulumi. 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 GroupTag[]
    Configuration block(s) containing resource tags. See Tag below for more details.
    targetGroupArns string[]
    Set of aws.alb.TargetGroup ARNs, for use with Application or Network Load Balancing. To remove all target group attachments an empty list should be specified.
    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.
    trafficSources GroupTrafficSource[]
    Attaches one or more traffic sources to the specified Auto Scaling group.
    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 Pulumi 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 GroupWarmPool
    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]
    A list of Availability Zones where instances in the Auto Scaling group can be created. Used for launching into the default VPC subnet in each Availability Zone when not using the vpc_zone_identifier attribute, or for attaching a network interface when an existing network interface ID is specified in a launch template. 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
    Allows deleting the Auto Scaling Group without waiting for all instances in the warm pool to terminate.
    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.
    ignore_failed_scaling_activities bool
    Whether to ignore failed Auto Scaling scaling activities while waiting for capacity. The default is false -- failed scaling activities cause errors to be returned.
    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_maintenance_policy GroupInstanceMaintenancePolicyArgs
    If this block is configured, add a instance maintenance policy to the specified Auto Scaling group. Defined below.
    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. To remove all load balancer attachments an empty list should be specified.
    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 Pulumi 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 Pulumi. 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. See Tag below for more details.
    target_group_arns Sequence[str]
    Set of aws.alb.TargetGroup ARNs, for use with Application or Network Load Balancing. To remove all target group attachments an empty list should be specified.
    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.
    traffic_sources Sequence[GroupTrafficSourceArgs]
    Attaches one or more traffic sources to the specified Auto Scaling group.
    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 Pulumi 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>
    A list of Availability Zones where instances in the Auto Scaling group can be created. Used for launching into the default VPC subnet in each Availability Zone when not using the vpc_zone_identifier attribute, or for attaching a network interface when an existing network interface ID is specified in a launch template. 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
    Allows deleting the Auto Scaling Group without waiting for all instances in the warm pool to terminate.
    healthCheckGracePeriod Number
    Time (in seconds) after instance comes into service before checking health.
    healthCheckType String
    "EC2" or "ELB". Controls how health checking is done.
    ignoreFailedScalingActivities Boolean
    Whether to ignore failed Auto Scaling scaling activities while waiting for capacity. The default is false -- failed scaling activities cause errors to be returned.
    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.
    instanceMaintenancePolicy Property Map
    If this block is configured, add a instance maintenance policy to the specified Auto Scaling group. Defined below.
    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. To remove all load balancer attachments an empty list should be specified.
    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 Pulumi 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 Pulumi. 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. See Tag below for more details.
    targetGroupArns List<String>
    Set of aws.alb.TargetGroup ARNs, for use with Application or Network Load Balancing. To remove all target group attachments an empty list should be specified.
    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.
    trafficSources List<Property Map>
    Attaches one or more traffic sources to the specified Auto Scaling group.
    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 Pulumi 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.
    PredictedCapacity int
    Predicted capacity of the group.
    WarmPoolSize int
    Current size of the warm pool.
    Arn string
    ARN for this Auto Scaling Group
    Id string
    The provider-assigned unique ID for this managed resource.
    PredictedCapacity int
    Predicted capacity of the group.
    WarmPoolSize int
    Current size of the warm pool.
    arn String
    ARN for this Auto Scaling Group
    id String
    The provider-assigned unique ID for this managed resource.
    predictedCapacity Integer
    Predicted capacity of the group.
    warmPoolSize Integer
    Current size of the warm pool.
    arn string
    ARN for this Auto Scaling Group
    id string
    The provider-assigned unique ID for this managed resource.
    predictedCapacity number
    Predicted capacity of the group.
    warmPoolSize number
    Current size of the warm pool.
    arn str
    ARN for this Auto Scaling Group
    id str
    The provider-assigned unique ID for this managed resource.
    predicted_capacity int
    Predicted capacity of the group.
    warm_pool_size int
    Current size of the warm pool.
    arn String
    ARN for this Auto Scaling Group
    id String
    The provider-assigned unique ID for this managed resource.
    predictedCapacity Number
    Predicted capacity of the group.
    warmPoolSize Number
    Current size of the warm pool.

    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,
            ignore_failed_scaling_activities: Optional[bool] = None,
            initial_lifecycle_hooks: Optional[Sequence[GroupInitialLifecycleHookArgs]] = None,
            instance_maintenance_policy: Optional[GroupInstanceMaintenancePolicyArgs] = 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,
            predicted_capacity: Optional[int] = 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,
            target_group_arns: Optional[Sequence[str]] = None,
            termination_policies: Optional[Sequence[str]] = None,
            traffic_sources: Optional[Sequence[GroupTrafficSourceArgs]] = 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,
            warm_pool_size: Optional[int] = 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>
    A list of Availability Zones where instances in the Auto Scaling group can be created. Used for launching into the default VPC subnet in each Availability Zone when not using the vpc_zone_identifier attribute, or for attaching a network interface when an existing network interface ID is specified in a launch template. 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
    Allows deleting the Auto Scaling Group without waiting for all instances in the warm pool to terminate.
    HealthCheckGracePeriod int
    Time (in seconds) after instance comes into service before checking health.
    HealthCheckType string
    "EC2" or "ELB". Controls how health checking is done.
    IgnoreFailedScalingActivities bool
    Whether to ignore failed Auto Scaling scaling activities while waiting for capacity. The default is false -- failed scaling activities cause errors to be returned.
    InitialLifecycleHooks List<GroupInitialLifecycleHook>
    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.
    InstanceMaintenancePolicy GroupInstanceMaintenancePolicy
    If this block is configured, add a instance maintenance policy to the specified Auto Scaling group. Defined below.
    InstanceRefresh GroupInstanceRefresh
    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 GroupLaunchTemplate
    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. To remove all load balancer attachments an empty list should be specified.
    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 Pulumi 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 GroupMixedInstancesPolicy
    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 Pulumi. 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.
    PredictedCapacity int
    Predicted capacity of the group.
    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<GroupTag>
    Configuration block(s) containing resource tags. See Tag below for more details.
    TargetGroupArns List<string>
    Set of aws.alb.TargetGroup ARNs, for use with Application or Network Load Balancing. To remove all target group attachments an empty list should be specified.
    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.
    TrafficSources List<GroupTrafficSource>
    Attaches one or more traffic sources to the specified Auto Scaling group.
    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 Pulumi 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 GroupWarmPool
    If this block is configured, add a Warm Pool to the specified Auto Scaling group. Defined below
    WarmPoolSize int
    Current size of the warm pool.
    Arn string
    ARN for this Auto Scaling Group
    AvailabilityZones []string
    A list of Availability Zones where instances in the Auto Scaling group can be created. Used for launching into the default VPC subnet in each Availability Zone when not using the vpc_zone_identifier attribute, or for attaching a network interface when an existing network interface ID is specified in a launch template. 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
    Allows deleting the Auto Scaling Group without waiting for all instances in the warm pool to terminate.
    HealthCheckGracePeriod int
    Time (in seconds) after instance comes into service before checking health.
    HealthCheckType string
    "EC2" or "ELB". Controls how health checking is done.
    IgnoreFailedScalingActivities bool
    Whether to ignore failed Auto Scaling scaling activities while waiting for capacity. The default is false -- failed scaling activities cause errors to be returned.
    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.
    InstanceMaintenancePolicy GroupInstanceMaintenancePolicyArgs
    If this block is configured, add a instance maintenance policy to the specified Auto Scaling group. Defined below.
    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. To remove all load balancer attachments an empty list should be specified.
    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 Pulumi 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 Pulumi. 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.
    PredictedCapacity int
    Predicted capacity of the group.
    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. See Tag below for more details.
    TargetGroupArns []string
    Set of aws.alb.TargetGroup ARNs, for use with Application or Network Load Balancing. To remove all target group attachments an empty list should be specified.
    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.
    TrafficSources []GroupTrafficSourceArgs
    Attaches one or more traffic sources to the specified Auto Scaling group.
    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 Pulumi 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
    WarmPoolSize int
    Current size of the warm pool.
    arn String
    ARN for this Auto Scaling Group
    availabilityZones List<String>
    A list of Availability Zones where instances in the Auto Scaling group can be created. Used for launching into the default VPC subnet in each Availability Zone when not using the vpc_zone_identifier attribute, or for attaching a network interface when an existing network interface ID is specified in a launch template. 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
    Allows deleting the Auto Scaling Group without waiting for all instances in the warm pool to terminate.
    healthCheckGracePeriod Integer
    Time (in seconds) after instance comes into service before checking health.
    healthCheckType String
    "EC2" or "ELB". Controls how health checking is done.
    ignoreFailedScalingActivities Boolean
    Whether to ignore failed Auto Scaling scaling activities while waiting for capacity. The default is false -- failed scaling activities cause errors to be returned.
    initialLifecycleHooks List<GroupInitialLifecycleHook>
    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.
    instanceMaintenancePolicy GroupInstanceMaintenancePolicy
    If this block is configured, add a instance maintenance policy to the specified Auto Scaling group. Defined below.
    instanceRefresh GroupInstanceRefresh
    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 GroupLaunchTemplate
    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. To remove all load balancer attachments an empty list should be specified.
    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 Pulumi 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 GroupMixedInstancesPolicy
    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 Pulumi. 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.
    predictedCapacity Integer
    Predicted capacity of the group.
    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<GroupTag>
    Configuration block(s) containing resource tags. See Tag below for more details.
    targetGroupArns List<String>
    Set of aws.alb.TargetGroup ARNs, for use with Application or Network Load Balancing. To remove all target group attachments an empty list should be specified.
    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.
    trafficSources List<GroupTrafficSource>
    Attaches one or more traffic sources to the specified Auto Scaling group.
    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 Pulumi 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 GroupWarmPool
    If this block is configured, add a Warm Pool to the specified Auto Scaling group. Defined below
    warmPoolSize Integer
    Current size of the warm pool.
    arn string
    ARN for this Auto Scaling Group
    availabilityZones string[]
    A list of Availability Zones where instances in the Auto Scaling group can be created. Used for launching into the default VPC subnet in each Availability Zone when not using the vpc_zone_identifier attribute, or for attaching a network interface when an existing network interface ID is specified in a launch template. 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
    Allows deleting the Auto Scaling Group without waiting for all instances in the warm pool to terminate.
    healthCheckGracePeriod number
    Time (in seconds) after instance comes into service before checking health.
    healthCheckType string
    "EC2" or "ELB". Controls how health checking is done.
    ignoreFailedScalingActivities boolean
    Whether to ignore failed Auto Scaling scaling activities while waiting for capacity. The default is false -- failed scaling activities cause errors to be returned.
    initialLifecycleHooks GroupInitialLifecycleHook[]
    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.
    instanceMaintenancePolicy GroupInstanceMaintenancePolicy
    If this block is configured, add a instance maintenance policy to the specified Auto Scaling group. Defined below.
    instanceRefresh GroupInstanceRefresh
    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 GroupLaunchTemplate
    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. To remove all load balancer attachments an empty list should be specified.
    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 Pulumi 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 GroupMixedInstancesPolicy
    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 Pulumi. 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.
    predictedCapacity number
    Predicted capacity of the group.
    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 GroupTag[]
    Configuration block(s) containing resource tags. See Tag below for more details.
    targetGroupArns string[]
    Set of aws.alb.TargetGroup ARNs, for use with Application or Network Load Balancing. To remove all target group attachments an empty list should be specified.
    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.
    trafficSources GroupTrafficSource[]
    Attaches one or more traffic sources to the specified Auto Scaling group.
    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 Pulumi 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 GroupWarmPool
    If this block is configured, add a Warm Pool to the specified Auto Scaling group. Defined below
    warmPoolSize number
    Current size of the warm pool.
    arn str
    ARN for this Auto Scaling Group
    availability_zones Sequence[str]
    A list of Availability Zones where instances in the Auto Scaling group can be created. Used for launching into the default VPC subnet in each Availability Zone when not using the vpc_zone_identifier attribute, or for attaching a network interface when an existing network interface ID is specified in a launch template. 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
    Allows deleting the Auto Scaling Group without waiting for all instances in the warm pool to terminate.
    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.
    ignore_failed_scaling_activities bool
    Whether to ignore failed Auto Scaling scaling activities while waiting for capacity. The default is false -- failed scaling activities cause errors to be returned.
    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_maintenance_policy GroupInstanceMaintenancePolicyArgs
    If this block is configured, add a instance maintenance policy to the specified Auto Scaling group. Defined below.
    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. To remove all load balancer attachments an empty list should be specified.
    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 Pulumi 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 Pulumi. 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.
    predicted_capacity int
    Predicted capacity of the group.
    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. See Tag below for more details.
    target_group_arns Sequence[str]
    Set of aws.alb.TargetGroup ARNs, for use with Application or Network Load Balancing. To remove all target group attachments an empty list should be specified.
    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.
    traffic_sources Sequence[GroupTrafficSourceArgs]
    Attaches one or more traffic sources to the specified Auto Scaling group.
    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 Pulumi 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
    warm_pool_size int
    Current size of the warm pool.
    arn String
    ARN for this Auto Scaling Group
    availabilityZones List<String>
    A list of Availability Zones where instances in the Auto Scaling group can be created. Used for launching into the default VPC subnet in each Availability Zone when not using the vpc_zone_identifier attribute, or for attaching a network interface when an existing network interface ID is specified in a launch template. 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
    Allows deleting the Auto Scaling Group without waiting for all instances in the warm pool to terminate.
    healthCheckGracePeriod Number
    Time (in seconds) after instance comes into service before checking health.
    healthCheckType String
    "EC2" or "ELB". Controls how health checking is done.
    ignoreFailedScalingActivities Boolean
    Whether to ignore failed Auto Scaling scaling activities while waiting for capacity. The default is false -- failed scaling activities cause errors to be returned.
    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.
    instanceMaintenancePolicy Property Map
    If this block is configured, add a instance maintenance policy to the specified Auto Scaling group. Defined below.
    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. To remove all load balancer attachments an empty list should be specified.
    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 Pulumi 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 Pulumi. 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.
    predictedCapacity Number
    Predicted capacity of the group.
    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. See Tag below for more details.
    targetGroupArns List<String>
    Set of aws.alb.TargetGroup ARNs, for use with Application or Network Load Balancing. To remove all target group attachments an empty list should be specified.
    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.
    trafficSources List<Property Map>
    Attaches one or more traffic sources to the specified Auto Scaling group.
    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 Pulumi 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
    warmPoolSize Number
    Current size of the warm pool.

    Supporting Types

    GroupInitialLifecycleHook, GroupInitialLifecycleHookArgs

    LifecycleTransition string
    Name string
    Name of the Auto Scaling Group. By default generated by Pulumi. 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 Pulumi. 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 Pulumi. 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 Pulumi. 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 Pulumi. 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 Pulumi. Conflicts with name_prefix.
    defaultResult String
    heartbeatTimeout Number
    notificationMetadata String
    notificationTargetArn String
    roleArn String

    GroupInstanceMaintenancePolicy, GroupInstanceMaintenancePolicyArgs

    MaxHealthyPercentage int
    Specifies the upper limit on the number of instances that are in the InService or Pending state with a healthy status during an instance replacement activity.
    MinHealthyPercentage int
    Specifies the lower limit on the number of instances that must be in the InService state with a healthy status during an instance replacement activity.
    MaxHealthyPercentage int
    Specifies the upper limit on the number of instances that are in the InService or Pending state with a healthy status during an instance replacement activity.
    MinHealthyPercentage int
    Specifies the lower limit on the number of instances that must be in the InService state with a healthy status during an instance replacement activity.
    maxHealthyPercentage Integer
    Specifies the upper limit on the number of instances that are in the InService or Pending state with a healthy status during an instance replacement activity.
    minHealthyPercentage Integer
    Specifies the lower limit on the number of instances that must be in the InService state with a healthy status during an instance replacement activity.
    maxHealthyPercentage number
    Specifies the upper limit on the number of instances that are in the InService or Pending state with a healthy status during an instance replacement activity.
    minHealthyPercentage number
    Specifies the lower limit on the number of instances that must be in the InService state with a healthy status during an instance replacement activity.
    max_healthy_percentage int
    Specifies the upper limit on the number of instances that are in the InService or Pending state with a healthy status during an instance replacement activity.
    min_healthy_percentage int
    Specifies the lower limit on the number of instances that must be in the InService state with a healthy status during an instance replacement activity.
    maxHealthyPercentage Number
    Specifies the upper limit on the number of instances that are in the InService or Pending state with a healthy status during an instance replacement activity.
    minHealthyPercentage Number
    Specifies the lower limit on the number of instances that must be in the InService state with a healthy status during an instance replacement activity.

    GroupInstanceRefresh, GroupInstanceRefreshArgs

    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.

    NOTE: A refresh is started when any of the following Auto Scaling Group properties change: launch_configuration, launch_template, mixed_instances_policy. Additional properties can be specified in the triggers property of instance_refresh.

    NOTE: A refresh will not start when version = "$Latest" is configured in the launch_template block. To trigger the instance refresh when a launch template is changed, configure version to use the latest_version attribute of the aws.ec2.LaunchTemplate resource.

    NOTE: Auto Scaling Groups support up to one active instance refresh at a time. When this resource is updated, any existing refresh is cancelled.

    NOTE: Depending on health check settings and group size, an instance refresh may take a long time or fail. This resource does not wait for the instance refresh to complete.

    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.

    NOTE: A refresh is started when any of the following Auto Scaling Group properties change: launch_configuration, launch_template, mixed_instances_policy. Additional properties can be specified in the triggers property of instance_refresh.

    NOTE: A refresh will not start when version = "$Latest" is configured in the launch_template block. To trigger the instance refresh when a launch template is changed, configure version to use the latest_version attribute of the aws.ec2.LaunchTemplate resource.

    NOTE: Auto Scaling Groups support up to one active instance refresh at a time. When this resource is updated, any existing refresh is cancelled.

    NOTE: Depending on health check settings and group size, an instance refresh may take a long time or fail. This resource does not wait for the instance refresh to complete.

    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.

    NOTE: A refresh is started when any of the following Auto Scaling Group properties change: launch_configuration, launch_template, mixed_instances_policy. Additional properties can be specified in the triggers property of instance_refresh.

    NOTE: A refresh will not start when version = "$Latest" is configured in the launch_template block. To trigger the instance refresh when a launch template is changed, configure version to use the latest_version attribute of the aws.ec2.LaunchTemplate resource.

    NOTE: Auto Scaling Groups support up to one active instance refresh at a time. When this resource is updated, any existing refresh is cancelled.

    NOTE: Depending on health check settings and group size, an instance refresh may take a long time or fail. This resource does not wait for the instance refresh to complete.

    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.

    NOTE: A refresh is started when any of the following Auto Scaling Group properties change: launch_configuration, launch_template, mixed_instances_policy. Additional properties can be specified in the triggers property of instance_refresh.

    NOTE: A refresh will not start when version = "$Latest" is configured in the launch_template block. To trigger the instance refresh when a launch template is changed, configure version to use the latest_version attribute of the aws.ec2.LaunchTemplate resource.

    NOTE: Auto Scaling Groups support up to one active instance refresh at a time. When this resource is updated, any existing refresh is cancelled.

    NOTE: Depending on health check settings and group size, an instance refresh may take a long time or fail. This resource does not wait for the instance refresh to complete.

    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.

    NOTE: A refresh is started when any of the following Auto Scaling Group properties change: launch_configuration, launch_template, mixed_instances_policy. Additional properties can be specified in the triggers property of instance_refresh.

    NOTE: A refresh will not start when version = "$Latest" is configured in the launch_template block. To trigger the instance refresh when a launch template is changed, configure version to use the latest_version attribute of the aws.ec2.LaunchTemplate resource.

    NOTE: Auto Scaling Groups support up to one active instance refresh at a time. When this resource is updated, any existing refresh is cancelled.

    NOTE: Depending on health check settings and group size, an instance refresh may take a long time or fail. This resource does not wait for the instance refresh to complete.

    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.

    NOTE: A refresh is started when any of the following Auto Scaling Group properties change: launch_configuration, launch_template, mixed_instances_policy. Additional properties can be specified in the triggers property of instance_refresh.

    NOTE: A refresh will not start when version = "$Latest" is configured in the launch_template block. To trigger the instance refresh when a launch template is changed, configure version to use the latest_version attribute of the aws.ec2.LaunchTemplate resource.

    NOTE: Auto Scaling Groups support up to one active instance refresh at a time. When this resource is updated, any existing refresh is cancelled.

    NOTE: Depending on health check settings and group size, an instance refresh may take a long time or fail. This resource does not wait for the instance refresh to complete.

    GroupInstanceRefreshPreferences, GroupInstanceRefreshPreferencesArgs

    AutoRollback bool
    Automatically rollback if instance refresh fails. Defaults to false. This option may only be set to true when specifying a launch_template or mixed_instances_policy.
    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.
    MaxHealthyPercentage int
    Specifies the upper limit on the number of instances that are in the InService or Pending state with a healthy status during an instance replacement activity.
    MinHealthyPercentage int
    Specifies the lower limit on the number of instances that must be in the InService state with a healthy status during an instance replacement activity.
    ScaleInProtectedInstances string
    Behavior when encountering instances protected from scale in are found. Available behaviors are Refresh, Ignore, and Wait. Default is Ignore.
    SkipMatching bool
    Replace instances that already have your desired configuration. Defaults to false.
    StandbyInstances string
    Behavior when encountering instances in the Standby state in are found. Available behaviors are Terminate, Ignore, and Wait. Default is Ignore.
    AutoRollback bool
    Automatically rollback if instance refresh fails. Defaults to false. This option may only be set to true when specifying a launch_template or mixed_instances_policy.
    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.
    MaxHealthyPercentage int
    Specifies the upper limit on the number of instances that are in the InService or Pending state with a healthy status during an instance replacement activity.
    MinHealthyPercentage int
    Specifies the lower limit on the number of instances that must be in the InService state with a healthy status during an instance replacement activity.
    ScaleInProtectedInstances string
    Behavior when encountering instances protected from scale in are found. Available behaviors are Refresh, Ignore, and Wait. Default is Ignore.
    SkipMatching bool
    Replace instances that already have your desired configuration. Defaults to false.
    StandbyInstances string
    Behavior when encountering instances in the Standby state in are found. Available behaviors are Terminate, Ignore, and Wait. Default is Ignore.
    autoRollback Boolean
    Automatically rollback if instance refresh fails. Defaults to false. This option may only be set to true when specifying a launch_template or mixed_instances_policy.
    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.
    maxHealthyPercentage Integer
    Specifies the upper limit on the number of instances that are in the InService or Pending state with a healthy status during an instance replacement activity.
    minHealthyPercentage Integer
    Specifies the lower limit on the number of instances that must be in the InService state with a healthy status during an instance replacement activity.
    scaleInProtectedInstances String
    Behavior when encountering instances protected from scale in are found. Available behaviors are Refresh, Ignore, and Wait. Default is Ignore.
    skipMatching Boolean
    Replace instances that already have your desired configuration. Defaults to false.
    standbyInstances String
    Behavior when encountering instances in the Standby state in are found. Available behaviors are Terminate, Ignore, and Wait. Default is Ignore.
    autoRollback boolean
    Automatically rollback if instance refresh fails. Defaults to false. This option may only be set to true when specifying a launch_template or mixed_instances_policy.
    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.
    maxHealthyPercentage number
    Specifies the upper limit on the number of instances that are in the InService or Pending state with a healthy status during an instance replacement activity.
    minHealthyPercentage number
    Specifies the lower limit on the number of instances that must be in the InService state with a healthy status during an instance replacement activity.
    scaleInProtectedInstances string
    Behavior when encountering instances protected from scale in are found. Available behaviors are Refresh, Ignore, and Wait. Default is Ignore.
    skipMatching boolean
    Replace instances that already have your desired configuration. Defaults to false.
    standbyInstances string
    Behavior when encountering instances in the Standby state in are found. Available behaviors are Terminate, Ignore, and Wait. Default is Ignore.
    auto_rollback bool
    Automatically rollback if instance refresh fails. Defaults to false. This option may only be set to true when specifying a launch_template or mixed_instances_policy.
    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.
    max_healthy_percentage int
    Specifies the upper limit on the number of instances that are in the InService or Pending state with a healthy status during an instance replacement activity.
    min_healthy_percentage int
    Specifies the lower limit on the number of instances that must be in the InService state with a healthy status during an instance replacement activity.
    scale_in_protected_instances str
    Behavior when encountering instances protected from scale in are found. Available behaviors are Refresh, Ignore, and Wait. Default is Ignore.
    skip_matching bool
    Replace instances that already have your desired configuration. Defaults to false.
    standby_instances str
    Behavior when encountering instances in the Standby state in are found. Available behaviors are Terminate, Ignore, and Wait. Default is Ignore.
    autoRollback Boolean
    Automatically rollback if instance refresh fails. Defaults to false. This option may only be set to true when specifying a launch_template or mixed_instances_policy.
    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.
    maxHealthyPercentage Number
    Specifies the upper limit on the number of instances that are in the InService or Pending state with a healthy status during an instance replacement activity.
    minHealthyPercentage Number
    Specifies the lower limit on the number of instances that must be in the InService state with a healthy status during an instance replacement activity.
    scaleInProtectedInstances String
    Behavior when encountering instances protected from scale in are found. Available behaviors are Refresh, Ignore, and Wait. Default is Ignore.
    skipMatching Boolean
    Replace instances that already have your desired configuration. Defaults to false.
    standbyInstances String
    Behavior when encountering instances in the Standby state in are found. Available behaviors are Terminate, Ignore, and Wait. Default is Ignore.

    GroupLaunchTemplate, GroupLaunchTemplateArgs

    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, GroupMixedInstancesPolicyArgs

    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, GroupMixedInstancesPolicyInstancesDistributionArgs

    OnDemandAllocationStrategy string
    Strategy to use when launching on-demand instances. Valid values: prioritized, lowest-price. 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, lowest-price. 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, lowest-price. 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, lowest-price. 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, lowest-price. 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, lowest-price. 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, GroupMixedInstancesPolicyLaunchTemplateArgs

    LaunchTemplateSpecification GroupMixedInstancesPolicyLaunchTemplateLaunchTemplateSpecification
    Override the instance launch template specification in the Launch Template.
    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
    Override the instance launch template specification in the Launch Template.
    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
    Override the instance launch template specification in the Launch Template.
    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
    Override the instance launch template specification in the Launch Template.
    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
    Override the instance launch template specification in the Launch Template.
    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
    Override the instance launch template specification in the Launch Template.
    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, GroupMixedInstancesPolicyLaunchTemplateLaunchTemplateSpecificationArgs

    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, GroupMixedInstancesPolicyLaunchTemplateOverrideArgs

    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
    Override the instance launch template specification in the Launch Template.
    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
    Override the instance launch template specification in the Launch Template.
    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
    Override the instance launch template specification in the Launch Template.
    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
    Override the instance launch template specification in the Launch Template.
    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
    Override the instance launch template specification in the Launch Template.
    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
    Override the instance launch template specification in the Launch Template.
    weightedCapacity String
    Number of capacity units, which gives the instance type a proportional weight to other instance types.

    GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirements, GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsArgs

    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.
    AllowedInstanceTypes List<string>

    List of instance types to apply your specified attributes against. All other instance types are ignored, even if they match your specified attributes. You can use strings with one or more wild cards, represented by an asterisk (*), to allow an instance type, size, or generation. The following are examples: m5.8xlarge, c5*.*, m5a.*, r*, *3*. For example, if you specify c5*, you are allowing the entire C5 instance family, which includes all C5a and C5n instance types. If you specify m5a.*, you are allowing 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 all instance types.

    NOTE: If you specify allowed_instance_types, you can't specify excluded_instance_types.

    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.

    NOTE: Don't confuse the CPU hardware manufacturer with the CPU hardware architecture. Instances will be launched with a compatible CPU architecture based on the Amazon Machine Image (AMI) that you specify in your launch template.

    ExcludedInstanceTypes List<string>

    List of instance types to exclude. You can use strings with one or more wild cards, represented by an asterisk (*), to exclude an instance type, size, or generation. The following are examples: m5.8xlarge, 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.

    NOTE: If you specify excluded_instance_types, you can't specify allowed_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.
    NetworkBandwidthGbps GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsNetworkBandwidthGbps
    Block describing the minimum and maximum amount of network bandwidth, in gigabits per second (Gbps). Default is no minimum or 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.

    If you set DesiredCapacityType to vcpu or memory-mib, the price protection threshold is applied based on the per vCPU or per memory price instead of the per instance price.

    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.

    If you set DesiredCapacityType to vcpu or memory-mib, the price protection threshold is applied based on the per vCPU or per memory price instead of the per instance price.

    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.
    AllowedInstanceTypes []string

    List of instance types to apply your specified attributes against. All other instance types are ignored, even if they match your specified attributes. You can use strings with one or more wild cards, represented by an asterisk (*), to allow an instance type, size, or generation. The following are examples: m5.8xlarge, c5*.*, m5a.*, r*, *3*. For example, if you specify c5*, you are allowing the entire C5 instance family, which includes all C5a and C5n instance types. If you specify m5a.*, you are allowing 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 all instance types.

    NOTE: If you specify allowed_instance_types, you can't specify excluded_instance_types.

    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.

    NOTE: Don't confuse the CPU hardware manufacturer with the CPU hardware architecture. Instances will be launched with a compatible CPU architecture based on the Amazon Machine Image (AMI) that you specify in your launch template.

    ExcludedInstanceTypes []string

    List of instance types to exclude. You can use strings with one or more wild cards, represented by an asterisk (*), to exclude an instance type, size, or generation. The following are examples: m5.8xlarge, 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.

    NOTE: If you specify excluded_instance_types, you can't specify allowed_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.
    NetworkBandwidthGbps GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsNetworkBandwidthGbps
    Block describing the minimum and maximum amount of network bandwidth, in gigabits per second (Gbps). Default is no minimum or 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.

    If you set DesiredCapacityType to vcpu or memory-mib, the price protection threshold is applied based on the per vCPU or per memory price instead of the per instance price.

    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.

    If you set DesiredCapacityType to vcpu or memory-mib, the price protection threshold is applied based on the per vCPU or per memory price instead of the per instance price.

    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.
    allowedInstanceTypes List<String>

    List of instance types to apply your specified attributes against. All other instance types are ignored, even if they match your specified attributes. You can use strings with one or more wild cards, represented by an asterisk (*), to allow an instance type, size, or generation. The following are examples: m5.8xlarge, c5*.*, m5a.*, r*, *3*. For example, if you specify c5*, you are allowing the entire C5 instance family, which includes all C5a and C5n instance types. If you specify m5a.*, you are allowing 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 all instance types.

    NOTE: If you specify allowed_instance_types, you can't specify excluded_instance_types.

    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.

    NOTE: Don't confuse the CPU hardware manufacturer with the CPU hardware architecture. Instances will be launched with a compatible CPU architecture based on the Amazon Machine Image (AMI) that you specify in your launch template.

    excludedInstanceTypes List<String>

    List of instance types to exclude. You can use strings with one or more wild cards, represented by an asterisk (*), to exclude an instance type, size, or generation. The following are examples: m5.8xlarge, 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.

    NOTE: If you specify excluded_instance_types, you can't specify allowed_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.
    networkBandwidthGbps GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsNetworkBandwidthGbps
    Block describing the minimum and maximum amount of network bandwidth, in gigabits per second (Gbps). Default is no minimum or 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.

    If you set DesiredCapacityType to vcpu or memory-mib, the price protection threshold is applied based on the per vCPU or per memory price instead of the per instance price.

    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.

    If you set DesiredCapacityType to vcpu or memory-mib, the price protection threshold is applied based on the per vCPU or per memory price instead of the per instance price.

    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.
    allowedInstanceTypes string[]

    List of instance types to apply your specified attributes against. All other instance types are ignored, even if they match your specified attributes. You can use strings with one or more wild cards, represented by an asterisk (*), to allow an instance type, size, or generation. The following are examples: m5.8xlarge, c5*.*, m5a.*, r*, *3*. For example, if you specify c5*, you are allowing the entire C5 instance family, which includes all C5a and C5n instance types. If you specify m5a.*, you are allowing 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 all instance types.

    NOTE: If you specify allowed_instance_types, you can't specify excluded_instance_types.

    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.

    NOTE: Don't confuse the CPU hardware manufacturer with the CPU hardware architecture. Instances will be launched with a compatible CPU architecture based on the Amazon Machine Image (AMI) that you specify in your launch template.

    excludedInstanceTypes string[]

    List of instance types to exclude. You can use strings with one or more wild cards, represented by an asterisk (*), to exclude an instance type, size, or generation. The following are examples: m5.8xlarge, 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.

    NOTE: If you specify excluded_instance_types, you can't specify allowed_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.
    networkBandwidthGbps GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsNetworkBandwidthGbps
    Block describing the minimum and maximum amount of network bandwidth, in gigabits per second (Gbps). Default is no minimum or 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.

    If you set DesiredCapacityType to vcpu or memory-mib, the price protection threshold is applied based on the per vCPU or per memory price instead of the per instance price.

    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.

    If you set DesiredCapacityType to vcpu or memory-mib, the price protection threshold is applied based on the per vCPU or per memory price instead of the per instance price.

    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.
    allowed_instance_types Sequence[str]

    List of instance types to apply your specified attributes against. All other instance types are ignored, even if they match your specified attributes. You can use strings with one or more wild cards, represented by an asterisk (*), to allow an instance type, size, or generation. The following are examples: m5.8xlarge, c5*.*, m5a.*, r*, *3*. For example, if you specify c5*, you are allowing the entire C5 instance family, which includes all C5a and C5n instance types. If you specify m5a.*, you are allowing 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 all instance types.

    NOTE: If you specify allowed_instance_types, you can't specify excluded_instance_types.

    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.

    NOTE: Don't confuse the CPU hardware manufacturer with the CPU hardware architecture. Instances will be launched with a compatible CPU architecture based on the Amazon Machine Image (AMI) that you specify in your launch template.

    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 (*), to exclude an instance type, size, or generation. The following are examples: m5.8xlarge, 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.

    NOTE: If you specify excluded_instance_types, you can't specify allowed_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_bandwidth_gbps GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsNetworkBandwidthGbps
    Block describing the minimum and maximum amount of network bandwidth, in gigabits per second (Gbps). Default is no minimum or 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.

    If you set DesiredCapacityType to vcpu or memory-mib, the price protection threshold is applied based on the per vCPU or per memory price instead of the per instance price.

    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.

    If you set DesiredCapacityType to vcpu or memory-mib, the price protection threshold is applied based on the per vCPU or per memory price instead of the per instance price.

    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.
    allowedInstanceTypes List<String>

    List of instance types to apply your specified attributes against. All other instance types are ignored, even if they match your specified attributes. You can use strings with one or more wild cards, represented by an asterisk (*), to allow an instance type, size, or generation. The following are examples: m5.8xlarge, c5*.*, m5a.*, r*, *3*. For example, if you specify c5*, you are allowing the entire C5 instance family, which includes all C5a and C5n instance types. If you specify m5a.*, you are allowing 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 all instance types.

    NOTE: If you specify allowed_instance_types, you can't specify excluded_instance_types.

    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.

    NOTE: Don't confuse the CPU hardware manufacturer with the CPU hardware architecture. Instances will be launched with a compatible CPU architecture based on the Amazon Machine Image (AMI) that you specify in your launch template.

    excludedInstanceTypes List<String>

    List of instance types to exclude. You can use strings with one or more wild cards, represented by an asterisk (*), to exclude an instance type, size, or generation. The following are examples: m5.8xlarge, 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.

    NOTE: If you specify excluded_instance_types, you can't specify allowed_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.
    networkBandwidthGbps Property Map
    Block describing the minimum and maximum amount of network bandwidth, in gigabits per second (Gbps). Default is no minimum or 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.

    If you set DesiredCapacityType to vcpu or memory-mib, the price protection threshold is applied based on the per vCPU or per memory price instead of the per instance price.

    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.

    If you set DesiredCapacityType to vcpu or memory-mib, the price protection threshold is applied based on the per vCPU or per memory price instead of the per instance price.

    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, GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsAcceleratorCountArgs

    Max int
    Maximum.
    Min int
    Minimum.
    Max int
    Maximum.
    Min int
    Minimum.
    max Integer
    Maximum.
    min Integer
    Minimum.
    max number
    Maximum.
    min number
    Minimum.
    max int
    Maximum.
    min int
    Minimum.
    max Number
    Maximum.
    min Number
    Minimum.

    GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsAcceleratorTotalMemoryMib, GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsAcceleratorTotalMemoryMibArgs

    Max int
    Maximum.
    Min int
    Minimum.
    Max int
    Maximum.
    Min int
    Minimum.
    max Integer
    Maximum.
    min Integer
    Minimum.
    max number
    Maximum.
    min number
    Minimum.
    max int
    Maximum.
    min int
    Minimum.
    max Number
    Maximum.
    min Number
    Minimum.

    GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsBaselineEbsBandwidthMbps, GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsBaselineEbsBandwidthMbpsArgs

    Max int
    Maximum.
    Min int
    Minimum.
    Max int
    Maximum.
    Min int
    Minimum.
    max Integer
    Maximum.
    min Integer
    Minimum.
    max number
    Maximum.
    min number
    Minimum.
    max int
    Maximum.
    min int
    Minimum.
    max Number
    Maximum.
    min Number
    Minimum.

    GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsMemoryGibPerVcpu, GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsMemoryGibPerVcpuArgs

    Max double
    Maximum.
    Min double
    Minimum.
    Max float64
    Maximum.
    Min float64
    Minimum.
    max Double
    Maximum.
    min Double
    Minimum.
    max number
    Maximum.
    min number
    Minimum.
    max float
    Maximum.
    min float
    Minimum.
    max Number
    Maximum.
    min Number
    Minimum.

    GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsMemoryMib, GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsMemoryMibArgs

    Max int
    Maximum.
    Min int
    Minimum.
    Max int
    Maximum.
    Min int
    Minimum.
    max Integer
    Maximum.
    min Integer
    Minimum.
    max number
    Maximum.
    min number
    Minimum.
    max int
    Maximum.
    min int
    Minimum.
    max Number
    Maximum.
    min Number
    Minimum.

    GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsNetworkBandwidthGbps, GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsNetworkBandwidthGbpsArgs

    Max double
    Maximum.
    Min double
    Minimum.
    Max float64
    Maximum.
    Min float64
    Minimum.
    max Double
    Maximum.
    min Double
    Minimum.
    max number
    Maximum.
    min number
    Minimum.
    max float
    Maximum.
    min float
    Minimum.
    max Number
    Maximum.
    min Number
    Minimum.

    GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsNetworkInterfaceCount, GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsNetworkInterfaceCountArgs

    Max int
    Maximum.
    Min int
    Minimum.
    Max int
    Maximum.
    Min int
    Minimum.
    max Integer
    Maximum.
    min Integer
    Minimum.
    max number
    Maximum.
    min number
    Minimum.
    max int
    Maximum.
    min int
    Minimum.
    max Number
    Maximum.
    min Number
    Minimum.

    GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsTotalLocalStorageGb, GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsTotalLocalStorageGbArgs

    Max double
    Maximum.
    Min double
    Minimum.
    Max float64
    Maximum.
    Min float64
    Minimum.
    max Double
    Maximum.
    min Double
    Minimum.
    max number
    Maximum.
    min number
    Minimum.
    max float
    Maximum.
    min float
    Minimum.
    max Number
    Maximum.
    min Number
    Minimum.

    GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsVcpuCount, GroupMixedInstancesPolicyLaunchTemplateOverrideInstanceRequirementsVcpuCountArgs

    Max int
    Maximum.
    Min int
    Minimum.
    Max int
    Maximum.
    Min int
    Minimum.
    max Integer
    Maximum.
    min Integer
    Minimum.
    max number
    Maximum.
    min number
    Minimum.
    max int
    Maximum.
    min int
    Minimum.
    max Number
    Maximum.
    min Number
    Minimum.

    GroupMixedInstancesPolicyLaunchTemplateOverrideLaunchTemplateSpecification, GroupMixedInstancesPolicyLaunchTemplateOverrideLaunchTemplateSpecificationArgs

    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, GroupTagArgs

    Key string
    Key
    PropagateAtLaunch bool

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

    To declare multiple tags, additional tag blocks can be specified.

    NOTE: Other AWS APIs may automatically add special tags to their associated Auto Scaling Group for management purposes, such as ECS Capacity Providers adding the AmazonECSManaged tag. These generally should be included in the configuration so the provider does not attempt to remove them and so if the min_size was greater than zero on creation, that these tag(s) are applied to any initial EC2 Instances in the Auto Scaling Group. If these tag(s) were missing in the Auto Scaling Group configuration on creation, affected EC2 Instances missing the tags may require manual intervention of adding the tags to ensure they work properly with the other AWS service.

    Value string
    Value
    Key string
    Key
    PropagateAtLaunch bool

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

    To declare multiple tags, additional tag blocks can be specified.

    NOTE: Other AWS APIs may automatically add special tags to their associated Auto Scaling Group for management purposes, such as ECS Capacity Providers adding the AmazonECSManaged tag. These generally should be included in the configuration so the provider does not attempt to remove them and so if the min_size was greater than zero on creation, that these tag(s) are applied to any initial EC2 Instances in the Auto Scaling Group. If these tag(s) were missing in the Auto Scaling Group configuration on creation, affected EC2 Instances missing the tags may require manual intervention of adding the tags to ensure they work properly with the other AWS service.

    Value string
    Value
    key String
    Key
    propagateAtLaunch Boolean

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

    To declare multiple tags, additional tag blocks can be specified.

    NOTE: Other AWS APIs may automatically add special tags to their associated Auto Scaling Group for management purposes, such as ECS Capacity Providers adding the AmazonECSManaged tag. These generally should be included in the configuration so the provider does not attempt to remove them and so if the min_size was greater than zero on creation, that these tag(s) are applied to any initial EC2 Instances in the Auto Scaling Group. If these tag(s) were missing in the Auto Scaling Group configuration on creation, affected EC2 Instances missing the tags may require manual intervention of adding the tags to ensure they work properly with the other AWS service.

    value String
    Value
    key string
    Key
    propagateAtLaunch boolean

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

    To declare multiple tags, additional tag blocks can be specified.

    NOTE: Other AWS APIs may automatically add special tags to their associated Auto Scaling Group for management purposes, such as ECS Capacity Providers adding the AmazonECSManaged tag. These generally should be included in the configuration so the provider does not attempt to remove them and so if the min_size was greater than zero on creation, that these tag(s) are applied to any initial EC2 Instances in the Auto Scaling Group. If these tag(s) were missing in the Auto Scaling Group configuration on creation, affected EC2 Instances missing the tags may require manual intervention of adding the tags to ensure they work properly with the other AWS service.

    value string
    Value
    key str
    Key
    propagate_at_launch bool

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

    To declare multiple tags, additional tag blocks can be specified.

    NOTE: Other AWS APIs may automatically add special tags to their associated Auto Scaling Group for management purposes, such as ECS Capacity Providers adding the AmazonECSManaged tag. These generally should be included in the configuration so the provider does not attempt to remove them and so if the min_size was greater than zero on creation, that these tag(s) are applied to any initial EC2 Instances in the Auto Scaling Group. If these tag(s) were missing in the Auto Scaling Group configuration on creation, affected EC2 Instances missing the tags may require manual intervention of adding the tags to ensure they work properly with the other AWS service.

    value str
    Value
    key String
    Key
    propagateAtLaunch Boolean

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

    To declare multiple tags, additional tag blocks can be specified.

    NOTE: Other AWS APIs may automatically add special tags to their associated Auto Scaling Group for management purposes, such as ECS Capacity Providers adding the AmazonECSManaged tag. These generally should be included in the configuration so the provider does not attempt to remove them and so if the min_size was greater than zero on creation, that these tag(s) are applied to any initial EC2 Instances in the Auto Scaling Group. If these tag(s) were missing in the Auto Scaling Group configuration on creation, affected EC2 Instances missing the tags may require manual intervention of adding the tags to ensure they work properly with the other AWS service.

    value String
    Value

    GroupTrafficSource, GroupTrafficSourceArgs

    Identifier string
    Identifies the traffic source. For Application Load Balancers, Gateway Load Balancers, Network Load Balancers, and VPC Lattice, this will be the Amazon Resource Name (ARN) for a target group in this account and Region. For Classic Load Balancers, this will be the name of the Classic Load Balancer in this account and Region.
    Type string
    Provides additional context for the value of Identifier. The following lists the valid values: elb if identifier is the name of a Classic Load Balancer. elbv2 if identifier is the ARN of an Application Load Balancer, Gateway Load Balancer, or Network Load Balancer target group. vpc-lattice if identifier is the ARN of a VPC Lattice target group.
    Identifier string
    Identifies the traffic source. For Application Load Balancers, Gateway Load Balancers, Network Load Balancers, and VPC Lattice, this will be the Amazon Resource Name (ARN) for a target group in this account and Region. For Classic Load Balancers, this will be the name of the Classic Load Balancer in this account and Region.
    Type string
    Provides additional context for the value of Identifier. The following lists the valid values: elb if identifier is the name of a Classic Load Balancer. elbv2 if identifier is the ARN of an Application Load Balancer, Gateway Load Balancer, or Network Load Balancer target group. vpc-lattice if identifier is the ARN of a VPC Lattice target group.
    identifier String
    Identifies the traffic source. For Application Load Balancers, Gateway Load Balancers, Network Load Balancers, and VPC Lattice, this will be the Amazon Resource Name (ARN) for a target group in this account and Region. For Classic Load Balancers, this will be the name of the Classic Load Balancer in this account and Region.
    type String
    Provides additional context for the value of Identifier. The following lists the valid values: elb if identifier is the name of a Classic Load Balancer. elbv2 if identifier is the ARN of an Application Load Balancer, Gateway Load Balancer, or Network Load Balancer target group. vpc-lattice if identifier is the ARN of a VPC Lattice target group.
    identifier string
    Identifies the traffic source. For Application Load Balancers, Gateway Load Balancers, Network Load Balancers, and VPC Lattice, this will be the Amazon Resource Name (ARN) for a target group in this account and Region. For Classic Load Balancers, this will be the name of the Classic Load Balancer in this account and Region.
    type string
    Provides additional context for the value of Identifier. The following lists the valid values: elb if identifier is the name of a Classic Load Balancer. elbv2 if identifier is the ARN of an Application Load Balancer, Gateway Load Balancer, or Network Load Balancer target group. vpc-lattice if identifier is the ARN of a VPC Lattice target group.
    identifier str
    Identifies the traffic source. For Application Load Balancers, Gateway Load Balancers, Network Load Balancers, and VPC Lattice, this will be the Amazon Resource Name (ARN) for a target group in this account and Region. For Classic Load Balancers, this will be the name of the Classic Load Balancer in this account and Region.
    type str
    Provides additional context for the value of Identifier. The following lists the valid values: elb if identifier is the name of a Classic Load Balancer. elbv2 if identifier is the ARN of an Application Load Balancer, Gateway Load Balancer, or Network Load Balancer target group. vpc-lattice if identifier is the ARN of a VPC Lattice target group.
    identifier String
    Identifies the traffic source. For Application Load Balancers, Gateway Load Balancers, Network Load Balancers, and VPC Lattice, this will be the Amazon Resource Name (ARN) for a target group in this account and Region. For Classic Load Balancers, this will be the name of the Classic Load Balancer in this account and Region.
    type String
    Provides additional context for the value of Identifier. The following lists the valid values: elb if identifier is the name of a Classic Load Balancer. elbv2 if identifier is the ARN of an Application Load Balancer, Gateway Load Balancer, or Network Load Balancer target group. vpc-lattice if identifier is the ARN of a VPC Lattice target group.

    GroupWarmPool, GroupWarmPoolArgs

    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, GroupWarmPoolInstanceReusePolicyArgs

    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, MetricsGranularityArgs

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

    Import

    Using pulumi import, import Auto Scaling Groups using the name. For example:

    $ 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.
    aws logo

    Try AWS Native preview for resources not in the classic version.

    AWS Classic v6.28.1 published on Thursday, Mar 28, 2024 by Pulumi