1. Packages
  2. Spotinst
  3. API Docs
  4. aws
  5. Elastigroup
Spotinst v3.76.0 published on Wednesday, Apr 24, 2024 by Pulumi

spotinst.aws.Elastigroup

Explore with Pulumi AI

spotinst logo
Spotinst v3.76.0 published on Wednesday, Apr 24, 2024 by Pulumi

    Provides a Spotinst AWS group resource.

    Example Usage

    import * as pulumi from "@pulumi/pulumi";
    import * as spotinst from "@pulumi/spotinst";
    
    // Create an Elastigroup
    const default_elastigroup = new spotinst.aws.Elastigroup("default-elastigroup", {
        name: "default-elastigroup",
        description: "created by Pulumi",
        product: "Linux/UNIX",
        maxSize: 0,
        minSize: 0,
        desiredCapacity: 0,
        capacityUnit: "weight",
        region: "us-west-2",
        subnetIds: [
            "sb-123456",
            "sb-456789",
        ],
        imageId: "ami-a27d8fda",
        iamInstanceProfile: "iam-profile",
        keyName: "my-key.ssh",
        securityGroups: ["sg-123456"],
        userData: "echo hello world",
        enableMonitoring: false,
        ebsOptimized: false,
        placementTenancy: "default",
        metadataOptions: {
            httpTokens: "optional",
            httpPutResponseHopLimit: 10,
            instanceMetadataTags: "enabled",
        },
        cpuOptions: {
            threadsPerCore: 1,
        },
        instanceTypesOndemand: "m3.2xlarge",
        instanceTypesSpots: [
            "m3.xlarge",
            "m3.2xlarge",
        ],
        instanceTypesPreferredSpots: ["m3.xlarge"],
        onDemandTypes: ["c3.large"],
        instanceTypesWeights: [
            {
                instanceType: "m3.xlarge",
                weight: 10,
            },
            {
                instanceType: "m3.2xlarge",
                weight: 16,
            },
        ],
        resourceRequirements: [{
            excludedInstanceFamilies: [
                "a",
                "m",
            ],
            excludedInstanceTypes: ["m3.large"],
            excludedInstanceGenerations: [
                "1",
                "2",
            ],
            requiredGpuMinimum: 1,
            requiredGpuMaximum: 16,
            requiredMemoryMinimum: 1,
            requiredMemoryMaximum: 512,
            requiredVcpuMinimum: 1,
            requiredVcpuMaximum: 64,
        }],
        orientation: "balanced",
        fallbackToOndemand: false,
        cpuCredits: "unlimited",
        minimumInstanceLifetime: 12,
        waitForCapacity: 5,
        waitForCapacityTimeout: 300,
        scalingStrategies: [{
            terminateAtEndOfBillingHour: true,
            terminationPolicy: "default",
        }],
        scalingUpPolicies: [{
            policyName: "Default Scaling Up Policy",
            metricName: "DefaultQueuesDepth",
            statistic: "average",
            unit: "none",
            adjustment: "1",
            namespace: "custom",
            threshold: 100,
            period: 60,
            evaluationPeriods: 5,
            cooldown: 300,
        }],
        scalingDownPolicies: [{
            policyName: "Default Scaling Down Policy",
            metricName: "DefaultQueuesDepth",
            statistic: "average",
            unit: "none",
            adjustment: "1",
            namespace: "custom",
            threshold: 10,
            period: 60,
            evaluationPeriods: 10,
            cooldown: 300,
        }],
        tags: [
            {
                key: "Env",
                value: "production",
            },
            {
                key: "Name",
                value: "default-production",
            },
            {
                key: "Project",
                value: "app_v2",
            },
        ],
        resourceTagSpecifications: [{
            shouldTagEnis: true,
            shouldTagVolumes: true,
            shouldTagSnapshots: true,
            shouldTagAmis: true,
        }],
        logging: {
            "export": {
                s3s: [{
                    id: "di-123456",
                }],
            },
        },
    });
    
    import pulumi
    import pulumi_spotinst as spotinst
    
    # Create an Elastigroup
    default_elastigroup = spotinst.aws.Elastigroup("default-elastigroup",
        name="default-elastigroup",
        description="created by Pulumi",
        product="Linux/UNIX",
        max_size=0,
        min_size=0,
        desired_capacity=0,
        capacity_unit="weight",
        region="us-west-2",
        subnet_ids=[
            "sb-123456",
            "sb-456789",
        ],
        image_id="ami-a27d8fda",
        iam_instance_profile="iam-profile",
        key_name="my-key.ssh",
        security_groups=["sg-123456"],
        user_data="echo hello world",
        enable_monitoring=False,
        ebs_optimized=False,
        placement_tenancy="default",
        metadata_options=spotinst.aws.ElastigroupMetadataOptionsArgs(
            http_tokens="optional",
            http_put_response_hop_limit=10,
            instance_metadata_tags="enabled",
        ),
        cpu_options=spotinst.aws.ElastigroupCpuOptionsArgs(
            threads_per_core=1,
        ),
        instance_types_ondemand="m3.2xlarge",
        instance_types_spots=[
            "m3.xlarge",
            "m3.2xlarge",
        ],
        instance_types_preferred_spots=["m3.xlarge"],
        on_demand_types=["c3.large"],
        instance_types_weights=[
            spotinst.aws.ElastigroupInstanceTypesWeightArgs(
                instance_type="m3.xlarge",
                weight=10,
            ),
            spotinst.aws.ElastigroupInstanceTypesWeightArgs(
                instance_type="m3.2xlarge",
                weight=16,
            ),
        ],
        resource_requirements=[spotinst.aws.ElastigroupResourceRequirementArgs(
            excluded_instance_families=[
                "a",
                "m",
            ],
            excluded_instance_types=["m3.large"],
            excluded_instance_generations=[
                "1",
                "2",
            ],
            required_gpu_minimum=1,
            required_gpu_maximum=16,
            required_memory_minimum=1,
            required_memory_maximum=512,
            required_vcpu_minimum=1,
            required_vcpu_maximum=64,
        )],
        orientation="balanced",
        fallback_to_ondemand=False,
        cpu_credits="unlimited",
        minimum_instance_lifetime=12,
        wait_for_capacity=5,
        wait_for_capacity_timeout=300,
        scaling_strategies=[spotinst.aws.ElastigroupScalingStrategyArgs(
            terminate_at_end_of_billing_hour=True,
            termination_policy="default",
        )],
        scaling_up_policies=[spotinst.aws.ElastigroupScalingUpPolicyArgs(
            policy_name="Default Scaling Up Policy",
            metric_name="DefaultQueuesDepth",
            statistic="average",
            unit="none",
            adjustment="1",
            namespace="custom",
            threshold=100,
            period=60,
            evaluation_periods=5,
            cooldown=300,
        )],
        scaling_down_policies=[spotinst.aws.ElastigroupScalingDownPolicyArgs(
            policy_name="Default Scaling Down Policy",
            metric_name="DefaultQueuesDepth",
            statistic="average",
            unit="none",
            adjustment="1",
            namespace="custom",
            threshold=10,
            period=60,
            evaluation_periods=10,
            cooldown=300,
        )],
        tags=[
            spotinst.aws.ElastigroupTagArgs(
                key="Env",
                value="production",
            ),
            spotinst.aws.ElastigroupTagArgs(
                key="Name",
                value="default-production",
            ),
            spotinst.aws.ElastigroupTagArgs(
                key="Project",
                value="app_v2",
            ),
        ],
        resource_tag_specifications=[spotinst.aws.ElastigroupResourceTagSpecificationArgs(
            should_tag_enis=True,
            should_tag_volumes=True,
            should_tag_snapshots=True,
            should_tag_amis=True,
        )],
        logging=spotinst.aws.ElastigroupLoggingArgs(
            export=spotinst.aws.ElastigroupLoggingExportArgs(
                s3s=[spotinst.aws.ElastigroupLoggingExportS3Args(
                    id="di-123456",
                )],
            ),
        ))
    
    package main
    
    import (
    	"github.com/pulumi/pulumi-spotinst/sdk/v3/go/spotinst/aws"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		// Create an Elastigroup
    		_, err := aws.NewElastigroup(ctx, "default-elastigroup", &aws.ElastigroupArgs{
    			Name:            pulumi.String("default-elastigroup"),
    			Description:     pulumi.String("created by Pulumi"),
    			Product:         pulumi.String("Linux/UNIX"),
    			MaxSize:         pulumi.Int(0),
    			MinSize:         pulumi.Int(0),
    			DesiredCapacity: pulumi.Int(0),
    			CapacityUnit:    pulumi.String("weight"),
    			Region:          pulumi.String("us-west-2"),
    			SubnetIds: pulumi.StringArray{
    				pulumi.String("sb-123456"),
    				pulumi.String("sb-456789"),
    			},
    			ImageId:            pulumi.String("ami-a27d8fda"),
    			IamInstanceProfile: pulumi.String("iam-profile"),
    			KeyName:            pulumi.String("my-key.ssh"),
    			SecurityGroups: pulumi.StringArray{
    				pulumi.String("sg-123456"),
    			},
    			UserData:         pulumi.String("echo hello world"),
    			EnableMonitoring: pulumi.Bool(false),
    			EbsOptimized:     pulumi.Bool(false),
    			PlacementTenancy: pulumi.String("default"),
    			MetadataOptions: &aws.ElastigroupMetadataOptionsArgs{
    				HttpTokens:              pulumi.String("optional"),
    				HttpPutResponseHopLimit: pulumi.Int(10),
    				InstanceMetadataTags:    pulumi.String("enabled"),
    			},
    			CpuOptions: &aws.ElastigroupCpuOptionsArgs{
    				ThreadsPerCore: pulumi.Int(1),
    			},
    			InstanceTypesOndemand: pulumi.String("m3.2xlarge"),
    			InstanceTypesSpots: pulumi.StringArray{
    				pulumi.String("m3.xlarge"),
    				pulumi.String("m3.2xlarge"),
    			},
    			InstanceTypesPreferredSpots: pulumi.StringArray{
    				pulumi.String("m3.xlarge"),
    			},
    			OnDemandTypes: pulumi.StringArray{
    				pulumi.String("c3.large"),
    			},
    			InstanceTypesWeights: aws.ElastigroupInstanceTypesWeightArray{
    				&aws.ElastigroupInstanceTypesWeightArgs{
    					InstanceType: pulumi.String("m3.xlarge"),
    					Weight:       pulumi.Int(10),
    				},
    				&aws.ElastigroupInstanceTypesWeightArgs{
    					InstanceType: pulumi.String("m3.2xlarge"),
    					Weight:       pulumi.Int(16),
    				},
    			},
    			ResourceRequirements: aws.ElastigroupResourceRequirementArray{
    				&aws.ElastigroupResourceRequirementArgs{
    					ExcludedInstanceFamilies: pulumi.StringArray{
    						pulumi.String("a"),
    						pulumi.String("m"),
    					},
    					ExcludedInstanceTypes: pulumi.StringArray{
    						pulumi.String("m3.large"),
    					},
    					ExcludedInstanceGenerations: pulumi.StringArray{
    						pulumi.String("1"),
    						pulumi.String("2"),
    					},
    					RequiredGpuMinimum:    pulumi.Int(1),
    					RequiredGpuMaximum:    pulumi.Int(16),
    					RequiredMemoryMinimum: pulumi.Int(1),
    					RequiredMemoryMaximum: pulumi.Int(512),
    					RequiredVcpuMinimum:   pulumi.Int(1),
    					RequiredVcpuMaximum:   pulumi.Int(64),
    				},
    			},
    			Orientation:             pulumi.String("balanced"),
    			FallbackToOndemand:      pulumi.Bool(false),
    			CpuCredits:              pulumi.String("unlimited"),
    			MinimumInstanceLifetime: pulumi.Int(12),
    			WaitForCapacity:         pulumi.Int(5),
    			WaitForCapacityTimeout:  pulumi.Int(300),
    			ScalingStrategies: aws.ElastigroupScalingStrategyArray{
    				&aws.ElastigroupScalingStrategyArgs{
    					TerminateAtEndOfBillingHour: pulumi.Bool(true),
    					TerminationPolicy:           pulumi.String("default"),
    				},
    			},
    			ScalingUpPolicies: aws.ElastigroupScalingUpPolicyArray{
    				&aws.ElastigroupScalingUpPolicyArgs{
    					PolicyName:        pulumi.String("Default Scaling Up Policy"),
    					MetricName:        pulumi.String("DefaultQueuesDepth"),
    					Statistic:         pulumi.String("average"),
    					Unit:              pulumi.String("none"),
    					Adjustment:        pulumi.String("1"),
    					Namespace:         pulumi.String("custom"),
    					Threshold:         pulumi.Float64(100),
    					Period:            pulumi.Int(60),
    					EvaluationPeriods: pulumi.Int(5),
    					Cooldown:          pulumi.Int(300),
    				},
    			},
    			ScalingDownPolicies: aws.ElastigroupScalingDownPolicyArray{
    				&aws.ElastigroupScalingDownPolicyArgs{
    					PolicyName:        pulumi.String("Default Scaling Down Policy"),
    					MetricName:        pulumi.String("DefaultQueuesDepth"),
    					Statistic:         pulumi.String("average"),
    					Unit:              pulumi.String("none"),
    					Adjustment:        pulumi.String("1"),
    					Namespace:         pulumi.String("custom"),
    					Threshold:         pulumi.Float64(10),
    					Period:            pulumi.Int(60),
    					EvaluationPeriods: pulumi.Int(10),
    					Cooldown:          pulumi.Int(300),
    				},
    			},
    			Tags: aws.ElastigroupTagArray{
    				&aws.ElastigroupTagArgs{
    					Key:   pulumi.String("Env"),
    					Value: pulumi.String("production"),
    				},
    				&aws.ElastigroupTagArgs{
    					Key:   pulumi.String("Name"),
    					Value: pulumi.String("default-production"),
    				},
    				&aws.ElastigroupTagArgs{
    					Key:   pulumi.String("Project"),
    					Value: pulumi.String("app_v2"),
    				},
    			},
    			ResourceTagSpecifications: aws.ElastigroupResourceTagSpecificationArray{
    				&aws.ElastigroupResourceTagSpecificationArgs{
    					ShouldTagEnis:      pulumi.Bool(true),
    					ShouldTagVolumes:   pulumi.Bool(true),
    					ShouldTagSnapshots: pulumi.Bool(true),
    					ShouldTagAmis:      pulumi.Bool(true),
    				},
    			},
    			Logging: &aws.ElastigroupLoggingArgs{
    				Export: &aws.ElastigroupLoggingExportArgs{
    					S3s: aws.ElastigroupLoggingExportS3Array{
    						&aws.ElastigroupLoggingExportS3Args{
    							Id: pulumi.String("di-123456"),
    						},
    					},
    				},
    			},
    		})
    		if err != nil {
    			return err
    		}
    		return nil
    	})
    }
    
    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using SpotInst = Pulumi.SpotInst;
    
    return await Deployment.RunAsync(() => 
    {
        // Create an Elastigroup
        var default_elastigroup = new SpotInst.Aws.Elastigroup("default-elastigroup", new()
        {
            Name = "default-elastigroup",
            Description = "created by Pulumi",
            Product = "Linux/UNIX",
            MaxSize = 0,
            MinSize = 0,
            DesiredCapacity = 0,
            CapacityUnit = "weight",
            Region = "us-west-2",
            SubnetIds = new[]
            {
                "sb-123456",
                "sb-456789",
            },
            ImageId = "ami-a27d8fda",
            IamInstanceProfile = "iam-profile",
            KeyName = "my-key.ssh",
            SecurityGroups = new[]
            {
                "sg-123456",
            },
            UserData = "echo hello world",
            EnableMonitoring = false,
            EbsOptimized = false,
            PlacementTenancy = "default",
            MetadataOptions = new SpotInst.Aws.Inputs.ElastigroupMetadataOptionsArgs
            {
                HttpTokens = "optional",
                HttpPutResponseHopLimit = 10,
                InstanceMetadataTags = "enabled",
            },
            CpuOptions = new SpotInst.Aws.Inputs.ElastigroupCpuOptionsArgs
            {
                ThreadsPerCore = 1,
            },
            InstanceTypesOndemand = "m3.2xlarge",
            InstanceTypesSpots = new[]
            {
                "m3.xlarge",
                "m3.2xlarge",
            },
            InstanceTypesPreferredSpots = new[]
            {
                "m3.xlarge",
            },
            OnDemandTypes = new[]
            {
                "c3.large",
            },
            InstanceTypesWeights = new[]
            {
                new SpotInst.Aws.Inputs.ElastigroupInstanceTypesWeightArgs
                {
                    InstanceType = "m3.xlarge",
                    Weight = 10,
                },
                new SpotInst.Aws.Inputs.ElastigroupInstanceTypesWeightArgs
                {
                    InstanceType = "m3.2xlarge",
                    Weight = 16,
                },
            },
            ResourceRequirements = new[]
            {
                new SpotInst.Aws.Inputs.ElastigroupResourceRequirementArgs
                {
                    ExcludedInstanceFamilies = new[]
                    {
                        "a",
                        "m",
                    },
                    ExcludedInstanceTypes = new[]
                    {
                        "m3.large",
                    },
                    ExcludedInstanceGenerations = new[]
                    {
                        "1",
                        "2",
                    },
                    RequiredGpuMinimum = 1,
                    RequiredGpuMaximum = 16,
                    RequiredMemoryMinimum = 1,
                    RequiredMemoryMaximum = 512,
                    RequiredVcpuMinimum = 1,
                    RequiredVcpuMaximum = 64,
                },
            },
            Orientation = "balanced",
            FallbackToOndemand = false,
            CpuCredits = "unlimited",
            MinimumInstanceLifetime = 12,
            WaitForCapacity = 5,
            WaitForCapacityTimeout = 300,
            ScalingStrategies = new[]
            {
                new SpotInst.Aws.Inputs.ElastigroupScalingStrategyArgs
                {
                    TerminateAtEndOfBillingHour = true,
                    TerminationPolicy = "default",
                },
            },
            ScalingUpPolicies = new[]
            {
                new SpotInst.Aws.Inputs.ElastigroupScalingUpPolicyArgs
                {
                    PolicyName = "Default Scaling Up Policy",
                    MetricName = "DefaultQueuesDepth",
                    Statistic = "average",
                    Unit = "none",
                    Adjustment = "1",
                    Namespace = "custom",
                    Threshold = 100,
                    Period = 60,
                    EvaluationPeriods = 5,
                    Cooldown = 300,
                },
            },
            ScalingDownPolicies = new[]
            {
                new SpotInst.Aws.Inputs.ElastigroupScalingDownPolicyArgs
                {
                    PolicyName = "Default Scaling Down Policy",
                    MetricName = "DefaultQueuesDepth",
                    Statistic = "average",
                    Unit = "none",
                    Adjustment = "1",
                    Namespace = "custom",
                    Threshold = 10,
                    Period = 60,
                    EvaluationPeriods = 10,
                    Cooldown = 300,
                },
            },
            Tags = new[]
            {
                new SpotInst.Aws.Inputs.ElastigroupTagArgs
                {
                    Key = "Env",
                    Value = "production",
                },
                new SpotInst.Aws.Inputs.ElastigroupTagArgs
                {
                    Key = "Name",
                    Value = "default-production",
                },
                new SpotInst.Aws.Inputs.ElastigroupTagArgs
                {
                    Key = "Project",
                    Value = "app_v2",
                },
            },
            ResourceTagSpecifications = new[]
            {
                new SpotInst.Aws.Inputs.ElastigroupResourceTagSpecificationArgs
                {
                    ShouldTagEnis = true,
                    ShouldTagVolumes = true,
                    ShouldTagSnapshots = true,
                    ShouldTagAmis = true,
                },
            },
            Logging = new SpotInst.Aws.Inputs.ElastigroupLoggingArgs
            {
                Export = new SpotInst.Aws.Inputs.ElastigroupLoggingExportArgs
                {
                    S3s = new[]
                    {
                        new SpotInst.Aws.Inputs.ElastigroupLoggingExportS3Args
                        {
                            Id = "di-123456",
                        },
                    },
                },
            },
        });
    
    });
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import com.pulumi.spotinst.aws.Elastigroup;
    import com.pulumi.spotinst.aws.ElastigroupArgs;
    import com.pulumi.spotinst.aws.inputs.ElastigroupMetadataOptionsArgs;
    import com.pulumi.spotinst.aws.inputs.ElastigroupCpuOptionsArgs;
    import com.pulumi.spotinst.aws.inputs.ElastigroupInstanceTypesWeightArgs;
    import com.pulumi.spotinst.aws.inputs.ElastigroupResourceRequirementArgs;
    import com.pulumi.spotinst.aws.inputs.ElastigroupScalingStrategyArgs;
    import com.pulumi.spotinst.aws.inputs.ElastigroupScalingUpPolicyArgs;
    import com.pulumi.spotinst.aws.inputs.ElastigroupScalingDownPolicyArgs;
    import com.pulumi.spotinst.aws.inputs.ElastigroupTagArgs;
    import com.pulumi.spotinst.aws.inputs.ElastigroupResourceTagSpecificationArgs;
    import com.pulumi.spotinst.aws.inputs.ElastigroupLoggingArgs;
    import com.pulumi.spotinst.aws.inputs.ElastigroupLoggingExportArgs;
    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) {
            // Create an Elastigroup
            var default_elastigroup = new Elastigroup("default-elastigroup", ElastigroupArgs.builder()        
                .name("default-elastigroup")
                .description("created by Pulumi")
                .product("Linux/UNIX")
                .maxSize(0)
                .minSize(0)
                .desiredCapacity(0)
                .capacityUnit("weight")
                .region("us-west-2")
                .subnetIds(            
                    "sb-123456",
                    "sb-456789")
                .imageId("ami-a27d8fda")
                .iamInstanceProfile("iam-profile")
                .keyName("my-key.ssh")
                .securityGroups("sg-123456")
                .userData("echo hello world")
                .enableMonitoring(false)
                .ebsOptimized(false)
                .placementTenancy("default")
                .metadataOptions(ElastigroupMetadataOptionsArgs.builder()
                    .httpTokens("optional")
                    .httpPutResponseHopLimit(10)
                    .instanceMetadataTags("enabled")
                    .build())
                .cpuOptions(ElastigroupCpuOptionsArgs.builder()
                    .threadsPerCore(1)
                    .build())
                .instanceTypesOndemand("m3.2xlarge")
                .instanceTypesSpots(            
                    "m3.xlarge",
                    "m3.2xlarge")
                .instanceTypesPreferredSpots("m3.xlarge")
                .onDemandTypes("c3.large")
                .instanceTypesWeights(            
                    ElastigroupInstanceTypesWeightArgs.builder()
                        .instanceType("m3.xlarge")
                        .weight(10)
                        .build(),
                    ElastigroupInstanceTypesWeightArgs.builder()
                        .instanceType("m3.2xlarge")
                        .weight(16)
                        .build())
                .resourceRequirements(ElastigroupResourceRequirementArgs.builder()
                    .excludedInstanceFamilies(                
                        "a",
                        "m")
                    .excludedInstanceTypes("m3.large")
                    .excludedInstanceGenerations(                
                        "1",
                        "2")
                    .requiredGpuMinimum(1)
                    .requiredGpuMaximum(16)
                    .requiredMemoryMinimum(1)
                    .requiredMemoryMaximum(512)
                    .requiredVcpuMinimum(1)
                    .requiredVcpuMaximum(64)
                    .build())
                .orientation("balanced")
                .fallbackToOndemand(false)
                .cpuCredits("unlimited")
                .minimumInstanceLifetime(12)
                .waitForCapacity(5)
                .waitForCapacityTimeout(300)
                .scalingStrategies(ElastigroupScalingStrategyArgs.builder()
                    .terminateAtEndOfBillingHour(true)
                    .terminationPolicy("default")
                    .build())
                .scalingUpPolicies(ElastigroupScalingUpPolicyArgs.builder()
                    .policyName("Default Scaling Up Policy")
                    .metricName("DefaultQueuesDepth")
                    .statistic("average")
                    .unit("none")
                    .adjustment(1)
                    .namespace("custom")
                    .threshold(100)
                    .period(60)
                    .evaluationPeriods(5)
                    .cooldown(300)
                    .build())
                .scalingDownPolicies(ElastigroupScalingDownPolicyArgs.builder()
                    .policyName("Default Scaling Down Policy")
                    .metricName("DefaultQueuesDepth")
                    .statistic("average")
                    .unit("none")
                    .adjustment(1)
                    .namespace("custom")
                    .threshold(10)
                    .period(60)
                    .evaluationPeriods(10)
                    .cooldown(300)
                    .build())
                .tags(            
                    ElastigroupTagArgs.builder()
                        .key("Env")
                        .value("production")
                        .build(),
                    ElastigroupTagArgs.builder()
                        .key("Name")
                        .value("default-production")
                        .build(),
                    ElastigroupTagArgs.builder()
                        .key("Project")
                        .value("app_v2")
                        .build())
                .resourceTagSpecifications(ElastigroupResourceTagSpecificationArgs.builder()
                    .shouldTagEnis(true)
                    .shouldTagVolumes(true)
                    .shouldTagSnapshots(true)
                    .shouldTagAmis(true)
                    .build())
                .logging(ElastigroupLoggingArgs.builder()
                    .export(ElastigroupLoggingExportArgs.builder()
                        .s3s(ElastigroupLoggingExportS3Args.builder()
                            .id("di-123456")
                            .build())
                        .build())
                    .build())
                .build());
    
        }
    }
    
    resources:
      # Create an Elastigroup
      default-elastigroup:
        type: spotinst:aws:Elastigroup
        properties:
          name: default-elastigroup
          description: created by Pulumi
          product: Linux/UNIX
          maxSize: 0
          minSize: 0
          desiredCapacity: 0
          capacityUnit: weight
          region: us-west-2
          subnetIds:
            - sb-123456
            - sb-456789
          imageId: ami-a27d8fda
          iamInstanceProfile: iam-profile
          keyName: my-key.ssh
          securityGroups:
            - sg-123456
          userData: echo hello world
          enableMonitoring: false
          ebsOptimized: false
          placementTenancy: default
          metadataOptions:
            httpTokens: optional
            httpPutResponseHopLimit: 10
            instanceMetadataTags: enabled
          cpuOptions:
            threadsPerCore: 1
          instanceTypesOndemand: m3.2xlarge
          instanceTypesSpots:
            - m3.xlarge
            - m3.2xlarge
          instanceTypesPreferredSpots:
            - m3.xlarge
          onDemandTypes:
            - c3.large
          instanceTypesWeights:
            - instanceType: m3.xlarge
              weight: 10
            - instanceType: m3.2xlarge
              weight: 16
          resourceRequirements:
            - excludedInstanceFamilies:
                - a
                - m
              excludedInstanceTypes:
                - m3.large
              excludedInstanceGenerations:
                - '1'
                - '2'
              requiredGpuMinimum: 1
              requiredGpuMaximum: 16
              requiredMemoryMinimum: 1
              requiredMemoryMaximum: 512
              requiredVcpuMinimum: 1
              requiredVcpuMaximum: 64
          orientation: balanced
          fallbackToOndemand: false
          cpuCredits: unlimited
          minimumInstanceLifetime: 12
          waitForCapacity: 5
          waitForCapacityTimeout: 300
          scalingStrategies:
            - terminateAtEndOfBillingHour: true
              terminationPolicy: default
          scalingUpPolicies:
            - policyName: Default Scaling Up Policy
              metricName: DefaultQueuesDepth
              statistic: average
              unit: none
              adjustment: 1
              namespace: custom
              threshold: 100
              period: 60
              evaluationPeriods: 5
              cooldown: 300
          scalingDownPolicies:
            - policyName: Default Scaling Down Policy
              metricName: DefaultQueuesDepth
              statistic: average
              unit: none
              adjustment: 1
              namespace: custom
              threshold: 10
              period: 60
              evaluationPeriods: 10
              cooldown: 300
          tags:
            - key: Env
              value: production
            - key: Name
              value: default-production
            - key: Project
              value: app_v2
          resourceTagSpecifications:
            - shouldTagEnis: true
              shouldTagVolumes: true
              shouldTagSnapshots: true
              shouldTagAmis: true
          logging:
            export:
              s3s:
                - id: di-123456
    

    Create Elastigroup Resource

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

    Constructor syntax

    new Elastigroup(name: string, args: ElastigroupArgs, opts?: CustomResourceOptions);
    @overload
    def Elastigroup(resource_name: str,
                    args: ElastigroupArgs,
                    opts: Optional[ResourceOptions] = None)
    
    @overload
    def Elastigroup(resource_name: str,
                    opts: Optional[ResourceOptions] = None,
                    fallback_to_ondemand: Optional[bool] = None,
                    orientation: Optional[str] = None,
                    product: Optional[str] = None,
                    security_groups: Optional[Sequence[str]] = None,
                    availability_zones: Optional[Sequence[str]] = None,
                    block_devices_mode: Optional[str] = None,
                    capacity_unit: Optional[str] = None,
                    consider_od_pricing: Optional[bool] = None,
                    cpu_credits: Optional[str] = None,
                    cpu_options: Optional[ElastigroupCpuOptionsArgs] = None,
                    description: Optional[str] = None,
                    desired_capacity: Optional[int] = None,
                    draining_timeout: Optional[int] = None,
                    ebs_block_devices: Optional[Sequence[ElastigroupEbsBlockDeviceArgs]] = None,
                    ebs_optimized: Optional[bool] = None,
                    elastic_ips: Optional[Sequence[str]] = None,
                    elastic_load_balancers: Optional[Sequence[str]] = None,
                    enable_monitoring: Optional[bool] = None,
                    ephemeral_block_devices: Optional[Sequence[ElastigroupEphemeralBlockDeviceArgs]] = None,
                    health_check_grace_period: Optional[int] = None,
                    health_check_type: Optional[str] = None,
                    health_check_unhealthy_duration_before_replacement: Optional[int] = None,
                    iam_instance_profile: Optional[str] = None,
                    image_id: Optional[str] = None,
                    images: Optional[Sequence[ElastigroupImageArgs]] = None,
                    immediate_od_recover_threshold: Optional[int] = None,
                    instance_types_ondemand: Optional[str] = None,
                    instance_types_preferred_spots: Optional[Sequence[str]] = None,
                    instance_types_spots: Optional[Sequence[str]] = None,
                    instance_types_weights: Optional[Sequence[ElastigroupInstanceTypesWeightArgs]] = None,
                    integration_beanstalk: Optional[ElastigroupIntegrationBeanstalkArgs] = None,
                    integration_codedeploy: Optional[ElastigroupIntegrationCodedeployArgs] = None,
                    integration_docker_swarm: Optional[ElastigroupIntegrationDockerSwarmArgs] = None,
                    integration_ecs: Optional[ElastigroupIntegrationEcsArgs] = None,
                    integration_gitlab: Optional[ElastigroupIntegrationGitlabArgs] = None,
                    integration_kubernetes: Optional[ElastigroupIntegrationKubernetesArgs] = None,
                    integration_mesosphere: Optional[ElastigroupIntegrationMesosphereArgs] = None,
                    integration_nomad: Optional[ElastigroupIntegrationNomadArgs] = None,
                    integration_rancher: Optional[ElastigroupIntegrationRancherArgs] = None,
                    integration_route53: Optional[ElastigroupIntegrationRoute53Args] = None,
                    itfs: Optional[Sequence[ElastigroupItfArgs]] = None,
                    key_name: Optional[str] = None,
                    lifetime_period: Optional[str] = None,
                    logging: Optional[ElastigroupLoggingArgs] = None,
                    max_size: Optional[int] = None,
                    metadata_options: Optional[ElastigroupMetadataOptionsArgs] = None,
                    min_size: Optional[int] = None,
                    minimum_instance_lifetime: Optional[int] = None,
                    multiple_metrics: Optional[ElastigroupMultipleMetricsArgs] = None,
                    name: Optional[str] = None,
                    network_interfaces: Optional[Sequence[ElastigroupNetworkInterfaceArgs]] = None,
                    on_demand_types: Optional[Sequence[str]] = None,
                    ondemand_count: Optional[int] = None,
                    persist_block_devices: Optional[bool] = None,
                    persist_private_ip: Optional[bool] = None,
                    persist_root_device: Optional[bool] = None,
                    placement_tenancy: Optional[str] = None,
                    preferred_availability_zones: Optional[Sequence[str]] = None,
                    private_ips: Optional[Sequence[str]] = None,
                    region: Optional[str] = None,
                    resource_requirements: Optional[Sequence[ElastigroupResourceRequirementArgs]] = None,
                    resource_tag_specifications: Optional[Sequence[ElastigroupResourceTagSpecificationArgs]] = None,
                    revert_to_spot: Optional[ElastigroupRevertToSpotArgs] = None,
                    scaling_down_policies: Optional[Sequence[ElastigroupScalingDownPolicyArgs]] = None,
                    scaling_strategies: Optional[Sequence[ElastigroupScalingStrategyArgs]] = None,
                    scaling_target_policies: Optional[Sequence[ElastigroupScalingTargetPolicyArgs]] = None,
                    scaling_up_policies: Optional[Sequence[ElastigroupScalingUpPolicyArgs]] = None,
                    scheduled_tasks: Optional[Sequence[ElastigroupScheduledTaskArgs]] = None,
                    shutdown_script: Optional[str] = None,
                    signals: Optional[Sequence[ElastigroupSignalArgs]] = None,
                    spot_percentage: Optional[int] = None,
                    stateful_deallocation: Optional[ElastigroupStatefulDeallocationArgs] = None,
                    stateful_instance_actions: Optional[Sequence[ElastigroupStatefulInstanceActionArgs]] = None,
                    subnet_ids: Optional[Sequence[str]] = None,
                    tags: Optional[Sequence[ElastigroupTagArgs]] = None,
                    target_group_arns: Optional[Sequence[str]] = None,
                    update_policy: Optional[ElastigroupUpdatePolicyArgs] = None,
                    user_data: Optional[str] = None,
                    utilize_commitments: Optional[bool] = None,
                    utilize_reserved_instances: Optional[bool] = None,
                    wait_for_capacity: Optional[int] = None,
                    wait_for_capacity_timeout: Optional[int] = None)
    func NewElastigroup(ctx *Context, name string, args ElastigroupArgs, opts ...ResourceOption) (*Elastigroup, error)
    public Elastigroup(string name, ElastigroupArgs args, CustomResourceOptions? opts = null)
    public Elastigroup(String name, ElastigroupArgs args)
    public Elastigroup(String name, ElastigroupArgs args, CustomResourceOptions options)
    
    type: spotinst:aws:Elastigroup
    properties: # The arguments to resource properties.
    options: # Bag of options to control resource's behavior.
    
    

    Parameters

    name string
    The unique name of the resource.
    args ElastigroupArgs
    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 ElastigroupArgs
    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 ElastigroupArgs
    The arguments to resource properties.
    opts ResourceOption
    Bag of options to control resource's behavior.
    name string
    The unique name of the resource.
    args ElastigroupArgs
    The arguments to resource properties.
    opts CustomResourceOptions
    Bag of options to control resource's behavior.
    name String
    The unique name of the resource.
    args ElastigroupArgs
    The arguments to resource properties.
    options CustomResourceOptions
    Bag of options to control resource's behavior.

    Example

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

    var elastigroupResource = new SpotInst.Aws.Elastigroup("elastigroupResource", new()
    {
        FallbackToOndemand = false,
        Orientation = "string",
        Product = "string",
        SecurityGroups = new[]
        {
            "string",
        },
        AvailabilityZones = new[]
        {
            "string",
        },
        BlockDevicesMode = "string",
        CapacityUnit = "string",
        ConsiderOdPricing = false,
        CpuCredits = "string",
        CpuOptions = new SpotInst.Aws.Inputs.ElastigroupCpuOptionsArgs
        {
            ThreadsPerCore = 0,
        },
        Description = "string",
        DesiredCapacity = 0,
        DrainingTimeout = 0,
        EbsBlockDevices = new[]
        {
            new SpotInst.Aws.Inputs.ElastigroupEbsBlockDeviceArgs
            {
                DeviceName = "string",
                DeleteOnTermination = false,
                Encrypted = false,
                Iops = 0,
                KmsKeyId = "string",
                SnapshotId = "string",
                Throughput = 0,
                VolumeSize = 0,
                VolumeType = "string",
            },
        },
        EbsOptimized = false,
        ElasticIps = new[]
        {
            "string",
        },
        ElasticLoadBalancers = new[]
        {
            "string",
        },
        EnableMonitoring = false,
        EphemeralBlockDevices = new[]
        {
            new SpotInst.Aws.Inputs.ElastigroupEphemeralBlockDeviceArgs
            {
                DeviceName = "string",
                VirtualName = "string",
            },
        },
        HealthCheckGracePeriod = 0,
        HealthCheckType = "string",
        HealthCheckUnhealthyDurationBeforeReplacement = 0,
        IamInstanceProfile = "string",
        ImageId = "string",
        Images = new[]
        {
            new SpotInst.Aws.Inputs.ElastigroupImageArgs
            {
                Images = new[]
                {
                    new SpotInst.Aws.Inputs.ElastigroupImageImageArgs
                    {
                        Id = "string",
                    },
                },
            },
        },
        ImmediateOdRecoverThreshold = 0,
        InstanceTypesOndemand = "string",
        InstanceTypesPreferredSpots = new[]
        {
            "string",
        },
        InstanceTypesSpots = new[]
        {
            "string",
        },
        InstanceTypesWeights = new[]
        {
            new SpotInst.Aws.Inputs.ElastigroupInstanceTypesWeightArgs
            {
                InstanceType = "string",
                Weight = 0,
            },
        },
        IntegrationBeanstalk = new SpotInst.Aws.Inputs.ElastigroupIntegrationBeanstalkArgs
        {
            DeploymentPreferences = new SpotInst.Aws.Inputs.ElastigroupIntegrationBeanstalkDeploymentPreferencesArgs
            {
                AutomaticRoll = false,
                BatchSizePercentage = 0,
                GracePeriod = 0,
                Strategy = new SpotInst.Aws.Inputs.ElastigroupIntegrationBeanstalkDeploymentPreferencesStrategyArgs
                {
                    Action = "string",
                    ShouldDrainInstances = false,
                },
            },
            EnvironmentId = "string",
            ManagedActions = new SpotInst.Aws.Inputs.ElastigroupIntegrationBeanstalkManagedActionsArgs
            {
                PlatformUpdate = new SpotInst.Aws.Inputs.ElastigroupIntegrationBeanstalkManagedActionsPlatformUpdateArgs
                {
                    PerformAt = "string",
                    TimeWindow = "string",
                    UpdateLevel = "string",
                },
            },
        },
        IntegrationCodedeploy = new SpotInst.Aws.Inputs.ElastigroupIntegrationCodedeployArgs
        {
            CleanupOnFailure = false,
            DeploymentGroups = new[]
            {
                new SpotInst.Aws.Inputs.ElastigroupIntegrationCodedeployDeploymentGroupArgs
                {
                    ApplicationName = "string",
                    DeploymentGroupName = "string",
                },
            },
            TerminateInstanceOnFailure = false,
        },
        IntegrationDockerSwarm = new SpotInst.Aws.Inputs.ElastigroupIntegrationDockerSwarmArgs
        {
            MasterHost = "string",
            MasterPort = 0,
            AutoscaleCooldown = 0,
            AutoscaleDown = new SpotInst.Aws.Inputs.ElastigroupIntegrationDockerSwarmAutoscaleDownArgs
            {
                EvaluationPeriods = 0,
                MaxScaleDownPercentage = 0,
            },
            AutoscaleHeadroom = new SpotInst.Aws.Inputs.ElastigroupIntegrationDockerSwarmAutoscaleHeadroomArgs
            {
                CpuPerUnit = 0,
                MemoryPerUnit = 0,
                NumOfUnits = 0,
            },
            AutoscaleIsEnabled = false,
        },
        IntegrationEcs = new SpotInst.Aws.Inputs.ElastigroupIntegrationEcsArgs
        {
            ClusterName = "string",
            AutoscaleAttributes = new[]
            {
                new SpotInst.Aws.Inputs.ElastigroupIntegrationEcsAutoscaleAttributeArgs
                {
                    Key = "string",
                    Value = "string",
                },
            },
            AutoscaleCooldown = 0,
            AutoscaleDown = new SpotInst.Aws.Inputs.ElastigroupIntegrationEcsAutoscaleDownArgs
            {
                EvaluationPeriods = 0,
                MaxScaleDownPercentage = 0,
            },
            AutoscaleHeadroom = new SpotInst.Aws.Inputs.ElastigroupIntegrationEcsAutoscaleHeadroomArgs
            {
                CpuPerUnit = 0,
                MemoryPerUnit = 0,
                NumOfUnits = 0,
            },
            AutoscaleIsAutoConfig = false,
            AutoscaleIsEnabled = false,
            AutoscaleScaleDownNonServiceTasks = false,
            Batch = new SpotInst.Aws.Inputs.ElastigroupIntegrationEcsBatchArgs
            {
                JobQueueNames = new[]
                {
                    "string",
                },
            },
        },
        IntegrationGitlab = new SpotInst.Aws.Inputs.ElastigroupIntegrationGitlabArgs
        {
            Runner = new SpotInst.Aws.Inputs.ElastigroupIntegrationGitlabRunnerArgs
            {
                IsEnabled = false,
            },
        },
        IntegrationKubernetes = new SpotInst.Aws.Inputs.ElastigroupIntegrationKubernetesArgs
        {
            ApiServer = "string",
            AutoscaleCooldown = 0,
            AutoscaleDown = new SpotInst.Aws.Inputs.ElastigroupIntegrationKubernetesAutoscaleDownArgs
            {
                EvaluationPeriods = 0,
                MaxScaleDownPercentage = 0,
            },
            AutoscaleHeadroom = new SpotInst.Aws.Inputs.ElastigroupIntegrationKubernetesAutoscaleHeadroomArgs
            {
                CpuPerUnit = 0,
                MemoryPerUnit = 0,
                NumOfUnits = 0,
            },
            AutoscaleIsAutoConfig = false,
            AutoscaleIsEnabled = false,
            AutoscaleLabels = new[]
            {
                new SpotInst.Aws.Inputs.ElastigroupIntegrationKubernetesAutoscaleLabelArgs
                {
                    Key = "string",
                    Value = "string",
                },
            },
            ClusterIdentifier = "string",
            IntegrationMode = "string",
            Token = "string",
        },
        IntegrationMesosphere = new SpotInst.Aws.Inputs.ElastigroupIntegrationMesosphereArgs
        {
            ApiServer = "string",
        },
        IntegrationNomad = new SpotInst.Aws.Inputs.ElastigroupIntegrationNomadArgs
        {
            MasterHost = "string",
            MasterPort = 0,
            AclToken = "string",
            AutoscaleConstraints = new[]
            {
                new SpotInst.Aws.Inputs.ElastigroupIntegrationNomadAutoscaleConstraintArgs
                {
                    Key = "string",
                    Value = "string",
                },
            },
            AutoscaleCooldown = 0,
            AutoscaleDown = new SpotInst.Aws.Inputs.ElastigroupIntegrationNomadAutoscaleDownArgs
            {
                EvaluationPeriods = 0,
            },
            AutoscaleHeadroom = new SpotInst.Aws.Inputs.ElastigroupIntegrationNomadAutoscaleHeadroomArgs
            {
                CpuPerUnit = 0,
                MemoryPerUnit = 0,
                NumOfUnits = 0,
            },
            AutoscaleIsEnabled = false,
        },
        IntegrationRancher = new SpotInst.Aws.Inputs.ElastigroupIntegrationRancherArgs
        {
            AccessKey = "string",
            MasterHost = "string",
            SecretKey = "string",
            Version = "string",
        },
        IntegrationRoute53 = new SpotInst.Aws.Inputs.ElastigroupIntegrationRoute53Args
        {
            Domains = new[]
            {
                new SpotInst.Aws.Inputs.ElastigroupIntegrationRoute53DomainArgs
                {
                    HostedZoneId = "string",
                    RecordSets = new[]
                    {
                        new SpotInst.Aws.Inputs.ElastigroupIntegrationRoute53DomainRecordSetArgs
                        {
                            Name = "string",
                            UsePublicDns = false,
                            UsePublicIp = false,
                        },
                    },
                    RecordSetType = "string",
                    SpotinstAcctId = "string",
                },
            },
        },
        Itfs = new[]
        {
            new SpotInst.Aws.Inputs.ElastigroupItfArgs
            {
                FixedTargetGroups = false,
                LoadBalancers = new[]
                {
                    new SpotInst.Aws.Inputs.ElastigroupItfLoadBalancerArgs
                    {
                        ListenerRules = new[]
                        {
                            new SpotInst.Aws.Inputs.ElastigroupItfLoadBalancerListenerRuleArgs
                            {
                                RuleArn = "string",
                                StaticTargetGroup = new SpotInst.Aws.Inputs.ElastigroupItfLoadBalancerListenerRuleStaticTargetGroupArgs
                                {
                                    Arn = "string",
                                    Percentage = 0,
                                },
                            },
                        },
                        LoadBalancerArn = "string",
                    },
                },
                TargetGroupConfigs = new[]
                {
                    new SpotInst.Aws.Inputs.ElastigroupItfTargetGroupConfigArgs
                    {
                        Port = 0,
                        HealthCheckPath = "string",
                        VpcId = "string",
                        Protocol = "string",
                        Matchers = new[]
                        {
                            new SpotInst.Aws.Inputs.ElastigroupItfTargetGroupConfigMatcherArgs
                            {
                                GrpcCode = "string",
                                HttpCode = "string",
                            },
                        },
                        HealthyThresholdCount = 0,
                        HealthCheckIntervalSeconds = 0,
                        HealthCheckTimeoutSeconds = 0,
                        HealthCheckProtocol = "string",
                        ProtocolVersion = "string",
                        Tags = new[]
                        {
                            new SpotInst.Aws.Inputs.ElastigroupItfTargetGroupConfigTagArgs
                            {
                                TagKey = "string",
                                TagValue = "string",
                            },
                        },
                        UnhealthyThresholdCount = 0,
                        HealthCheckPort = "string",
                    },
                },
                WeightStrategy = "string",
                DefaultStaticTargetGroup = new SpotInst.Aws.Inputs.ElastigroupItfDefaultStaticTargetGroupArgs
                {
                    Arn = "string",
                    Percentage = 0,
                },
                MigrationHealthinessThreshold = 0,
            },
        },
        KeyName = "string",
        LifetimePeriod = "string",
        Logging = new SpotInst.Aws.Inputs.ElastigroupLoggingArgs
        {
            Export = new SpotInst.Aws.Inputs.ElastigroupLoggingExportArgs
            {
                S3s = new[]
                {
                    new SpotInst.Aws.Inputs.ElastigroupLoggingExportS3Args
                    {
                        Id = "string",
                    },
                },
            },
        },
        MaxSize = 0,
        MetadataOptions = new SpotInst.Aws.Inputs.ElastigroupMetadataOptionsArgs
        {
            HttpTokens = "string",
            HttpPutResponseHopLimit = 0,
            InstanceMetadataTags = "string",
        },
        MinSize = 0,
        MinimumInstanceLifetime = 0,
        MultipleMetrics = new SpotInst.Aws.Inputs.ElastigroupMultipleMetricsArgs
        {
            Expressions = new[]
            {
                new SpotInst.Aws.Inputs.ElastigroupMultipleMetricsExpressionArgs
                {
                    Expression = "string",
                    Name = "string",
                },
            },
            Metrics = new[]
            {
                new SpotInst.Aws.Inputs.ElastigroupMultipleMetricsMetricArgs
                {
                    MetricName = "string",
                    Name = "string",
                    Namespace = "string",
                    Dimensions = new[]
                    {
                        new SpotInst.Aws.Inputs.ElastigroupMultipleMetricsMetricDimensionArgs
                        {
                            Name = "string",
                            Value = "string",
                        },
                    },
                    ExtendedStatistic = "string",
                    Statistic = "string",
                    Unit = "string",
                },
            },
        },
        Name = "string",
        NetworkInterfaces = new[]
        {
            new SpotInst.Aws.Inputs.ElastigroupNetworkInterfaceArgs
            {
                DeviceIndex = "string",
                AssociateIpv6Address = false,
                AssociatePublicIpAddress = false,
                DeleteOnTermination = false,
                Description = "string",
                NetworkInterfaceId = "string",
                PrivateIpAddress = "string",
                SecondaryPrivateIpAddressCount = "string",
            },
        },
        OnDemandTypes = new[]
        {
            "string",
        },
        OndemandCount = 0,
        PersistBlockDevices = false,
        PersistPrivateIp = false,
        PersistRootDevice = false,
        PlacementTenancy = "string",
        PreferredAvailabilityZones = new[]
        {
            "string",
        },
        PrivateIps = new[]
        {
            "string",
        },
        Region = "string",
        ResourceRequirements = new[]
        {
            new SpotInst.Aws.Inputs.ElastigroupResourceRequirementArgs
            {
                RequiredMemoryMaximum = 0,
                RequiredMemoryMinimum = 0,
                RequiredVcpuMaximum = 0,
                RequiredVcpuMinimum = 0,
                ExcludedInstanceFamilies = new[]
                {
                    "string",
                },
                ExcludedInstanceGenerations = new[]
                {
                    "string",
                },
                ExcludedInstanceTypes = new[]
                {
                    "string",
                },
                RequiredGpuMaximum = 0,
                RequiredGpuMinimum = 0,
            },
        },
        ResourceTagSpecifications = new[]
        {
            new SpotInst.Aws.Inputs.ElastigroupResourceTagSpecificationArgs
            {
                ShouldTagAmis = false,
                ShouldTagEnis = false,
                ShouldTagSnapshots = false,
                ShouldTagVolumes = false,
            },
        },
        RevertToSpot = new SpotInst.Aws.Inputs.ElastigroupRevertToSpotArgs
        {
            PerformAt = "string",
            TimeWindows = new[]
            {
                "string",
            },
        },
        ScalingDownPolicies = new[]
        {
            new SpotInst.Aws.Inputs.ElastigroupScalingDownPolicyArgs
            {
                MetricName = "string",
                PolicyName = "string",
                Namespace = "string",
                Minimum = "string",
                Operator = "string",
                IsEnabled = false,
                MaxTargetCapacity = "string",
                Maximum = "string",
                Dimensions = new[]
                {
                    new SpotInst.Aws.Inputs.ElastigroupScalingDownPolicyDimensionArgs
                    {
                        Name = "string",
                        Value = "string",
                    },
                },
                MinTargetCapacity = "string",
                ActionType = "string",
                Cooldown = 0,
                EvaluationPeriods = 0,
                Period = 0,
                Adjustment = "string",
                Source = "string",
                Statistic = "string",
                StepAdjustments = new[]
                {
                    new SpotInst.Aws.Inputs.ElastigroupScalingDownPolicyStepAdjustmentArgs
                    {
                        Action = new SpotInst.Aws.Inputs.ElastigroupScalingDownPolicyStepAdjustmentActionArgs
                        {
                            Type = "string",
                            Adjustment = "string",
                            MaxTargetCapacity = "string",
                            Maximum = "string",
                            MinTargetCapacity = "string",
                            Minimum = "string",
                            Target = "string",
                        },
                        Threshold = 0,
                    },
                },
                Target = "string",
                Threshold = 0,
                Unit = "string",
            },
        },
        ScalingStrategies = new[]
        {
            new SpotInst.Aws.Inputs.ElastigroupScalingStrategyArgs
            {
                TerminateAtEndOfBillingHour = false,
                TerminationPolicy = "string",
            },
        },
        ScalingTargetPolicies = new[]
        {
            new SpotInst.Aws.Inputs.ElastigroupScalingTargetPolicyArgs
            {
                MetricName = "string",
                Target = 0,
                PolicyName = "string",
                Namespace = "string",
                Period = 0,
                MaxCapacityPerScale = "string",
                Cooldown = 0,
                EvaluationPeriods = 0,
                PredictiveMode = "string",
                Source = "string",
                Statistic = "string",
                Dimensions = new[]
                {
                    new SpotInst.Aws.Inputs.ElastigroupScalingTargetPolicyDimensionArgs
                    {
                        Name = "string",
                        Value = "string",
                    },
                },
                Unit = "string",
            },
        },
        ScalingUpPolicies = new[]
        {
            new SpotInst.Aws.Inputs.ElastigroupScalingUpPolicyArgs
            {
                MetricName = "string",
                PolicyName = "string",
                Namespace = "string",
                Minimum = "string",
                Operator = "string",
                IsEnabled = false,
                MaxTargetCapacity = "string",
                Maximum = "string",
                Dimensions = new[]
                {
                    new SpotInst.Aws.Inputs.ElastigroupScalingUpPolicyDimensionArgs
                    {
                        Name = "string",
                        Value = "string",
                    },
                },
                MinTargetCapacity = "string",
                ActionType = "string",
                Cooldown = 0,
                EvaluationPeriods = 0,
                Period = 0,
                Adjustment = "string",
                Source = "string",
                Statistic = "string",
                StepAdjustments = new[]
                {
                    new SpotInst.Aws.Inputs.ElastigroupScalingUpPolicyStepAdjustmentArgs
                    {
                        Action = new SpotInst.Aws.Inputs.ElastigroupScalingUpPolicyStepAdjustmentActionArgs
                        {
                            Type = "string",
                            Adjustment = "string",
                            MaxTargetCapacity = "string",
                            Maximum = "string",
                            MinTargetCapacity = "string",
                            Minimum = "string",
                            Target = "string",
                        },
                        Threshold = 0,
                    },
                },
                Target = "string",
                Threshold = 0,
                Unit = "string",
            },
        },
        ScheduledTasks = new[]
        {
            new SpotInst.Aws.Inputs.ElastigroupScheduledTaskArgs
            {
                TaskType = "string",
                IsEnabled = false,
                MinCapacity = "string",
                CronExpression = "string",
                Frequency = "string",
                GracePeriod = "string",
                Adjustment = "string",
                MaxCapacity = "string",
                BatchSizePercentage = "string",
                ScaleMaxCapacity = "string",
                ScaleMinCapacity = "string",
                ScaleTargetCapacity = "string",
                StartTime = "string",
                TargetCapacity = "string",
                AdjustmentPercentage = "string",
            },
        },
        ShutdownScript = "string",
        Signals = new[]
        {
            new SpotInst.Aws.Inputs.ElastigroupSignalArgs
            {
                Name = "string",
                Timeout = 0,
            },
        },
        SpotPercentage = 0,
        StatefulDeallocation = new SpotInst.Aws.Inputs.ElastigroupStatefulDeallocationArgs
        {
            ShouldDeleteImages = false,
            ShouldDeleteNetworkInterfaces = false,
            ShouldDeleteSnapshots = false,
            ShouldDeleteVolumes = false,
        },
        StatefulInstanceActions = new[]
        {
            new SpotInst.Aws.Inputs.ElastigroupStatefulInstanceActionArgs
            {
                StatefulInstanceId = "string",
                Type = "string",
            },
        },
        SubnetIds = new[]
        {
            "string",
        },
        Tags = new[]
        {
            new SpotInst.Aws.Inputs.ElastigroupTagArgs
            {
                Key = "string",
                Value = "string",
            },
        },
        TargetGroupArns = new[]
        {
            "string",
        },
        UpdatePolicy = new SpotInst.Aws.Inputs.ElastigroupUpdatePolicyArgs
        {
            ShouldResumeStateful = false,
            ShouldRoll = false,
            AutoApplyTags = false,
            RollConfig = new SpotInst.Aws.Inputs.ElastigroupUpdatePolicyRollConfigArgs
            {
                BatchSizePercentage = 0,
                GracePeriod = 0,
                HealthCheckType = "string",
                Strategy = new SpotInst.Aws.Inputs.ElastigroupUpdatePolicyRollConfigStrategyArgs
                {
                    Action = "string",
                    BatchMinHealthyPercentage = 0,
                    OnFailure = new SpotInst.Aws.Inputs.ElastigroupUpdatePolicyRollConfigStrategyOnFailureArgs
                    {
                        ActionType = "string",
                        BatchNum = 0,
                        DrainingTimeout = 0,
                        ShouldDecrementTargetCapacity = false,
                        ShouldHandleAllBatches = false,
                    },
                    ShouldDrainInstances = false,
                },
                WaitForRollPercentage = 0,
                WaitForRollTimeout = 0,
            },
        },
        UserData = "string",
        UtilizeCommitments = false,
        UtilizeReservedInstances = false,
        WaitForCapacity = 0,
        WaitForCapacityTimeout = 0,
    });
    
    example, err := aws.NewElastigroup(ctx, "elastigroupResource", &aws.ElastigroupArgs{
    	FallbackToOndemand: pulumi.Bool(false),
    	Orientation:        pulumi.String("string"),
    	Product:            pulumi.String("string"),
    	SecurityGroups: pulumi.StringArray{
    		pulumi.String("string"),
    	},
    	AvailabilityZones: pulumi.StringArray{
    		pulumi.String("string"),
    	},
    	BlockDevicesMode:  pulumi.String("string"),
    	CapacityUnit:      pulumi.String("string"),
    	ConsiderOdPricing: pulumi.Bool(false),
    	CpuCredits:        pulumi.String("string"),
    	CpuOptions: &aws.ElastigroupCpuOptionsArgs{
    		ThreadsPerCore: pulumi.Int(0),
    	},
    	Description:     pulumi.String("string"),
    	DesiredCapacity: pulumi.Int(0),
    	DrainingTimeout: pulumi.Int(0),
    	EbsBlockDevices: aws.ElastigroupEbsBlockDeviceArray{
    		&aws.ElastigroupEbsBlockDeviceArgs{
    			DeviceName:          pulumi.String("string"),
    			DeleteOnTermination: pulumi.Bool(false),
    			Encrypted:           pulumi.Bool(false),
    			Iops:                pulumi.Int(0),
    			KmsKeyId:            pulumi.String("string"),
    			SnapshotId:          pulumi.String("string"),
    			Throughput:          pulumi.Int(0),
    			VolumeSize:          pulumi.Int(0),
    			VolumeType:          pulumi.String("string"),
    		},
    	},
    	EbsOptimized: pulumi.Bool(false),
    	ElasticIps: pulumi.StringArray{
    		pulumi.String("string"),
    	},
    	ElasticLoadBalancers: pulumi.StringArray{
    		pulumi.String("string"),
    	},
    	EnableMonitoring: pulumi.Bool(false),
    	EphemeralBlockDevices: aws.ElastigroupEphemeralBlockDeviceArray{
    		&aws.ElastigroupEphemeralBlockDeviceArgs{
    			DeviceName:  pulumi.String("string"),
    			VirtualName: pulumi.String("string"),
    		},
    	},
    	HealthCheckGracePeriod:                        pulumi.Int(0),
    	HealthCheckType:                               pulumi.String("string"),
    	HealthCheckUnhealthyDurationBeforeReplacement: pulumi.Int(0),
    	IamInstanceProfile:                            pulumi.String("string"),
    	ImageId:                                       pulumi.String("string"),
    	Images: aws.ElastigroupImageArray{
    		&aws.ElastigroupImageArgs{
    			Images: aws.ElastigroupImageImageArray{
    				&aws.ElastigroupImageImageArgs{
    					Id: pulumi.String("string"),
    				},
    			},
    		},
    	},
    	ImmediateOdRecoverThreshold: pulumi.Int(0),
    	InstanceTypesOndemand:       pulumi.String("string"),
    	InstanceTypesPreferredSpots: pulumi.StringArray{
    		pulumi.String("string"),
    	},
    	InstanceTypesSpots: pulumi.StringArray{
    		pulumi.String("string"),
    	},
    	InstanceTypesWeights: aws.ElastigroupInstanceTypesWeightArray{
    		&aws.ElastigroupInstanceTypesWeightArgs{
    			InstanceType: pulumi.String("string"),
    			Weight:       pulumi.Int(0),
    		},
    	},
    	IntegrationBeanstalk: &aws.ElastigroupIntegrationBeanstalkArgs{
    		DeploymentPreferences: &aws.ElastigroupIntegrationBeanstalkDeploymentPreferencesArgs{
    			AutomaticRoll:       pulumi.Bool(false),
    			BatchSizePercentage: pulumi.Int(0),
    			GracePeriod:         pulumi.Int(0),
    			Strategy: &aws.ElastigroupIntegrationBeanstalkDeploymentPreferencesStrategyArgs{
    				Action:               pulumi.String("string"),
    				ShouldDrainInstances: pulumi.Bool(false),
    			},
    		},
    		EnvironmentId: pulumi.String("string"),
    		ManagedActions: &aws.ElastigroupIntegrationBeanstalkManagedActionsArgs{
    			PlatformUpdate: &aws.ElastigroupIntegrationBeanstalkManagedActionsPlatformUpdateArgs{
    				PerformAt:   pulumi.String("string"),
    				TimeWindow:  pulumi.String("string"),
    				UpdateLevel: pulumi.String("string"),
    			},
    		},
    	},
    	IntegrationCodedeploy: &aws.ElastigroupIntegrationCodedeployArgs{
    		CleanupOnFailure: pulumi.Bool(false),
    		DeploymentGroups: aws.ElastigroupIntegrationCodedeployDeploymentGroupArray{
    			&aws.ElastigroupIntegrationCodedeployDeploymentGroupArgs{
    				ApplicationName:     pulumi.String("string"),
    				DeploymentGroupName: pulumi.String("string"),
    			},
    		},
    		TerminateInstanceOnFailure: pulumi.Bool(false),
    	},
    	IntegrationDockerSwarm: &aws.ElastigroupIntegrationDockerSwarmArgs{
    		MasterHost:        pulumi.String("string"),
    		MasterPort:        pulumi.Int(0),
    		AutoscaleCooldown: pulumi.Int(0),
    		AutoscaleDown: &aws.ElastigroupIntegrationDockerSwarmAutoscaleDownArgs{
    			EvaluationPeriods:      pulumi.Int(0),
    			MaxScaleDownPercentage: pulumi.Float64(0),
    		},
    		AutoscaleHeadroom: &aws.ElastigroupIntegrationDockerSwarmAutoscaleHeadroomArgs{
    			CpuPerUnit:    pulumi.Int(0),
    			MemoryPerUnit: pulumi.Int(0),
    			NumOfUnits:    pulumi.Int(0),
    		},
    		AutoscaleIsEnabled: pulumi.Bool(false),
    	},
    	IntegrationEcs: &aws.ElastigroupIntegrationEcsArgs{
    		ClusterName: pulumi.String("string"),
    		AutoscaleAttributes: aws.ElastigroupIntegrationEcsAutoscaleAttributeArray{
    			&aws.ElastigroupIntegrationEcsAutoscaleAttributeArgs{
    				Key:   pulumi.String("string"),
    				Value: pulumi.String("string"),
    			},
    		},
    		AutoscaleCooldown: pulumi.Int(0),
    		AutoscaleDown: &aws.ElastigroupIntegrationEcsAutoscaleDownArgs{
    			EvaluationPeriods:      pulumi.Int(0),
    			MaxScaleDownPercentage: pulumi.Float64(0),
    		},
    		AutoscaleHeadroom: &aws.ElastigroupIntegrationEcsAutoscaleHeadroomArgs{
    			CpuPerUnit:    pulumi.Int(0),
    			MemoryPerUnit: pulumi.Int(0),
    			NumOfUnits:    pulumi.Int(0),
    		},
    		AutoscaleIsAutoConfig:             pulumi.Bool(false),
    		AutoscaleIsEnabled:                pulumi.Bool(false),
    		AutoscaleScaleDownNonServiceTasks: pulumi.Bool(false),
    		Batch: &aws.ElastigroupIntegrationEcsBatchArgs{
    			JobQueueNames: pulumi.StringArray{
    				pulumi.String("string"),
    			},
    		},
    	},
    	IntegrationGitlab: &aws.ElastigroupIntegrationGitlabArgs{
    		Runner: &aws.ElastigroupIntegrationGitlabRunnerArgs{
    			IsEnabled: pulumi.Bool(false),
    		},
    	},
    	IntegrationKubernetes: &aws.ElastigroupIntegrationKubernetesArgs{
    		ApiServer:         pulumi.String("string"),
    		AutoscaleCooldown: pulumi.Int(0),
    		AutoscaleDown: &aws.ElastigroupIntegrationKubernetesAutoscaleDownArgs{
    			EvaluationPeriods:      pulumi.Int(0),
    			MaxScaleDownPercentage: pulumi.Float64(0),
    		},
    		AutoscaleHeadroom: &aws.ElastigroupIntegrationKubernetesAutoscaleHeadroomArgs{
    			CpuPerUnit:    pulumi.Int(0),
    			MemoryPerUnit: pulumi.Int(0),
    			NumOfUnits:    pulumi.Int(0),
    		},
    		AutoscaleIsAutoConfig: pulumi.Bool(false),
    		AutoscaleIsEnabled:    pulumi.Bool(false),
    		AutoscaleLabels: aws.ElastigroupIntegrationKubernetesAutoscaleLabelArray{
    			&aws.ElastigroupIntegrationKubernetesAutoscaleLabelArgs{
    				Key:   pulumi.String("string"),
    				Value: pulumi.String("string"),
    			},
    		},
    		ClusterIdentifier: pulumi.String("string"),
    		IntegrationMode:   pulumi.String("string"),
    		Token:             pulumi.String("string"),
    	},
    	IntegrationMesosphere: &aws.ElastigroupIntegrationMesosphereArgs{
    		ApiServer: pulumi.String("string"),
    	},
    	IntegrationNomad: &aws.ElastigroupIntegrationNomadArgs{
    		MasterHost: pulumi.String("string"),
    		MasterPort: pulumi.Int(0),
    		AclToken:   pulumi.String("string"),
    		AutoscaleConstraints: aws.ElastigroupIntegrationNomadAutoscaleConstraintArray{
    			&aws.ElastigroupIntegrationNomadAutoscaleConstraintArgs{
    				Key:   pulumi.String("string"),
    				Value: pulumi.String("string"),
    			},
    		},
    		AutoscaleCooldown: pulumi.Int(0),
    		AutoscaleDown: &aws.ElastigroupIntegrationNomadAutoscaleDownArgs{
    			EvaluationPeriods: pulumi.Int(0),
    		},
    		AutoscaleHeadroom: &aws.ElastigroupIntegrationNomadAutoscaleHeadroomArgs{
    			CpuPerUnit:    pulumi.Int(0),
    			MemoryPerUnit: pulumi.Int(0),
    			NumOfUnits:    pulumi.Int(0),
    		},
    		AutoscaleIsEnabled: pulumi.Bool(false),
    	},
    	IntegrationRancher: &aws.ElastigroupIntegrationRancherArgs{
    		AccessKey:  pulumi.String("string"),
    		MasterHost: pulumi.String("string"),
    		SecretKey:  pulumi.String("string"),
    		Version:    pulumi.String("string"),
    	},
    	IntegrationRoute53: &aws.ElastigroupIntegrationRoute53Args{
    		Domains: aws.ElastigroupIntegrationRoute53DomainArray{
    			&aws.ElastigroupIntegrationRoute53DomainArgs{
    				HostedZoneId: pulumi.String("string"),
    				RecordSets: aws.ElastigroupIntegrationRoute53DomainRecordSetArray{
    					&aws.ElastigroupIntegrationRoute53DomainRecordSetArgs{
    						Name:         pulumi.String("string"),
    						UsePublicDns: pulumi.Bool(false),
    						UsePublicIp:  pulumi.Bool(false),
    					},
    				},
    				RecordSetType:  pulumi.String("string"),
    				SpotinstAcctId: pulumi.String("string"),
    			},
    		},
    	},
    	Itfs: aws.ElastigroupItfArray{
    		&aws.ElastigroupItfArgs{
    			FixedTargetGroups: pulumi.Bool(false),
    			LoadBalancers: aws.ElastigroupItfLoadBalancerArray{
    				&aws.ElastigroupItfLoadBalancerArgs{
    					ListenerRules: aws.ElastigroupItfLoadBalancerListenerRuleArray{
    						&aws.ElastigroupItfLoadBalancerListenerRuleArgs{
    							RuleArn: pulumi.String("string"),
    							StaticTargetGroup: &aws.ElastigroupItfLoadBalancerListenerRuleStaticTargetGroupArgs{
    								Arn:        pulumi.String("string"),
    								Percentage: pulumi.Float64(0),
    							},
    						},
    					},
    					LoadBalancerArn: pulumi.String("string"),
    				},
    			},
    			TargetGroupConfigs: aws.ElastigroupItfTargetGroupConfigArray{
    				&aws.ElastigroupItfTargetGroupConfigArgs{
    					Port:            pulumi.Int(0),
    					HealthCheckPath: pulumi.String("string"),
    					VpcId:           pulumi.String("string"),
    					Protocol:        pulumi.String("string"),
    					Matchers: aws.ElastigroupItfTargetGroupConfigMatcherArray{
    						&aws.ElastigroupItfTargetGroupConfigMatcherArgs{
    							GrpcCode: pulumi.String("string"),
    							HttpCode: pulumi.String("string"),
    						},
    					},
    					HealthyThresholdCount:      pulumi.Int(0),
    					HealthCheckIntervalSeconds: pulumi.Int(0),
    					HealthCheckTimeoutSeconds:  pulumi.Int(0),
    					HealthCheckProtocol:        pulumi.String("string"),
    					ProtocolVersion:            pulumi.String("string"),
    					Tags: aws.ElastigroupItfTargetGroupConfigTagArray{
    						&aws.ElastigroupItfTargetGroupConfigTagArgs{
    							TagKey:   pulumi.String("string"),
    							TagValue: pulumi.String("string"),
    						},
    					},
    					UnhealthyThresholdCount: pulumi.Int(0),
    					HealthCheckPort:         pulumi.String("string"),
    				},
    			},
    			WeightStrategy: pulumi.String("string"),
    			DefaultStaticTargetGroup: &aws.ElastigroupItfDefaultStaticTargetGroupArgs{
    				Arn:        pulumi.String("string"),
    				Percentage: pulumi.Float64(0),
    			},
    			MigrationHealthinessThreshold: pulumi.Int(0),
    		},
    	},
    	KeyName:        pulumi.String("string"),
    	LifetimePeriod: pulumi.String("string"),
    	Logging: &aws.ElastigroupLoggingArgs{
    		Export: &aws.ElastigroupLoggingExportArgs{
    			S3s: aws.ElastigroupLoggingExportS3Array{
    				&aws.ElastigroupLoggingExportS3Args{
    					Id: pulumi.String("string"),
    				},
    			},
    		},
    	},
    	MaxSize: pulumi.Int(0),
    	MetadataOptions: &aws.ElastigroupMetadataOptionsArgs{
    		HttpTokens:              pulumi.String("string"),
    		HttpPutResponseHopLimit: pulumi.Int(0),
    		InstanceMetadataTags:    pulumi.String("string"),
    	},
    	MinSize:                 pulumi.Int(0),
    	MinimumInstanceLifetime: pulumi.Int(0),
    	MultipleMetrics: &aws.ElastigroupMultipleMetricsArgs{
    		Expressions: aws.ElastigroupMultipleMetricsExpressionArray{
    			&aws.ElastigroupMultipleMetricsExpressionArgs{
    				Expression: pulumi.String("string"),
    				Name:       pulumi.String("string"),
    			},
    		},
    		Metrics: aws.ElastigroupMultipleMetricsMetricArray{
    			&aws.ElastigroupMultipleMetricsMetricArgs{
    				MetricName: pulumi.String("string"),
    				Name:       pulumi.String("string"),
    				Namespace:  pulumi.String("string"),
    				Dimensions: aws.ElastigroupMultipleMetricsMetricDimensionArray{
    					&aws.ElastigroupMultipleMetricsMetricDimensionArgs{
    						Name:  pulumi.String("string"),
    						Value: pulumi.String("string"),
    					},
    				},
    				ExtendedStatistic: pulumi.String("string"),
    				Statistic:         pulumi.String("string"),
    				Unit:              pulumi.String("string"),
    			},
    		},
    	},
    	Name: pulumi.String("string"),
    	NetworkInterfaces: aws.ElastigroupNetworkInterfaceArray{
    		&aws.ElastigroupNetworkInterfaceArgs{
    			DeviceIndex:                    pulumi.String("string"),
    			AssociateIpv6Address:           pulumi.Bool(false),
    			AssociatePublicIpAddress:       pulumi.Bool(false),
    			DeleteOnTermination:            pulumi.Bool(false),
    			Description:                    pulumi.String("string"),
    			NetworkInterfaceId:             pulumi.String("string"),
    			PrivateIpAddress:               pulumi.String("string"),
    			SecondaryPrivateIpAddressCount: pulumi.String("string"),
    		},
    	},
    	OnDemandTypes: pulumi.StringArray{
    		pulumi.String("string"),
    	},
    	OndemandCount:       pulumi.Int(0),
    	PersistBlockDevices: pulumi.Bool(false),
    	PersistPrivateIp:    pulumi.Bool(false),
    	PersistRootDevice:   pulumi.Bool(false),
    	PlacementTenancy:    pulumi.String("string"),
    	PreferredAvailabilityZones: pulumi.StringArray{
    		pulumi.String("string"),
    	},
    	PrivateIps: pulumi.StringArray{
    		pulumi.String("string"),
    	},
    	Region: pulumi.String("string"),
    	ResourceRequirements: aws.ElastigroupResourceRequirementArray{
    		&aws.ElastigroupResourceRequirementArgs{
    			RequiredMemoryMaximum: pulumi.Int(0),
    			RequiredMemoryMinimum: pulumi.Int(0),
    			RequiredVcpuMaximum:   pulumi.Int(0),
    			RequiredVcpuMinimum:   pulumi.Int(0),
    			ExcludedInstanceFamilies: pulumi.StringArray{
    				pulumi.String("string"),
    			},
    			ExcludedInstanceGenerations: pulumi.StringArray{
    				pulumi.String("string"),
    			},
    			ExcludedInstanceTypes: pulumi.StringArray{
    				pulumi.String("string"),
    			},
    			RequiredGpuMaximum: pulumi.Int(0),
    			RequiredGpuMinimum: pulumi.Int(0),
    		},
    	},
    	ResourceTagSpecifications: aws.ElastigroupResourceTagSpecificationArray{
    		&aws.ElastigroupResourceTagSpecificationArgs{
    			ShouldTagAmis:      pulumi.Bool(false),
    			ShouldTagEnis:      pulumi.Bool(false),
    			ShouldTagSnapshots: pulumi.Bool(false),
    			ShouldTagVolumes:   pulumi.Bool(false),
    		},
    	},
    	RevertToSpot: &aws.ElastigroupRevertToSpotArgs{
    		PerformAt: pulumi.String("string"),
    		TimeWindows: pulumi.StringArray{
    			pulumi.String("string"),
    		},
    	},
    	ScalingDownPolicies: aws.ElastigroupScalingDownPolicyArray{
    		&aws.ElastigroupScalingDownPolicyArgs{
    			MetricName:        pulumi.String("string"),
    			PolicyName:        pulumi.String("string"),
    			Namespace:         pulumi.String("string"),
    			Minimum:           pulumi.String("string"),
    			Operator:          pulumi.String("string"),
    			IsEnabled:         pulumi.Bool(false),
    			MaxTargetCapacity: pulumi.String("string"),
    			Maximum:           pulumi.String("string"),
    			Dimensions: aws.ElastigroupScalingDownPolicyDimensionArray{
    				&aws.ElastigroupScalingDownPolicyDimensionArgs{
    					Name:  pulumi.String("string"),
    					Value: pulumi.String("string"),
    				},
    			},
    			MinTargetCapacity: pulumi.String("string"),
    			ActionType:        pulumi.String("string"),
    			Cooldown:          pulumi.Int(0),
    			EvaluationPeriods: pulumi.Int(0),
    			Period:            pulumi.Int(0),
    			Adjustment:        pulumi.String("string"),
    			Source:            pulumi.String("string"),
    			Statistic:         pulumi.String("string"),
    			StepAdjustments: aws.ElastigroupScalingDownPolicyStepAdjustmentArray{
    				&aws.ElastigroupScalingDownPolicyStepAdjustmentArgs{
    					Action: &aws.ElastigroupScalingDownPolicyStepAdjustmentActionArgs{
    						Type:              pulumi.String("string"),
    						Adjustment:        pulumi.String("string"),
    						MaxTargetCapacity: pulumi.String("string"),
    						Maximum:           pulumi.String("string"),
    						MinTargetCapacity: pulumi.String("string"),
    						Minimum:           pulumi.String("string"),
    						Target:            pulumi.String("string"),
    					},
    					Threshold: pulumi.Int(0),
    				},
    			},
    			Target:    pulumi.String("string"),
    			Threshold: pulumi.Float64(0),
    			Unit:      pulumi.String("string"),
    		},
    	},
    	ScalingStrategies: aws.ElastigroupScalingStrategyArray{
    		&aws.ElastigroupScalingStrategyArgs{
    			TerminateAtEndOfBillingHour: pulumi.Bool(false),
    			TerminationPolicy:           pulumi.String("string"),
    		},
    	},
    	ScalingTargetPolicies: aws.ElastigroupScalingTargetPolicyArray{
    		&aws.ElastigroupScalingTargetPolicyArgs{
    			MetricName:          pulumi.String("string"),
    			Target:              pulumi.Float64(0),
    			PolicyName:          pulumi.String("string"),
    			Namespace:           pulumi.String("string"),
    			Period:              pulumi.Int(0),
    			MaxCapacityPerScale: pulumi.String("string"),
    			Cooldown:            pulumi.Int(0),
    			EvaluationPeriods:   pulumi.Int(0),
    			PredictiveMode:      pulumi.String("string"),
    			Source:              pulumi.String("string"),
    			Statistic:           pulumi.String("string"),
    			Dimensions: aws.ElastigroupScalingTargetPolicyDimensionArray{
    				&aws.ElastigroupScalingTargetPolicyDimensionArgs{
    					Name:  pulumi.String("string"),
    					Value: pulumi.String("string"),
    				},
    			},
    			Unit: pulumi.String("string"),
    		},
    	},
    	ScalingUpPolicies: aws.ElastigroupScalingUpPolicyArray{
    		&aws.ElastigroupScalingUpPolicyArgs{
    			MetricName:        pulumi.String("string"),
    			PolicyName:        pulumi.String("string"),
    			Namespace:         pulumi.String("string"),
    			Minimum:           pulumi.String("string"),
    			Operator:          pulumi.String("string"),
    			IsEnabled:         pulumi.Bool(false),
    			MaxTargetCapacity: pulumi.String("string"),
    			Maximum:           pulumi.String("string"),
    			Dimensions: aws.ElastigroupScalingUpPolicyDimensionArray{
    				&aws.ElastigroupScalingUpPolicyDimensionArgs{
    					Name:  pulumi.String("string"),
    					Value: pulumi.String("string"),
    				},
    			},
    			MinTargetCapacity: pulumi.String("string"),
    			ActionType:        pulumi.String("string"),
    			Cooldown:          pulumi.Int(0),
    			EvaluationPeriods: pulumi.Int(0),
    			Period:            pulumi.Int(0),
    			Adjustment:        pulumi.String("string"),
    			Source:            pulumi.String("string"),
    			Statistic:         pulumi.String("string"),
    			StepAdjustments: aws.ElastigroupScalingUpPolicyStepAdjustmentArray{
    				&aws.ElastigroupScalingUpPolicyStepAdjustmentArgs{
    					Action: &aws.ElastigroupScalingUpPolicyStepAdjustmentActionArgs{
    						Type:              pulumi.String("string"),
    						Adjustment:        pulumi.String("string"),
    						MaxTargetCapacity: pulumi.String("string"),
    						Maximum:           pulumi.String("string"),
    						MinTargetCapacity: pulumi.String("string"),
    						Minimum:           pulumi.String("string"),
    						Target:            pulumi.String("string"),
    					},
    					Threshold: pulumi.Int(0),
    				},
    			},
    			Target:    pulumi.String("string"),
    			Threshold: pulumi.Float64(0),
    			Unit:      pulumi.String("string"),
    		},
    	},
    	ScheduledTasks: aws.ElastigroupScheduledTaskArray{
    		&aws.ElastigroupScheduledTaskArgs{
    			TaskType:             pulumi.String("string"),
    			IsEnabled:            pulumi.Bool(false),
    			MinCapacity:          pulumi.String("string"),
    			CronExpression:       pulumi.String("string"),
    			Frequency:            pulumi.String("string"),
    			GracePeriod:          pulumi.String("string"),
    			Adjustment:           pulumi.String("string"),
    			MaxCapacity:          pulumi.String("string"),
    			BatchSizePercentage:  pulumi.String("string"),
    			ScaleMaxCapacity:     pulumi.String("string"),
    			ScaleMinCapacity:     pulumi.String("string"),
    			ScaleTargetCapacity:  pulumi.String("string"),
    			StartTime:            pulumi.String("string"),
    			TargetCapacity:       pulumi.String("string"),
    			AdjustmentPercentage: pulumi.String("string"),
    		},
    	},
    	ShutdownScript: pulumi.String("string"),
    	Signals: aws.ElastigroupSignalArray{
    		&aws.ElastigroupSignalArgs{
    			Name:    pulumi.String("string"),
    			Timeout: pulumi.Int(0),
    		},
    	},
    	SpotPercentage: pulumi.Int(0),
    	StatefulDeallocation: &aws.ElastigroupStatefulDeallocationArgs{
    		ShouldDeleteImages:            pulumi.Bool(false),
    		ShouldDeleteNetworkInterfaces: pulumi.Bool(false),
    		ShouldDeleteSnapshots:         pulumi.Bool(false),
    		ShouldDeleteVolumes:           pulumi.Bool(false),
    	},
    	StatefulInstanceActions: aws.ElastigroupStatefulInstanceActionArray{
    		&aws.ElastigroupStatefulInstanceActionArgs{
    			StatefulInstanceId: pulumi.String("string"),
    			Type:               pulumi.String("string"),
    		},
    	},
    	SubnetIds: pulumi.StringArray{
    		pulumi.String("string"),
    	},
    	Tags: aws.ElastigroupTagArray{
    		&aws.ElastigroupTagArgs{
    			Key:   pulumi.String("string"),
    			Value: pulumi.String("string"),
    		},
    	},
    	TargetGroupArns: pulumi.StringArray{
    		pulumi.String("string"),
    	},
    	UpdatePolicy: &aws.ElastigroupUpdatePolicyArgs{
    		ShouldResumeStateful: pulumi.Bool(false),
    		ShouldRoll:           pulumi.Bool(false),
    		AutoApplyTags:        pulumi.Bool(false),
    		RollConfig: &aws.ElastigroupUpdatePolicyRollConfigArgs{
    			BatchSizePercentage: pulumi.Int(0),
    			GracePeriod:         pulumi.Int(0),
    			HealthCheckType:     pulumi.String("string"),
    			Strategy: &aws.ElastigroupUpdatePolicyRollConfigStrategyArgs{
    				Action:                    pulumi.String("string"),
    				BatchMinHealthyPercentage: pulumi.Int(0),
    				OnFailure: &aws.ElastigroupUpdatePolicyRollConfigStrategyOnFailureArgs{
    					ActionType:                    pulumi.String("string"),
    					BatchNum:                      pulumi.Int(0),
    					DrainingTimeout:               pulumi.Int(0),
    					ShouldDecrementTargetCapacity: pulumi.Bool(false),
    					ShouldHandleAllBatches:        pulumi.Bool(false),
    				},
    				ShouldDrainInstances: pulumi.Bool(false),
    			},
    			WaitForRollPercentage: pulumi.Float64(0),
    			WaitForRollTimeout:    pulumi.Int(0),
    		},
    	},
    	UserData:                 pulumi.String("string"),
    	UtilizeCommitments:       pulumi.Bool(false),
    	UtilizeReservedInstances: pulumi.Bool(false),
    	WaitForCapacity:          pulumi.Int(0),
    	WaitForCapacityTimeout:   pulumi.Int(0),
    })
    
    var elastigroupResource = new Elastigroup("elastigroupResource", ElastigroupArgs.builder()        
        .fallbackToOndemand(false)
        .orientation("string")
        .product("string")
        .securityGroups("string")
        .availabilityZones("string")
        .blockDevicesMode("string")
        .capacityUnit("string")
        .considerOdPricing(false)
        .cpuCredits("string")
        .cpuOptions(ElastigroupCpuOptionsArgs.builder()
            .threadsPerCore(0)
            .build())
        .description("string")
        .desiredCapacity(0)
        .drainingTimeout(0)
        .ebsBlockDevices(ElastigroupEbsBlockDeviceArgs.builder()
            .deviceName("string")
            .deleteOnTermination(false)
            .encrypted(false)
            .iops(0)
            .kmsKeyId("string")
            .snapshotId("string")
            .throughput(0)
            .volumeSize(0)
            .volumeType("string")
            .build())
        .ebsOptimized(false)
        .elasticIps("string")
        .elasticLoadBalancers("string")
        .enableMonitoring(false)
        .ephemeralBlockDevices(ElastigroupEphemeralBlockDeviceArgs.builder()
            .deviceName("string")
            .virtualName("string")
            .build())
        .healthCheckGracePeriod(0)
        .healthCheckType("string")
        .healthCheckUnhealthyDurationBeforeReplacement(0)
        .iamInstanceProfile("string")
        .imageId("string")
        .images(ElastigroupImageArgs.builder()
            .images(ElastigroupImageImageArgs.builder()
                .id("string")
                .build())
            .build())
        .immediateOdRecoverThreshold(0)
        .instanceTypesOndemand("string")
        .instanceTypesPreferredSpots("string")
        .instanceTypesSpots("string")
        .instanceTypesWeights(ElastigroupInstanceTypesWeightArgs.builder()
            .instanceType("string")
            .weight(0)
            .build())
        .integrationBeanstalk(ElastigroupIntegrationBeanstalkArgs.builder()
            .deploymentPreferences(ElastigroupIntegrationBeanstalkDeploymentPreferencesArgs.builder()
                .automaticRoll(false)
                .batchSizePercentage(0)
                .gracePeriod(0)
                .strategy(ElastigroupIntegrationBeanstalkDeploymentPreferencesStrategyArgs.builder()
                    .action("string")
                    .shouldDrainInstances(false)
                    .build())
                .build())
            .environmentId("string")
            .managedActions(ElastigroupIntegrationBeanstalkManagedActionsArgs.builder()
                .platformUpdate(ElastigroupIntegrationBeanstalkManagedActionsPlatformUpdateArgs.builder()
                    .performAt("string")
                    .timeWindow("string")
                    .updateLevel("string")
                    .build())
                .build())
            .build())
        .integrationCodedeploy(ElastigroupIntegrationCodedeployArgs.builder()
            .cleanupOnFailure(false)
            .deploymentGroups(ElastigroupIntegrationCodedeployDeploymentGroupArgs.builder()
                .applicationName("string")
                .deploymentGroupName("string")
                .build())
            .terminateInstanceOnFailure(false)
            .build())
        .integrationDockerSwarm(ElastigroupIntegrationDockerSwarmArgs.builder()
            .masterHost("string")
            .masterPort(0)
            .autoscaleCooldown(0)
            .autoscaleDown(ElastigroupIntegrationDockerSwarmAutoscaleDownArgs.builder()
                .evaluationPeriods(0)
                .maxScaleDownPercentage(0)
                .build())
            .autoscaleHeadroom(ElastigroupIntegrationDockerSwarmAutoscaleHeadroomArgs.builder()
                .cpuPerUnit(0)
                .memoryPerUnit(0)
                .numOfUnits(0)
                .build())
            .autoscaleIsEnabled(false)
            .build())
        .integrationEcs(ElastigroupIntegrationEcsArgs.builder()
            .clusterName("string")
            .autoscaleAttributes(ElastigroupIntegrationEcsAutoscaleAttributeArgs.builder()
                .key("string")
                .value("string")
                .build())
            .autoscaleCooldown(0)
            .autoscaleDown(ElastigroupIntegrationEcsAutoscaleDownArgs.builder()
                .evaluationPeriods(0)
                .maxScaleDownPercentage(0)
                .build())
            .autoscaleHeadroom(ElastigroupIntegrationEcsAutoscaleHeadroomArgs.builder()
                .cpuPerUnit(0)
                .memoryPerUnit(0)
                .numOfUnits(0)
                .build())
            .autoscaleIsAutoConfig(false)
            .autoscaleIsEnabled(false)
            .autoscaleScaleDownNonServiceTasks(false)
            .batch(ElastigroupIntegrationEcsBatchArgs.builder()
                .jobQueueNames("string")
                .build())
            .build())
        .integrationGitlab(ElastigroupIntegrationGitlabArgs.builder()
            .runner(ElastigroupIntegrationGitlabRunnerArgs.builder()
                .isEnabled(false)
                .build())
            .build())
        .integrationKubernetes(ElastigroupIntegrationKubernetesArgs.builder()
            .apiServer("string")
            .autoscaleCooldown(0)
            .autoscaleDown(ElastigroupIntegrationKubernetesAutoscaleDownArgs.builder()
                .evaluationPeriods(0)
                .maxScaleDownPercentage(0)
                .build())
            .autoscaleHeadroom(ElastigroupIntegrationKubernetesAutoscaleHeadroomArgs.builder()
                .cpuPerUnit(0)
                .memoryPerUnit(0)
                .numOfUnits(0)
                .build())
            .autoscaleIsAutoConfig(false)
            .autoscaleIsEnabled(false)
            .autoscaleLabels(ElastigroupIntegrationKubernetesAutoscaleLabelArgs.builder()
                .key("string")
                .value("string")
                .build())
            .clusterIdentifier("string")
            .integrationMode("string")
            .token("string")
            .build())
        .integrationMesosphere(ElastigroupIntegrationMesosphereArgs.builder()
            .apiServer("string")
            .build())
        .integrationNomad(ElastigroupIntegrationNomadArgs.builder()
            .masterHost("string")
            .masterPort(0)
            .aclToken("string")
            .autoscaleConstraints(ElastigroupIntegrationNomadAutoscaleConstraintArgs.builder()
                .key("string")
                .value("string")
                .build())
            .autoscaleCooldown(0)
            .autoscaleDown(ElastigroupIntegrationNomadAutoscaleDownArgs.builder()
                .evaluationPeriods(0)
                .build())
            .autoscaleHeadroom(ElastigroupIntegrationNomadAutoscaleHeadroomArgs.builder()
                .cpuPerUnit(0)
                .memoryPerUnit(0)
                .numOfUnits(0)
                .build())
            .autoscaleIsEnabled(false)
            .build())
        .integrationRancher(ElastigroupIntegrationRancherArgs.builder()
            .accessKey("string")
            .masterHost("string")
            .secretKey("string")
            .version("string")
            .build())
        .integrationRoute53(ElastigroupIntegrationRoute53Args.builder()
            .domains(ElastigroupIntegrationRoute53DomainArgs.builder()
                .hostedZoneId("string")
                .recordSets(ElastigroupIntegrationRoute53DomainRecordSetArgs.builder()
                    .name("string")
                    .usePublicDns(false)
                    .usePublicIp(false)
                    .build())
                .recordSetType("string")
                .spotinstAcctId("string")
                .build())
            .build())
        .itfs(ElastigroupItfArgs.builder()
            .fixedTargetGroups(false)
            .loadBalancers(ElastigroupItfLoadBalancerArgs.builder()
                .listenerRules(ElastigroupItfLoadBalancerListenerRuleArgs.builder()
                    .ruleArn("string")
                    .staticTargetGroup(ElastigroupItfLoadBalancerListenerRuleStaticTargetGroupArgs.builder()
                        .arn("string")
                        .percentage(0)
                        .build())
                    .build())
                .loadBalancerArn("string")
                .build())
            .targetGroupConfigs(ElastigroupItfTargetGroupConfigArgs.builder()
                .port(0)
                .healthCheckPath("string")
                .vpcId("string")
                .protocol("string")
                .matchers(ElastigroupItfTargetGroupConfigMatcherArgs.builder()
                    .grpcCode("string")
                    .httpCode("string")
                    .build())
                .healthyThresholdCount(0)
                .healthCheckIntervalSeconds(0)
                .healthCheckTimeoutSeconds(0)
                .healthCheckProtocol("string")
                .protocolVersion("string")
                .tags(ElastigroupItfTargetGroupConfigTagArgs.builder()
                    .tagKey("string")
                    .tagValue("string")
                    .build())
                .unhealthyThresholdCount(0)
                .healthCheckPort("string")
                .build())
            .weightStrategy("string")
            .defaultStaticTargetGroup(ElastigroupItfDefaultStaticTargetGroupArgs.builder()
                .arn("string")
                .percentage(0)
                .build())
            .migrationHealthinessThreshold(0)
            .build())
        .keyName("string")
        .lifetimePeriod("string")
        .logging(ElastigroupLoggingArgs.builder()
            .export(ElastigroupLoggingExportArgs.builder()
                .s3s(ElastigroupLoggingExportS3Args.builder()
                    .id("string")
                    .build())
                .build())
            .build())
        .maxSize(0)
        .metadataOptions(ElastigroupMetadataOptionsArgs.builder()
            .httpTokens("string")
            .httpPutResponseHopLimit(0)
            .instanceMetadataTags("string")
            .build())
        .minSize(0)
        .minimumInstanceLifetime(0)
        .multipleMetrics(ElastigroupMultipleMetricsArgs.builder()
            .expressions(ElastigroupMultipleMetricsExpressionArgs.builder()
                .expression("string")
                .name("string")
                .build())
            .metrics(ElastigroupMultipleMetricsMetricArgs.builder()
                .metricName("string")
                .name("string")
                .namespace("string")
                .dimensions(ElastigroupMultipleMetricsMetricDimensionArgs.builder()
                    .name("string")
                    .value("string")
                    .build())
                .extendedStatistic("string")
                .statistic("string")
                .unit("string")
                .build())
            .build())
        .name("string")
        .networkInterfaces(ElastigroupNetworkInterfaceArgs.builder()
            .deviceIndex("string")
            .associateIpv6Address(false)
            .associatePublicIpAddress(false)
            .deleteOnTermination(false)
            .description("string")
            .networkInterfaceId("string")
            .privateIpAddress("string")
            .secondaryPrivateIpAddressCount("string")
            .build())
        .onDemandTypes("string")
        .ondemandCount(0)
        .persistBlockDevices(false)
        .persistPrivateIp(false)
        .persistRootDevice(false)
        .placementTenancy("string")
        .preferredAvailabilityZones("string")
        .privateIps("string")
        .region("string")
        .resourceRequirements(ElastigroupResourceRequirementArgs.builder()
            .requiredMemoryMaximum(0)
            .requiredMemoryMinimum(0)
            .requiredVcpuMaximum(0)
            .requiredVcpuMinimum(0)
            .excludedInstanceFamilies("string")
            .excludedInstanceGenerations("string")
            .excludedInstanceTypes("string")
            .requiredGpuMaximum(0)
            .requiredGpuMinimum(0)
            .build())
        .resourceTagSpecifications(ElastigroupResourceTagSpecificationArgs.builder()
            .shouldTagAmis(false)
            .shouldTagEnis(false)
            .shouldTagSnapshots(false)
            .shouldTagVolumes(false)
            .build())
        .revertToSpot(ElastigroupRevertToSpotArgs.builder()
            .performAt("string")
            .timeWindows("string")
            .build())
        .scalingDownPolicies(ElastigroupScalingDownPolicyArgs.builder()
            .metricName("string")
            .policyName("string")
            .namespace("string")
            .minimum("string")
            .operator("string")
            .isEnabled(false)
            .maxTargetCapacity("string")
            .maximum("string")
            .dimensions(ElastigroupScalingDownPolicyDimensionArgs.builder()
                .name("string")
                .value("string")
                .build())
            .minTargetCapacity("string")
            .actionType("string")
            .cooldown(0)
            .evaluationPeriods(0)
            .period(0)
            .adjustment("string")
            .source("string")
            .statistic("string")
            .stepAdjustments(ElastigroupScalingDownPolicyStepAdjustmentArgs.builder()
                .action(ElastigroupScalingDownPolicyStepAdjustmentActionArgs.builder()
                    .type("string")
                    .adjustment("string")
                    .maxTargetCapacity("string")
                    .maximum("string")
                    .minTargetCapacity("string")
                    .minimum("string")
                    .target("string")
                    .build())
                .threshold(0)
                .build())
            .target("string")
            .threshold(0)
            .unit("string")
            .build())
        .scalingStrategies(ElastigroupScalingStrategyArgs.builder()
            .terminateAtEndOfBillingHour(false)
            .terminationPolicy("string")
            .build())
        .scalingTargetPolicies(ElastigroupScalingTargetPolicyArgs.builder()
            .metricName("string")
            .target(0)
            .policyName("string")
            .namespace("string")
            .period(0)
            .maxCapacityPerScale("string")
            .cooldown(0)
            .evaluationPeriods(0)
            .predictiveMode("string")
            .source("string")
            .statistic("string")
            .dimensions(ElastigroupScalingTargetPolicyDimensionArgs.builder()
                .name("string")
                .value("string")
                .build())
            .unit("string")
            .build())
        .scalingUpPolicies(ElastigroupScalingUpPolicyArgs.builder()
            .metricName("string")
            .policyName("string")
            .namespace("string")
            .minimum("string")
            .operator("string")
            .isEnabled(false)
            .maxTargetCapacity("string")
            .maximum("string")
            .dimensions(ElastigroupScalingUpPolicyDimensionArgs.builder()
                .name("string")
                .value("string")
                .build())
            .minTargetCapacity("string")
            .actionType("string")
            .cooldown(0)
            .evaluationPeriods(0)
            .period(0)
            .adjustment("string")
            .source("string")
            .statistic("string")
            .stepAdjustments(ElastigroupScalingUpPolicyStepAdjustmentArgs.builder()
                .action(ElastigroupScalingUpPolicyStepAdjustmentActionArgs.builder()
                    .type("string")
                    .adjustment("string")
                    .maxTargetCapacity("string")
                    .maximum("string")
                    .minTargetCapacity("string")
                    .minimum("string")
                    .target("string")
                    .build())
                .threshold(0)
                .build())
            .target("string")
            .threshold(0)
            .unit("string")
            .build())
        .scheduledTasks(ElastigroupScheduledTaskArgs.builder()
            .taskType("string")
            .isEnabled(false)
            .minCapacity("string")
            .cronExpression("string")
            .frequency("string")
            .gracePeriod("string")
            .adjustment("string")
            .maxCapacity("string")
            .batchSizePercentage("string")
            .scaleMaxCapacity("string")
            .scaleMinCapacity("string")
            .scaleTargetCapacity("string")
            .startTime("string")
            .targetCapacity("string")
            .adjustmentPercentage("string")
            .build())
        .shutdownScript("string")
        .signals(ElastigroupSignalArgs.builder()
            .name("string")
            .timeout(0)
            .build())
        .spotPercentage(0)
        .statefulDeallocation(ElastigroupStatefulDeallocationArgs.builder()
            .shouldDeleteImages(false)
            .shouldDeleteNetworkInterfaces(false)
            .shouldDeleteSnapshots(false)
            .shouldDeleteVolumes(false)
            .build())
        .statefulInstanceActions(ElastigroupStatefulInstanceActionArgs.builder()
            .statefulInstanceId("string")
            .type("string")
            .build())
        .subnetIds("string")
        .tags(ElastigroupTagArgs.builder()
            .key("string")
            .value("string")
            .build())
        .targetGroupArns("string")
        .updatePolicy(ElastigroupUpdatePolicyArgs.builder()
            .shouldResumeStateful(false)
            .shouldRoll(false)
            .autoApplyTags(false)
            .rollConfig(ElastigroupUpdatePolicyRollConfigArgs.builder()
                .batchSizePercentage(0)
                .gracePeriod(0)
                .healthCheckType("string")
                .strategy(ElastigroupUpdatePolicyRollConfigStrategyArgs.builder()
                    .action("string")
                    .batchMinHealthyPercentage(0)
                    .onFailure(ElastigroupUpdatePolicyRollConfigStrategyOnFailureArgs.builder()
                        .actionType("string")
                        .batchNum(0)
                        .drainingTimeout(0)
                        .shouldDecrementTargetCapacity(false)
                        .shouldHandleAllBatches(false)
                        .build())
                    .shouldDrainInstances(false)
                    .build())
                .waitForRollPercentage(0)
                .waitForRollTimeout(0)
                .build())
            .build())
        .userData("string")
        .utilizeCommitments(false)
        .utilizeReservedInstances(false)
        .waitForCapacity(0)
        .waitForCapacityTimeout(0)
        .build());
    
    elastigroup_resource = spotinst.aws.Elastigroup("elastigroupResource",
        fallback_to_ondemand=False,
        orientation="string",
        product="string",
        security_groups=["string"],
        availability_zones=["string"],
        block_devices_mode="string",
        capacity_unit="string",
        consider_od_pricing=False,
        cpu_credits="string",
        cpu_options=spotinst.aws.ElastigroupCpuOptionsArgs(
            threads_per_core=0,
        ),
        description="string",
        desired_capacity=0,
        draining_timeout=0,
        ebs_block_devices=[spotinst.aws.ElastigroupEbsBlockDeviceArgs(
            device_name="string",
            delete_on_termination=False,
            encrypted=False,
            iops=0,
            kms_key_id="string",
            snapshot_id="string",
            throughput=0,
            volume_size=0,
            volume_type="string",
        )],
        ebs_optimized=False,
        elastic_ips=["string"],
        elastic_load_balancers=["string"],
        enable_monitoring=False,
        ephemeral_block_devices=[spotinst.aws.ElastigroupEphemeralBlockDeviceArgs(
            device_name="string",
            virtual_name="string",
        )],
        health_check_grace_period=0,
        health_check_type="string",
        health_check_unhealthy_duration_before_replacement=0,
        iam_instance_profile="string",
        image_id="string",
        images=[spotinst.aws.ElastigroupImageArgs(
            images=[spotinst.aws.ElastigroupImageImageArgs(
                id="string",
            )],
        )],
        immediate_od_recover_threshold=0,
        instance_types_ondemand="string",
        instance_types_preferred_spots=["string"],
        instance_types_spots=["string"],
        instance_types_weights=[spotinst.aws.ElastigroupInstanceTypesWeightArgs(
            instance_type="string",
            weight=0,
        )],
        integration_beanstalk=spotinst.aws.ElastigroupIntegrationBeanstalkArgs(
            deployment_preferences=spotinst.aws.ElastigroupIntegrationBeanstalkDeploymentPreferencesArgs(
                automatic_roll=False,
                batch_size_percentage=0,
                grace_period=0,
                strategy=spotinst.aws.ElastigroupIntegrationBeanstalkDeploymentPreferencesStrategyArgs(
                    action="string",
                    should_drain_instances=False,
                ),
            ),
            environment_id="string",
            managed_actions=spotinst.aws.ElastigroupIntegrationBeanstalkManagedActionsArgs(
                platform_update=spotinst.aws.ElastigroupIntegrationBeanstalkManagedActionsPlatformUpdateArgs(
                    perform_at="string",
                    time_window="string",
                    update_level="string",
                ),
            ),
        ),
        integration_codedeploy=spotinst.aws.ElastigroupIntegrationCodedeployArgs(
            cleanup_on_failure=False,
            deployment_groups=[spotinst.aws.ElastigroupIntegrationCodedeployDeploymentGroupArgs(
                application_name="string",
                deployment_group_name="string",
            )],
            terminate_instance_on_failure=False,
        ),
        integration_docker_swarm=spotinst.aws.ElastigroupIntegrationDockerSwarmArgs(
            master_host="string",
            master_port=0,
            autoscale_cooldown=0,
            autoscale_down=spotinst.aws.ElastigroupIntegrationDockerSwarmAutoscaleDownArgs(
                evaluation_periods=0,
                max_scale_down_percentage=0,
            ),
            autoscale_headroom=spotinst.aws.ElastigroupIntegrationDockerSwarmAutoscaleHeadroomArgs(
                cpu_per_unit=0,
                memory_per_unit=0,
                num_of_units=0,
            ),
            autoscale_is_enabled=False,
        ),
        integration_ecs=spotinst.aws.ElastigroupIntegrationEcsArgs(
            cluster_name="string",
            autoscale_attributes=[spotinst.aws.ElastigroupIntegrationEcsAutoscaleAttributeArgs(
                key="string",
                value="string",
            )],
            autoscale_cooldown=0,
            autoscale_down=spotinst.aws.ElastigroupIntegrationEcsAutoscaleDownArgs(
                evaluation_periods=0,
                max_scale_down_percentage=0,
            ),
            autoscale_headroom=spotinst.aws.ElastigroupIntegrationEcsAutoscaleHeadroomArgs(
                cpu_per_unit=0,
                memory_per_unit=0,
                num_of_units=0,
            ),
            autoscale_is_auto_config=False,
            autoscale_is_enabled=False,
            autoscale_scale_down_non_service_tasks=False,
            batch=spotinst.aws.ElastigroupIntegrationEcsBatchArgs(
                job_queue_names=["string"],
            ),
        ),
        integration_gitlab=spotinst.aws.ElastigroupIntegrationGitlabArgs(
            runner=spotinst.aws.ElastigroupIntegrationGitlabRunnerArgs(
                is_enabled=False,
            ),
        ),
        integration_kubernetes=spotinst.aws.ElastigroupIntegrationKubernetesArgs(
            api_server="string",
            autoscale_cooldown=0,
            autoscale_down=spotinst.aws.ElastigroupIntegrationKubernetesAutoscaleDownArgs(
                evaluation_periods=0,
                max_scale_down_percentage=0,
            ),
            autoscale_headroom=spotinst.aws.ElastigroupIntegrationKubernetesAutoscaleHeadroomArgs(
                cpu_per_unit=0,
                memory_per_unit=0,
                num_of_units=0,
            ),
            autoscale_is_auto_config=False,
            autoscale_is_enabled=False,
            autoscale_labels=[spotinst.aws.ElastigroupIntegrationKubernetesAutoscaleLabelArgs(
                key="string",
                value="string",
            )],
            cluster_identifier="string",
            integration_mode="string",
            token="string",
        ),
        integration_mesosphere=spotinst.aws.ElastigroupIntegrationMesosphereArgs(
            api_server="string",
        ),
        integration_nomad=spotinst.aws.ElastigroupIntegrationNomadArgs(
            master_host="string",
            master_port=0,
            acl_token="string",
            autoscale_constraints=[spotinst.aws.ElastigroupIntegrationNomadAutoscaleConstraintArgs(
                key="string",
                value="string",
            )],
            autoscale_cooldown=0,
            autoscale_down=spotinst.aws.ElastigroupIntegrationNomadAutoscaleDownArgs(
                evaluation_periods=0,
            ),
            autoscale_headroom=spotinst.aws.ElastigroupIntegrationNomadAutoscaleHeadroomArgs(
                cpu_per_unit=0,
                memory_per_unit=0,
                num_of_units=0,
            ),
            autoscale_is_enabled=False,
        ),
        integration_rancher=spotinst.aws.ElastigroupIntegrationRancherArgs(
            access_key="string",
            master_host="string",
            secret_key="string",
            version="string",
        ),
        integration_route53=spotinst.aws.ElastigroupIntegrationRoute53Args(
            domains=[spotinst.aws.ElastigroupIntegrationRoute53DomainArgs(
                hosted_zone_id="string",
                record_sets=[spotinst.aws.ElastigroupIntegrationRoute53DomainRecordSetArgs(
                    name="string",
                    use_public_dns=False,
                    use_public_ip=False,
                )],
                record_set_type="string",
                spotinst_acct_id="string",
            )],
        ),
        itfs=[spotinst.aws.ElastigroupItfArgs(
            fixed_target_groups=False,
            load_balancers=[spotinst.aws.ElastigroupItfLoadBalancerArgs(
                listener_rules=[spotinst.aws.ElastigroupItfLoadBalancerListenerRuleArgs(
                    rule_arn="string",
                    static_target_group=spotinst.aws.ElastigroupItfLoadBalancerListenerRuleStaticTargetGroupArgs(
                        arn="string",
                        percentage=0,
                    ),
                )],
                load_balancer_arn="string",
            )],
            target_group_configs=[spotinst.aws.ElastigroupItfTargetGroupConfigArgs(
                port=0,
                health_check_path="string",
                vpc_id="string",
                protocol="string",
                matchers=[spotinst.aws.ElastigroupItfTargetGroupConfigMatcherArgs(
                    grpc_code="string",
                    http_code="string",
                )],
                healthy_threshold_count=0,
                health_check_interval_seconds=0,
                health_check_timeout_seconds=0,
                health_check_protocol="string",
                protocol_version="string",
                tags=[spotinst.aws.ElastigroupItfTargetGroupConfigTagArgs(
                    tag_key="string",
                    tag_value="string",
                )],
                unhealthy_threshold_count=0,
                health_check_port="string",
            )],
            weight_strategy="string",
            default_static_target_group=spotinst.aws.ElastigroupItfDefaultStaticTargetGroupArgs(
                arn="string",
                percentage=0,
            ),
            migration_healthiness_threshold=0,
        )],
        key_name="string",
        lifetime_period="string",
        logging=spotinst.aws.ElastigroupLoggingArgs(
            export=spotinst.aws.ElastigroupLoggingExportArgs(
                s3s=[spotinst.aws.ElastigroupLoggingExportS3Args(
                    id="string",
                )],
            ),
        ),
        max_size=0,
        metadata_options=spotinst.aws.ElastigroupMetadataOptionsArgs(
            http_tokens="string",
            http_put_response_hop_limit=0,
            instance_metadata_tags="string",
        ),
        min_size=0,
        minimum_instance_lifetime=0,
        multiple_metrics=spotinst.aws.ElastigroupMultipleMetricsArgs(
            expressions=[spotinst.aws.ElastigroupMultipleMetricsExpressionArgs(
                expression="string",
                name="string",
            )],
            metrics=[spotinst.aws.ElastigroupMultipleMetricsMetricArgs(
                metric_name="string",
                name="string",
                namespace="string",
                dimensions=[spotinst.aws.ElastigroupMultipleMetricsMetricDimensionArgs(
                    name="string",
                    value="string",
                )],
                extended_statistic="string",
                statistic="string",
                unit="string",
            )],
        ),
        name="string",
        network_interfaces=[spotinst.aws.ElastigroupNetworkInterfaceArgs(
            device_index="string",
            associate_ipv6_address=False,
            associate_public_ip_address=False,
            delete_on_termination=False,
            description="string",
            network_interface_id="string",
            private_ip_address="string",
            secondary_private_ip_address_count="string",
        )],
        on_demand_types=["string"],
        ondemand_count=0,
        persist_block_devices=False,
        persist_private_ip=False,
        persist_root_device=False,
        placement_tenancy="string",
        preferred_availability_zones=["string"],
        private_ips=["string"],
        region="string",
        resource_requirements=[spotinst.aws.ElastigroupResourceRequirementArgs(
            required_memory_maximum=0,
            required_memory_minimum=0,
            required_vcpu_maximum=0,
            required_vcpu_minimum=0,
            excluded_instance_families=["string"],
            excluded_instance_generations=["string"],
            excluded_instance_types=["string"],
            required_gpu_maximum=0,
            required_gpu_minimum=0,
        )],
        resource_tag_specifications=[spotinst.aws.ElastigroupResourceTagSpecificationArgs(
            should_tag_amis=False,
            should_tag_enis=False,
            should_tag_snapshots=False,
            should_tag_volumes=False,
        )],
        revert_to_spot=spotinst.aws.ElastigroupRevertToSpotArgs(
            perform_at="string",
            time_windows=["string"],
        ),
        scaling_down_policies=[spotinst.aws.ElastigroupScalingDownPolicyArgs(
            metric_name="string",
            policy_name="string",
            namespace="string",
            minimum="string",
            operator="string",
            is_enabled=False,
            max_target_capacity="string",
            maximum="string",
            dimensions=[spotinst.aws.ElastigroupScalingDownPolicyDimensionArgs(
                name="string",
                value="string",
            )],
            min_target_capacity="string",
            action_type="string",
            cooldown=0,
            evaluation_periods=0,
            period=0,
            adjustment="string",
            source="string",
            statistic="string",
            step_adjustments=[spotinst.aws.ElastigroupScalingDownPolicyStepAdjustmentArgs(
                action=spotinst.aws.ElastigroupScalingDownPolicyStepAdjustmentActionArgs(
                    type="string",
                    adjustment="string",
                    max_target_capacity="string",
                    maximum="string",
                    min_target_capacity="string",
                    minimum="string",
                    target="string",
                ),
                threshold=0,
            )],
            target="string",
            threshold=0,
            unit="string",
        )],
        scaling_strategies=[spotinst.aws.ElastigroupScalingStrategyArgs(
            terminate_at_end_of_billing_hour=False,
            termination_policy="string",
        )],
        scaling_target_policies=[spotinst.aws.ElastigroupScalingTargetPolicyArgs(
            metric_name="string",
            target=0,
            policy_name="string",
            namespace="string",
            period=0,
            max_capacity_per_scale="string",
            cooldown=0,
            evaluation_periods=0,
            predictive_mode="string",
            source="string",
            statistic="string",
            dimensions=[spotinst.aws.ElastigroupScalingTargetPolicyDimensionArgs(
                name="string",
                value="string",
            )],
            unit="string",
        )],
        scaling_up_policies=[spotinst.aws.ElastigroupScalingUpPolicyArgs(
            metric_name="string",
            policy_name="string",
            namespace="string",
            minimum="string",
            operator="string",
            is_enabled=False,
            max_target_capacity="string",
            maximum="string",
            dimensions=[spotinst.aws.ElastigroupScalingUpPolicyDimensionArgs(
                name="string",
                value="string",
            )],
            min_target_capacity="string",
            action_type="string",
            cooldown=0,
            evaluation_periods=0,
            period=0,
            adjustment="string",
            source="string",
            statistic="string",
            step_adjustments=[spotinst.aws.ElastigroupScalingUpPolicyStepAdjustmentArgs(
                action=spotinst.aws.ElastigroupScalingUpPolicyStepAdjustmentActionArgs(
                    type="string",
                    adjustment="string",
                    max_target_capacity="string",
                    maximum="string",
                    min_target_capacity="string",
                    minimum="string",
                    target="string",
                ),
                threshold=0,
            )],
            target="string",
            threshold=0,
            unit="string",
        )],
        scheduled_tasks=[spotinst.aws.ElastigroupScheduledTaskArgs(
            task_type="string",
            is_enabled=False,
            min_capacity="string",
            cron_expression="string",
            frequency="string",
            grace_period="string",
            adjustment="string",
            max_capacity="string",
            batch_size_percentage="string",
            scale_max_capacity="string",
            scale_min_capacity="string",
            scale_target_capacity="string",
            start_time="string",
            target_capacity="string",
            adjustment_percentage="string",
        )],
        shutdown_script="string",
        signals=[spotinst.aws.ElastigroupSignalArgs(
            name="string",
            timeout=0,
        )],
        spot_percentage=0,
        stateful_deallocation=spotinst.aws.ElastigroupStatefulDeallocationArgs(
            should_delete_images=False,
            should_delete_network_interfaces=False,
            should_delete_snapshots=False,
            should_delete_volumes=False,
        ),
        stateful_instance_actions=[spotinst.aws.ElastigroupStatefulInstanceActionArgs(
            stateful_instance_id="string",
            type="string",
        )],
        subnet_ids=["string"],
        tags=[spotinst.aws.ElastigroupTagArgs(
            key="string",
            value="string",
        )],
        target_group_arns=["string"],
        update_policy=spotinst.aws.ElastigroupUpdatePolicyArgs(
            should_resume_stateful=False,
            should_roll=False,
            auto_apply_tags=False,
            roll_config=spotinst.aws.ElastigroupUpdatePolicyRollConfigArgs(
                batch_size_percentage=0,
                grace_period=0,
                health_check_type="string",
                strategy=spotinst.aws.ElastigroupUpdatePolicyRollConfigStrategyArgs(
                    action="string",
                    batch_min_healthy_percentage=0,
                    on_failure=spotinst.aws.ElastigroupUpdatePolicyRollConfigStrategyOnFailureArgs(
                        action_type="string",
                        batch_num=0,
                        draining_timeout=0,
                        should_decrement_target_capacity=False,
                        should_handle_all_batches=False,
                    ),
                    should_drain_instances=False,
                ),
                wait_for_roll_percentage=0,
                wait_for_roll_timeout=0,
            ),
        ),
        user_data="string",
        utilize_commitments=False,
        utilize_reserved_instances=False,
        wait_for_capacity=0,
        wait_for_capacity_timeout=0)
    
    const elastigroupResource = new spotinst.aws.Elastigroup("elastigroupResource", {
        fallbackToOndemand: false,
        orientation: "string",
        product: "string",
        securityGroups: ["string"],
        availabilityZones: ["string"],
        blockDevicesMode: "string",
        capacityUnit: "string",
        considerOdPricing: false,
        cpuCredits: "string",
        cpuOptions: {
            threadsPerCore: 0,
        },
        description: "string",
        desiredCapacity: 0,
        drainingTimeout: 0,
        ebsBlockDevices: [{
            deviceName: "string",
            deleteOnTermination: false,
            encrypted: false,
            iops: 0,
            kmsKeyId: "string",
            snapshotId: "string",
            throughput: 0,
            volumeSize: 0,
            volumeType: "string",
        }],
        ebsOptimized: false,
        elasticIps: ["string"],
        elasticLoadBalancers: ["string"],
        enableMonitoring: false,
        ephemeralBlockDevices: [{
            deviceName: "string",
            virtualName: "string",
        }],
        healthCheckGracePeriod: 0,
        healthCheckType: "string",
        healthCheckUnhealthyDurationBeforeReplacement: 0,
        iamInstanceProfile: "string",
        imageId: "string",
        images: [{
            images: [{
                id: "string",
            }],
        }],
        immediateOdRecoverThreshold: 0,
        instanceTypesOndemand: "string",
        instanceTypesPreferredSpots: ["string"],
        instanceTypesSpots: ["string"],
        instanceTypesWeights: [{
            instanceType: "string",
            weight: 0,
        }],
        integrationBeanstalk: {
            deploymentPreferences: {
                automaticRoll: false,
                batchSizePercentage: 0,
                gracePeriod: 0,
                strategy: {
                    action: "string",
                    shouldDrainInstances: false,
                },
            },
            environmentId: "string",
            managedActions: {
                platformUpdate: {
                    performAt: "string",
                    timeWindow: "string",
                    updateLevel: "string",
                },
            },
        },
        integrationCodedeploy: {
            cleanupOnFailure: false,
            deploymentGroups: [{
                applicationName: "string",
                deploymentGroupName: "string",
            }],
            terminateInstanceOnFailure: false,
        },
        integrationDockerSwarm: {
            masterHost: "string",
            masterPort: 0,
            autoscaleCooldown: 0,
            autoscaleDown: {
                evaluationPeriods: 0,
                maxScaleDownPercentage: 0,
            },
            autoscaleHeadroom: {
                cpuPerUnit: 0,
                memoryPerUnit: 0,
                numOfUnits: 0,
            },
            autoscaleIsEnabled: false,
        },
        integrationEcs: {
            clusterName: "string",
            autoscaleAttributes: [{
                key: "string",
                value: "string",
            }],
            autoscaleCooldown: 0,
            autoscaleDown: {
                evaluationPeriods: 0,
                maxScaleDownPercentage: 0,
            },
            autoscaleHeadroom: {
                cpuPerUnit: 0,
                memoryPerUnit: 0,
                numOfUnits: 0,
            },
            autoscaleIsAutoConfig: false,
            autoscaleIsEnabled: false,
            autoscaleScaleDownNonServiceTasks: false,
            batch: {
                jobQueueNames: ["string"],
            },
        },
        integrationGitlab: {
            runner: {
                isEnabled: false,
            },
        },
        integrationKubernetes: {
            apiServer: "string",
            autoscaleCooldown: 0,
            autoscaleDown: {
                evaluationPeriods: 0,
                maxScaleDownPercentage: 0,
            },
            autoscaleHeadroom: {
                cpuPerUnit: 0,
                memoryPerUnit: 0,
                numOfUnits: 0,
            },
            autoscaleIsAutoConfig: false,
            autoscaleIsEnabled: false,
            autoscaleLabels: [{
                key: "string",
                value: "string",
            }],
            clusterIdentifier: "string",
            integrationMode: "string",
            token: "string",
        },
        integrationMesosphere: {
            apiServer: "string",
        },
        integrationNomad: {
            masterHost: "string",
            masterPort: 0,
            aclToken: "string",
            autoscaleConstraints: [{
                key: "string",
                value: "string",
            }],
            autoscaleCooldown: 0,
            autoscaleDown: {
                evaluationPeriods: 0,
            },
            autoscaleHeadroom: {
                cpuPerUnit: 0,
                memoryPerUnit: 0,
                numOfUnits: 0,
            },
            autoscaleIsEnabled: false,
        },
        integrationRancher: {
            accessKey: "string",
            masterHost: "string",
            secretKey: "string",
            version: "string",
        },
        integrationRoute53: {
            domains: [{
                hostedZoneId: "string",
                recordSets: [{
                    name: "string",
                    usePublicDns: false,
                    usePublicIp: false,
                }],
                recordSetType: "string",
                spotinstAcctId: "string",
            }],
        },
        itfs: [{
            fixedTargetGroups: false,
            loadBalancers: [{
                listenerRules: [{
                    ruleArn: "string",
                    staticTargetGroup: {
                        arn: "string",
                        percentage: 0,
                    },
                }],
                loadBalancerArn: "string",
            }],
            targetGroupConfigs: [{
                port: 0,
                healthCheckPath: "string",
                vpcId: "string",
                protocol: "string",
                matchers: [{
                    grpcCode: "string",
                    httpCode: "string",
                }],
                healthyThresholdCount: 0,
                healthCheckIntervalSeconds: 0,
                healthCheckTimeoutSeconds: 0,
                healthCheckProtocol: "string",
                protocolVersion: "string",
                tags: [{
                    tagKey: "string",
                    tagValue: "string",
                }],
                unhealthyThresholdCount: 0,
                healthCheckPort: "string",
            }],
            weightStrategy: "string",
            defaultStaticTargetGroup: {
                arn: "string",
                percentage: 0,
            },
            migrationHealthinessThreshold: 0,
        }],
        keyName: "string",
        lifetimePeriod: "string",
        logging: {
            "export": {
                s3s: [{
                    id: "string",
                }],
            },
        },
        maxSize: 0,
        metadataOptions: {
            httpTokens: "string",
            httpPutResponseHopLimit: 0,
            instanceMetadataTags: "string",
        },
        minSize: 0,
        minimumInstanceLifetime: 0,
        multipleMetrics: {
            expressions: [{
                expression: "string",
                name: "string",
            }],
            metrics: [{
                metricName: "string",
                name: "string",
                namespace: "string",
                dimensions: [{
                    name: "string",
                    value: "string",
                }],
                extendedStatistic: "string",
                statistic: "string",
                unit: "string",
            }],
        },
        name: "string",
        networkInterfaces: [{
            deviceIndex: "string",
            associateIpv6Address: false,
            associatePublicIpAddress: false,
            deleteOnTermination: false,
            description: "string",
            networkInterfaceId: "string",
            privateIpAddress: "string",
            secondaryPrivateIpAddressCount: "string",
        }],
        onDemandTypes: ["string"],
        ondemandCount: 0,
        persistBlockDevices: false,
        persistPrivateIp: false,
        persistRootDevice: false,
        placementTenancy: "string",
        preferredAvailabilityZones: ["string"],
        privateIps: ["string"],
        region: "string",
        resourceRequirements: [{
            requiredMemoryMaximum: 0,
            requiredMemoryMinimum: 0,
            requiredVcpuMaximum: 0,
            requiredVcpuMinimum: 0,
            excludedInstanceFamilies: ["string"],
            excludedInstanceGenerations: ["string"],
            excludedInstanceTypes: ["string"],
            requiredGpuMaximum: 0,
            requiredGpuMinimum: 0,
        }],
        resourceTagSpecifications: [{
            shouldTagAmis: false,
            shouldTagEnis: false,
            shouldTagSnapshots: false,
            shouldTagVolumes: false,
        }],
        revertToSpot: {
            performAt: "string",
            timeWindows: ["string"],
        },
        scalingDownPolicies: [{
            metricName: "string",
            policyName: "string",
            namespace: "string",
            minimum: "string",
            operator: "string",
            isEnabled: false,
            maxTargetCapacity: "string",
            maximum: "string",
            dimensions: [{
                name: "string",
                value: "string",
            }],
            minTargetCapacity: "string",
            actionType: "string",
            cooldown: 0,
            evaluationPeriods: 0,
            period: 0,
            adjustment: "string",
            source: "string",
            statistic: "string",
            stepAdjustments: [{
                action: {
                    type: "string",
                    adjustment: "string",
                    maxTargetCapacity: "string",
                    maximum: "string",
                    minTargetCapacity: "string",
                    minimum: "string",
                    target: "string",
                },
                threshold: 0,
            }],
            target: "string",
            threshold: 0,
            unit: "string",
        }],
        scalingStrategies: [{
            terminateAtEndOfBillingHour: false,
            terminationPolicy: "string",
        }],
        scalingTargetPolicies: [{
            metricName: "string",
            target: 0,
            policyName: "string",
            namespace: "string",
            period: 0,
            maxCapacityPerScale: "string",
            cooldown: 0,
            evaluationPeriods: 0,
            predictiveMode: "string",
            source: "string",
            statistic: "string",
            dimensions: [{
                name: "string",
                value: "string",
            }],
            unit: "string",
        }],
        scalingUpPolicies: [{
            metricName: "string",
            policyName: "string",
            namespace: "string",
            minimum: "string",
            operator: "string",
            isEnabled: false,
            maxTargetCapacity: "string",
            maximum: "string",
            dimensions: [{
                name: "string",
                value: "string",
            }],
            minTargetCapacity: "string",
            actionType: "string",
            cooldown: 0,
            evaluationPeriods: 0,
            period: 0,
            adjustment: "string",
            source: "string",
            statistic: "string",
            stepAdjustments: [{
                action: {
                    type: "string",
                    adjustment: "string",
                    maxTargetCapacity: "string",
                    maximum: "string",
                    minTargetCapacity: "string",
                    minimum: "string",
                    target: "string",
                },
                threshold: 0,
            }],
            target: "string",
            threshold: 0,
            unit: "string",
        }],
        scheduledTasks: [{
            taskType: "string",
            isEnabled: false,
            minCapacity: "string",
            cronExpression: "string",
            frequency: "string",
            gracePeriod: "string",
            adjustment: "string",
            maxCapacity: "string",
            batchSizePercentage: "string",
            scaleMaxCapacity: "string",
            scaleMinCapacity: "string",
            scaleTargetCapacity: "string",
            startTime: "string",
            targetCapacity: "string",
            adjustmentPercentage: "string",
        }],
        shutdownScript: "string",
        signals: [{
            name: "string",
            timeout: 0,
        }],
        spotPercentage: 0,
        statefulDeallocation: {
            shouldDeleteImages: false,
            shouldDeleteNetworkInterfaces: false,
            shouldDeleteSnapshots: false,
            shouldDeleteVolumes: false,
        },
        statefulInstanceActions: [{
            statefulInstanceId: "string",
            type: "string",
        }],
        subnetIds: ["string"],
        tags: [{
            key: "string",
            value: "string",
        }],
        targetGroupArns: ["string"],
        updatePolicy: {
            shouldResumeStateful: false,
            shouldRoll: false,
            autoApplyTags: false,
            rollConfig: {
                batchSizePercentage: 0,
                gracePeriod: 0,
                healthCheckType: "string",
                strategy: {
                    action: "string",
                    batchMinHealthyPercentage: 0,
                    onFailure: {
                        actionType: "string",
                        batchNum: 0,
                        drainingTimeout: 0,
                        shouldDecrementTargetCapacity: false,
                        shouldHandleAllBatches: false,
                    },
                    shouldDrainInstances: false,
                },
                waitForRollPercentage: 0,
                waitForRollTimeout: 0,
            },
        },
        userData: "string",
        utilizeCommitments: false,
        utilizeReservedInstances: false,
        waitForCapacity: 0,
        waitForCapacityTimeout: 0,
    });
    
    type: spotinst:aws:Elastigroup
    properties:
        availabilityZones:
            - string
        blockDevicesMode: string
        capacityUnit: string
        considerOdPricing: false
        cpuCredits: string
        cpuOptions:
            threadsPerCore: 0
        description: string
        desiredCapacity: 0
        drainingTimeout: 0
        ebsBlockDevices:
            - deleteOnTermination: false
              deviceName: string
              encrypted: false
              iops: 0
              kmsKeyId: string
              snapshotId: string
              throughput: 0
              volumeSize: 0
              volumeType: string
        ebsOptimized: false
        elasticIps:
            - string
        elasticLoadBalancers:
            - string
        enableMonitoring: false
        ephemeralBlockDevices:
            - deviceName: string
              virtualName: string
        fallbackToOndemand: false
        healthCheckGracePeriod: 0
        healthCheckType: string
        healthCheckUnhealthyDurationBeforeReplacement: 0
        iamInstanceProfile: string
        imageId: string
        images:
            - images:
                - id: string
        immediateOdRecoverThreshold: 0
        instanceTypesOndemand: string
        instanceTypesPreferredSpots:
            - string
        instanceTypesSpots:
            - string
        instanceTypesWeights:
            - instanceType: string
              weight: 0
        integrationBeanstalk:
            deploymentPreferences:
                automaticRoll: false
                batchSizePercentage: 0
                gracePeriod: 0
                strategy:
                    action: string
                    shouldDrainInstances: false
            environmentId: string
            managedActions:
                platformUpdate:
                    performAt: string
                    timeWindow: string
                    updateLevel: string
        integrationCodedeploy:
            cleanupOnFailure: false
            deploymentGroups:
                - applicationName: string
                  deploymentGroupName: string
            terminateInstanceOnFailure: false
        integrationDockerSwarm:
            autoscaleCooldown: 0
            autoscaleDown:
                evaluationPeriods: 0
                maxScaleDownPercentage: 0
            autoscaleHeadroom:
                cpuPerUnit: 0
                memoryPerUnit: 0
                numOfUnits: 0
            autoscaleIsEnabled: false
            masterHost: string
            masterPort: 0
        integrationEcs:
            autoscaleAttributes:
                - key: string
                  value: string
            autoscaleCooldown: 0
            autoscaleDown:
                evaluationPeriods: 0
                maxScaleDownPercentage: 0
            autoscaleHeadroom:
                cpuPerUnit: 0
                memoryPerUnit: 0
                numOfUnits: 0
            autoscaleIsAutoConfig: false
            autoscaleIsEnabled: false
            autoscaleScaleDownNonServiceTasks: false
            batch:
                jobQueueNames:
                    - string
            clusterName: string
        integrationGitlab:
            runner:
                isEnabled: false
        integrationKubernetes:
            apiServer: string
            autoscaleCooldown: 0
            autoscaleDown:
                evaluationPeriods: 0
                maxScaleDownPercentage: 0
            autoscaleHeadroom:
                cpuPerUnit: 0
                memoryPerUnit: 0
                numOfUnits: 0
            autoscaleIsAutoConfig: false
            autoscaleIsEnabled: false
            autoscaleLabels:
                - key: string
                  value: string
            clusterIdentifier: string
            integrationMode: string
            token: string
        integrationMesosphere:
            apiServer: string
        integrationNomad:
            aclToken: string
            autoscaleConstraints:
                - key: string
                  value: string
            autoscaleCooldown: 0
            autoscaleDown:
                evaluationPeriods: 0
            autoscaleHeadroom:
                cpuPerUnit: 0
                memoryPerUnit: 0
                numOfUnits: 0
            autoscaleIsEnabled: false
            masterHost: string
            masterPort: 0
        integrationRancher:
            accessKey: string
            masterHost: string
            secretKey: string
            version: string
        integrationRoute53:
            domains:
                - hostedZoneId: string
                  recordSetType: string
                  recordSets:
                    - name: string
                      usePublicDns: false
                      usePublicIp: false
                  spotinstAcctId: string
        itfs:
            - defaultStaticTargetGroup:
                arn: string
                percentage: 0
              fixedTargetGroups: false
              loadBalancers:
                - listenerRules:
                    - ruleArn: string
                      staticTargetGroup:
                        arn: string
                        percentage: 0
                  loadBalancerArn: string
              migrationHealthinessThreshold: 0
              targetGroupConfigs:
                - healthCheckIntervalSeconds: 0
                  healthCheckPath: string
                  healthCheckPort: string
                  healthCheckProtocol: string
                  healthCheckTimeoutSeconds: 0
                  healthyThresholdCount: 0
                  matchers:
                    - grpcCode: string
                      httpCode: string
                  port: 0
                  protocol: string
                  protocolVersion: string
                  tags:
                    - tagKey: string
                      tagValue: string
                  unhealthyThresholdCount: 0
                  vpcId: string
              weightStrategy: string
        keyName: string
        lifetimePeriod: string
        logging:
            export:
                s3s:
                    - id: string
        maxSize: 0
        metadataOptions:
            httpPutResponseHopLimit: 0
            httpTokens: string
            instanceMetadataTags: string
        minSize: 0
        minimumInstanceLifetime: 0
        multipleMetrics:
            expressions:
                - expression: string
                  name: string
            metrics:
                - dimensions:
                    - name: string
                      value: string
                  extendedStatistic: string
                  metricName: string
                  name: string
                  namespace: string
                  statistic: string
                  unit: string
        name: string
        networkInterfaces:
            - associateIpv6Address: false
              associatePublicIpAddress: false
              deleteOnTermination: false
              description: string
              deviceIndex: string
              networkInterfaceId: string
              privateIpAddress: string
              secondaryPrivateIpAddressCount: string
        onDemandTypes:
            - string
        ondemandCount: 0
        orientation: string
        persistBlockDevices: false
        persistPrivateIp: false
        persistRootDevice: false
        placementTenancy: string
        preferredAvailabilityZones:
            - string
        privateIps:
            - string
        product: string
        region: string
        resourceRequirements:
            - excludedInstanceFamilies:
                - string
              excludedInstanceGenerations:
                - string
              excludedInstanceTypes:
                - string
              requiredGpuMaximum: 0
              requiredGpuMinimum: 0
              requiredMemoryMaximum: 0
              requiredMemoryMinimum: 0
              requiredVcpuMaximum: 0
              requiredVcpuMinimum: 0
        resourceTagSpecifications:
            - shouldTagAmis: false
              shouldTagEnis: false
              shouldTagSnapshots: false
              shouldTagVolumes: false
        revertToSpot:
            performAt: string
            timeWindows:
                - string
        scalingDownPolicies:
            - actionType: string
              adjustment: string
              cooldown: 0
              dimensions:
                - name: string
                  value: string
              evaluationPeriods: 0
              isEnabled: false
              maxTargetCapacity: string
              maximum: string
              metricName: string
              minTargetCapacity: string
              minimum: string
              namespace: string
              operator: string
              period: 0
              policyName: string
              source: string
              statistic: string
              stepAdjustments:
                - action:
                    adjustment: string
                    maxTargetCapacity: string
                    maximum: string
                    minTargetCapacity: string
                    minimum: string
                    target: string
                    type: string
                  threshold: 0
              target: string
              threshold: 0
              unit: string
        scalingStrategies:
            - terminateAtEndOfBillingHour: false
              terminationPolicy: string
        scalingTargetPolicies:
            - cooldown: 0
              dimensions:
                - name: string
                  value: string
              evaluationPeriods: 0
              maxCapacityPerScale: string
              metricName: string
              namespace: string
              period: 0
              policyName: string
              predictiveMode: string
              source: string
              statistic: string
              target: 0
              unit: string
        scalingUpPolicies:
            - actionType: string
              adjustment: string
              cooldown: 0
              dimensions:
                - name: string
                  value: string
              evaluationPeriods: 0
              isEnabled: false
              maxTargetCapacity: string
              maximum: string
              metricName: string
              minTargetCapacity: string
              minimum: string
              namespace: string
              operator: string
              period: 0
              policyName: string
              source: string
              statistic: string
              stepAdjustments:
                - action:
                    adjustment: string
                    maxTargetCapacity: string
                    maximum: string
                    minTargetCapacity: string
                    minimum: string
                    target: string
                    type: string
                  threshold: 0
              target: string
              threshold: 0
              unit: string
        scheduledTasks:
            - adjustment: string
              adjustmentPercentage: string
              batchSizePercentage: string
              cronExpression: string
              frequency: string
              gracePeriod: string
              isEnabled: false
              maxCapacity: string
              minCapacity: string
              scaleMaxCapacity: string
              scaleMinCapacity: string
              scaleTargetCapacity: string
              startTime: string
              targetCapacity: string
              taskType: string
        securityGroups:
            - string
        shutdownScript: string
        signals:
            - name: string
              timeout: 0
        spotPercentage: 0
        statefulDeallocation:
            shouldDeleteImages: false
            shouldDeleteNetworkInterfaces: false
            shouldDeleteSnapshots: false
            shouldDeleteVolumes: false
        statefulInstanceActions:
            - statefulInstanceId: string
              type: string
        subnetIds:
            - string
        tags:
            - key: string
              value: string
        targetGroupArns:
            - string
        updatePolicy:
            autoApplyTags: false
            rollConfig:
                batchSizePercentage: 0
                gracePeriod: 0
                healthCheckType: string
                strategy:
                    action: string
                    batchMinHealthyPercentage: 0
                    onFailure:
                        actionType: string
                        batchNum: 0
                        drainingTimeout: 0
                        shouldDecrementTargetCapacity: false
                        shouldHandleAllBatches: false
                    shouldDrainInstances: false
                waitForRollPercentage: 0
                waitForRollTimeout: 0
            shouldResumeStateful: false
            shouldRoll: false
        userData: string
        utilizeCommitments: false
        utilizeReservedInstances: false
        waitForCapacity: 0
        waitForCapacityTimeout: 0
    

    Elastigroup 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 Elastigroup resource accepts the following input properties:

    FallbackToOndemand bool
    In a case of no Spot instances available, Elastigroup will launch on-demand instances instead.
    Orientation string
    Select a prediction strategy. Valid values: balanced, costOriented, equalAzDistribution, availabilityOriented. You can read more in our documentation.
    Product string
    Operation system type. Valid values: "Linux/UNIX", "SUSE Linux", "Windows". For EC2 Classic instances: "Linux/UNIX (Amazon VPC)", "SUSE Linux (Amazon VPC)", "Windows (Amazon VPC)".
    SecurityGroups List<string>
    A list of associated security group IDS.
    AvailabilityZones List<string>
    List of Strings of availability zones. When this parameter is set, subnet_ids should be left unused. Note: availability_zones naming syntax follows the convention availability-zone:subnet:placement-group-name. For example, to set an AZ in us-east-1 with subnet subnet-123456 and placement group ClusterI03, you would set: availability_zones = ["us-east-1a:subnet-123456:ClusterI03"]
    BlockDevicesMode string
    CapacityUnit string
    The capacity unit to launch instances by. If not specified, when choosing the weight unit, each instance will weight as the number of its vCPUs. Valid values: instance, weight.
    ConsiderOdPricing bool
    CpuCredits string
    Controls how T3 instances are launched. Valid values: standard, unlimited.
    CpuOptions Pulumi.SpotInst.Aws.Inputs.ElastigroupCpuOptions
    The CPU options for the instances that are launched within the group:
    Description string
    The group description.
    DesiredCapacity int
    The desired number of instances the group should have at any time.
    DrainingTimeout int
    The time in seconds, the instance is allowed to run while detached from the ELB. This is to allow the instance time to be drained from incoming TCP connections before terminating it, during a scale down operation.
    EbsBlockDevices List<Pulumi.SpotInst.Aws.Inputs.ElastigroupEbsBlockDevice>
    EbsOptimized bool
    Enable high bandwidth connectivity between instances and AWS’s Elastic Block Store (EBS). For instance types that are EBS-optimized by default this parameter will be ignored.
    ElasticIps List<string>
    A list of AWS Elastic IP allocation IDs to associate to the group instances.
    ElasticLoadBalancers List<string>
    EnableMonitoring bool
    Indicates whether monitoring is enabled for the instance.
    EphemeralBlockDevices List<Pulumi.SpotInst.Aws.Inputs.ElastigroupEphemeralBlockDevice>
    HealthCheckGracePeriod int
    The amount of time, in seconds, after the instance has launched to starts and check its health.
    HealthCheckType string
    The service that will perform health checks for the instance. Valid values: "ELB", "HCS", "TARGET_GROUP", "EC2", "K8S_NODE", "NOMAD_NODE", "ECS_CLUSTER_INSTANCE".
    HealthCheckUnhealthyDurationBeforeReplacement int
    The amount of time, in seconds, that we will wait before replacing an instance that is running and became unhealthy (this is only applicable for instances that were once healthy).
    IamInstanceProfile string
    The ARN or name of an IAM instance profile to associate with launched instances.
    ImageId string
    The ID of the AMI used to launch the instance.
    Images List<Pulumi.SpotInst.Aws.Inputs.ElastigroupImage>
    An array of image objects. Note: Elastigroup can be configured with either imageId or images, but not both.
    ImmediateOdRecoverThreshold int
    InstanceTypesOndemand string
    The type of instance determines your instance's CPU capacity, memory and storage (e.g., m1.small, c1.xlarge).
    InstanceTypesPreferredSpots List<string>
    Prioritize a subset of spot instance types. Must be a subset of the selected spot instance types.
    InstanceTypesSpots List<string>
    One or more instance types. Note: Cannot be defined if 'resourceRequirements' is defined.
    InstanceTypesWeights List<Pulumi.SpotInst.Aws.Inputs.ElastigroupInstanceTypesWeight>
    List of weights per instance type for weighted groups. Each object in the list should have the following attributes:
    IntegrationBeanstalk Pulumi.SpotInst.Aws.Inputs.ElastigroupIntegrationBeanstalk
    IntegrationCodedeploy Pulumi.SpotInst.Aws.Inputs.ElastigroupIntegrationCodedeploy
    IntegrationDockerSwarm Pulumi.SpotInst.Aws.Inputs.ElastigroupIntegrationDockerSwarm
    IntegrationEcs Pulumi.SpotInst.Aws.Inputs.ElastigroupIntegrationEcs
    IntegrationGitlab Pulumi.SpotInst.Aws.Inputs.ElastigroupIntegrationGitlab
    IntegrationKubernetes Pulumi.SpotInst.Aws.Inputs.ElastigroupIntegrationKubernetes
    IntegrationMesosphere Pulumi.SpotInst.Aws.Inputs.ElastigroupIntegrationMesosphere
    IntegrationNomad Pulumi.SpotInst.Aws.Inputs.ElastigroupIntegrationNomad
    IntegrationRancher Pulumi.SpotInst.Aws.Inputs.ElastigroupIntegrationRancher
    IntegrationRoute53 Pulumi.SpotInst.Aws.Inputs.ElastigroupIntegrationRoute53
    Itfs List<Pulumi.SpotInst.Aws.Inputs.ElastigroupItf>
    KeyName string
    The key name that should be used for the instance.
    LifetimePeriod string
    Logging Pulumi.SpotInst.Aws.Inputs.ElastigroupLogging
    Logging configuration.
    MaxSize int
    The maximum number of instances the group should have at any time.
    MetadataOptions Pulumi.SpotInst.Aws.Inputs.ElastigroupMetadataOptions
    Data that used to configure or manage the running instances:
    MinSize int
    The minimum number of instances the group should have at any time.
    MinimumInstanceLifetime int
    Defines the preferred minimum instance lifetime in hours. Markets which comply with this preference will be prioritized. Optional values: 1, 3, 6, 12, 24.
    MultipleMetrics Pulumi.SpotInst.Aws.Inputs.ElastigroupMultipleMetrics
    Name string
    The group name.
    NetworkInterfaces List<Pulumi.SpotInst.Aws.Inputs.ElastigroupNetworkInterface>
    OnDemandTypes List<string>
    Available ondemand instance types. Note: Either ondemand or onDemandTypes must be defined, but not both.
    OndemandCount int
    Number of on demand instances to launch in the group. All other instances will be spot instances. When this parameter is set the spot_percentage parameter is being ignored.
    PersistBlockDevices bool
    PersistPrivateIp bool
    PersistRootDevice bool
    PlacementTenancy string
    Enable dedicated tenancy. Note: There is a flat hourly fee for each region in which dedicated tenancy is used. Valid values: "default", "dedicated" .
    PreferredAvailabilityZones List<string>
    The AZs to prioritize when launching Spot instances. If no markets are available in the Preferred AZs, Spot instances are launched in the non-preferred AZs. Note: Must be a sublist of availability_zones and orientation value must not be "equalAzDistribution".
    PrivateIps List<string>
    Region string
    The AWS region your group will be created in. Note: This parameter is required if you specify subnets (through subnet_ids). This parameter is optional if you specify Availability Zones (through availability_zones).
    ResourceRequirements List<Pulumi.SpotInst.Aws.Inputs.ElastigroupResourceRequirement>
    Required instance attributes. Instance types will be selected based on these requirements.
    ResourceTagSpecifications List<Pulumi.SpotInst.Aws.Inputs.ElastigroupResourceTagSpecification>
    User will specify which resources should be tagged with group tags.
    RevertToSpot Pulumi.SpotInst.Aws.Inputs.ElastigroupRevertToSpot
    Hold settings for strategy correction – replacing On-Demand for Spot instances. Supported Values: "never", "always", "timeWindow"
    ScalingDownPolicies List<Pulumi.SpotInst.Aws.Inputs.ElastigroupScalingDownPolicy>
    ScalingStrategies List<Pulumi.SpotInst.Aws.Inputs.ElastigroupScalingStrategy>
    Set termination policy.
    ScalingTargetPolicies List<Pulumi.SpotInst.Aws.Inputs.ElastigroupScalingTargetPolicy>
    ScalingUpPolicies List<Pulumi.SpotInst.Aws.Inputs.ElastigroupScalingUpPolicy>
    ScheduledTasks List<Pulumi.SpotInst.Aws.Inputs.ElastigroupScheduledTask>
    ShutdownScript string
    The Base64-encoded shutdown script that executes prior to instance termination, for more information please see: Shutdown Script
    Signals List<Pulumi.SpotInst.Aws.Inputs.ElastigroupSignal>
    SpotPercentage int
    The percentage of Spot instances that would spin up from the desired_capacity number.
    StatefulDeallocation Pulumi.SpotInst.Aws.Inputs.ElastigroupStatefulDeallocation
    StatefulInstanceActions List<Pulumi.SpotInst.Aws.Inputs.ElastigroupStatefulInstanceAction>
    SubnetIds List<string>
    List of Strings of subnet identifiers. Note: When this parameter is set, availability_zones should be left unused.
    Tags List<Pulumi.SpotInst.Aws.Inputs.ElastigroupTag>
    A key/value mapping of tags to assign to the resource.
    TargetGroupArns List<string>
    UpdatePolicy Pulumi.SpotInst.Aws.Inputs.ElastigroupUpdatePolicy
    UserData string
    The user data to provide when launching the instance.
    UtilizeCommitments bool
    UtilizeReservedInstances bool
    In a case of any available reserved instances, Elastigroup will utilize them first before purchasing Spot instances.
    WaitForCapacity int
    Minimum number of instances in a 'HEALTHY' status that is required before continuing. This is ignored when updating with blue/green deployment. Cannot exceed desired_capacity.
    WaitForCapacityTimeout int
    Time (seconds) to wait for instances to report a 'HEALTHY' status. Useful for plans with multiple dependencies that take some time to initialize. Leave undefined or set to 0 to indicate no wait. This is ignored when updating with blue/green deployment.
    FallbackToOndemand bool
    In a case of no Spot instances available, Elastigroup will launch on-demand instances instead.
    Orientation string
    Select a prediction strategy. Valid values: balanced, costOriented, equalAzDistribution, availabilityOriented. You can read more in our documentation.
    Product string
    Operation system type. Valid values: "Linux/UNIX", "SUSE Linux", "Windows". For EC2 Classic instances: "Linux/UNIX (Amazon VPC)", "SUSE Linux (Amazon VPC)", "Windows (Amazon VPC)".
    SecurityGroups []string
    A list of associated security group IDS.
    AvailabilityZones []string
    List of Strings of availability zones. When this parameter is set, subnet_ids should be left unused. Note: availability_zones naming syntax follows the convention availability-zone:subnet:placement-group-name. For example, to set an AZ in us-east-1 with subnet subnet-123456 and placement group ClusterI03, you would set: availability_zones = ["us-east-1a:subnet-123456:ClusterI03"]
    BlockDevicesMode string
    CapacityUnit string
    The capacity unit to launch instances by. If not specified, when choosing the weight unit, each instance will weight as the number of its vCPUs. Valid values: instance, weight.
    ConsiderOdPricing bool
    CpuCredits string
    Controls how T3 instances are launched. Valid values: standard, unlimited.
    CpuOptions ElastigroupCpuOptionsArgs
    The CPU options for the instances that are launched within the group:
    Description string
    The group description.
    DesiredCapacity int
    The desired number of instances the group should have at any time.
    DrainingTimeout int
    The time in seconds, the instance is allowed to run while detached from the ELB. This is to allow the instance time to be drained from incoming TCP connections before terminating it, during a scale down operation.
    EbsBlockDevices []ElastigroupEbsBlockDeviceArgs
    EbsOptimized bool
    Enable high bandwidth connectivity between instances and AWS’s Elastic Block Store (EBS). For instance types that are EBS-optimized by default this parameter will be ignored.
    ElasticIps []string
    A list of AWS Elastic IP allocation IDs to associate to the group instances.
    ElasticLoadBalancers []string
    EnableMonitoring bool
    Indicates whether monitoring is enabled for the instance.
    EphemeralBlockDevices []ElastigroupEphemeralBlockDeviceArgs
    HealthCheckGracePeriod int
    The amount of time, in seconds, after the instance has launched to starts and check its health.
    HealthCheckType string
    The service that will perform health checks for the instance. Valid values: "ELB", "HCS", "TARGET_GROUP", "EC2", "K8S_NODE", "NOMAD_NODE", "ECS_CLUSTER_INSTANCE".
    HealthCheckUnhealthyDurationBeforeReplacement int
    The amount of time, in seconds, that we will wait before replacing an instance that is running and became unhealthy (this is only applicable for instances that were once healthy).
    IamInstanceProfile string
    The ARN or name of an IAM instance profile to associate with launched instances.
    ImageId string
    The ID of the AMI used to launch the instance.
    Images []ElastigroupImageArgs
    An array of image objects. Note: Elastigroup can be configured with either imageId or images, but not both.
    ImmediateOdRecoverThreshold int
    InstanceTypesOndemand string
    The type of instance determines your instance's CPU capacity, memory and storage (e.g., m1.small, c1.xlarge).
    InstanceTypesPreferredSpots []string
    Prioritize a subset of spot instance types. Must be a subset of the selected spot instance types.
    InstanceTypesSpots []string
    One or more instance types. Note: Cannot be defined if 'resourceRequirements' is defined.
    InstanceTypesWeights []ElastigroupInstanceTypesWeightArgs
    List of weights per instance type for weighted groups. Each object in the list should have the following attributes:
    IntegrationBeanstalk ElastigroupIntegrationBeanstalkArgs
    IntegrationCodedeploy ElastigroupIntegrationCodedeployArgs
    IntegrationDockerSwarm ElastigroupIntegrationDockerSwarmArgs
    IntegrationEcs ElastigroupIntegrationEcsArgs
    IntegrationGitlab ElastigroupIntegrationGitlabArgs
    IntegrationKubernetes ElastigroupIntegrationKubernetesArgs
    IntegrationMesosphere ElastigroupIntegrationMesosphereArgs
    IntegrationNomad ElastigroupIntegrationNomadArgs
    IntegrationRancher ElastigroupIntegrationRancherArgs
    IntegrationRoute53 ElastigroupIntegrationRoute53Args
    Itfs []ElastigroupItfArgs
    KeyName string
    The key name that should be used for the instance.
    LifetimePeriod string
    Logging ElastigroupLoggingArgs
    Logging configuration.
    MaxSize int
    The maximum number of instances the group should have at any time.
    MetadataOptions ElastigroupMetadataOptionsArgs
    Data that used to configure or manage the running instances:
    MinSize int
    The minimum number of instances the group should have at any time.
    MinimumInstanceLifetime int
    Defines the preferred minimum instance lifetime in hours. Markets which comply with this preference will be prioritized. Optional values: 1, 3, 6, 12, 24.
    MultipleMetrics ElastigroupMultipleMetricsArgs
    Name string
    The group name.
    NetworkInterfaces []ElastigroupNetworkInterfaceArgs
    OnDemandTypes []string
    Available ondemand instance types. Note: Either ondemand or onDemandTypes must be defined, but not both.
    OndemandCount int
    Number of on demand instances to launch in the group. All other instances will be spot instances. When this parameter is set the spot_percentage parameter is being ignored.
    PersistBlockDevices bool
    PersistPrivateIp bool
    PersistRootDevice bool
    PlacementTenancy string
    Enable dedicated tenancy. Note: There is a flat hourly fee for each region in which dedicated tenancy is used. Valid values: "default", "dedicated" .
    PreferredAvailabilityZones []string
    The AZs to prioritize when launching Spot instances. If no markets are available in the Preferred AZs, Spot instances are launched in the non-preferred AZs. Note: Must be a sublist of availability_zones and orientation value must not be "equalAzDistribution".
    PrivateIps []string
    Region string
    The AWS region your group will be created in. Note: This parameter is required if you specify subnets (through subnet_ids). This parameter is optional if you specify Availability Zones (through availability_zones).
    ResourceRequirements []ElastigroupResourceRequirementArgs
    Required instance attributes. Instance types will be selected based on these requirements.
    ResourceTagSpecifications []ElastigroupResourceTagSpecificationArgs
    User will specify which resources should be tagged with group tags.
    RevertToSpot ElastigroupRevertToSpotArgs
    Hold settings for strategy correction – replacing On-Demand for Spot instances. Supported Values: "never", "always", "timeWindow"
    ScalingDownPolicies []ElastigroupScalingDownPolicyArgs
    ScalingStrategies []ElastigroupScalingStrategyArgs
    Set termination policy.
    ScalingTargetPolicies []ElastigroupScalingTargetPolicyArgs
    ScalingUpPolicies []ElastigroupScalingUpPolicyArgs
    ScheduledTasks []ElastigroupScheduledTaskArgs
    ShutdownScript string
    The Base64-encoded shutdown script that executes prior to instance termination, for more information please see: Shutdown Script
    Signals []ElastigroupSignalArgs
    SpotPercentage int
    The percentage of Spot instances that would spin up from the desired_capacity number.
    StatefulDeallocation ElastigroupStatefulDeallocationArgs
    StatefulInstanceActions []ElastigroupStatefulInstanceActionArgs
    SubnetIds []string
    List of Strings of subnet identifiers. Note: When this parameter is set, availability_zones should be left unused.
    Tags []ElastigroupTagArgs
    A key/value mapping of tags to assign to the resource.
    TargetGroupArns []string
    UpdatePolicy ElastigroupUpdatePolicyArgs
    UserData string
    The user data to provide when launching the instance.
    UtilizeCommitments bool
    UtilizeReservedInstances bool
    In a case of any available reserved instances, Elastigroup will utilize them first before purchasing Spot instances.
    WaitForCapacity int
    Minimum number of instances in a 'HEALTHY' status that is required before continuing. This is ignored when updating with blue/green deployment. Cannot exceed desired_capacity.
    WaitForCapacityTimeout int
    Time (seconds) to wait for instances to report a 'HEALTHY' status. Useful for plans with multiple dependencies that take some time to initialize. Leave undefined or set to 0 to indicate no wait. This is ignored when updating with blue/green deployment.
    fallbackToOndemand Boolean
    In a case of no Spot instances available, Elastigroup will launch on-demand instances instead.
    orientation String
    Select a prediction strategy. Valid values: balanced, costOriented, equalAzDistribution, availabilityOriented. You can read more in our documentation.
    product String
    Operation system type. Valid values: "Linux/UNIX", "SUSE Linux", "Windows". For EC2 Classic instances: "Linux/UNIX (Amazon VPC)", "SUSE Linux (Amazon VPC)", "Windows (Amazon VPC)".
    securityGroups List<String>
    A list of associated security group IDS.
    availabilityZones List<String>
    List of Strings of availability zones. When this parameter is set, subnet_ids should be left unused. Note: availability_zones naming syntax follows the convention availability-zone:subnet:placement-group-name. For example, to set an AZ in us-east-1 with subnet subnet-123456 and placement group ClusterI03, you would set: availability_zones = ["us-east-1a:subnet-123456:ClusterI03"]
    blockDevicesMode String
    capacityUnit String
    The capacity unit to launch instances by. If not specified, when choosing the weight unit, each instance will weight as the number of its vCPUs. Valid values: instance, weight.
    considerOdPricing Boolean
    cpuCredits String
    Controls how T3 instances are launched. Valid values: standard, unlimited.
    cpuOptions ElastigroupCpuOptions
    The CPU options for the instances that are launched within the group:
    description String
    The group description.
    desiredCapacity Integer
    The desired number of instances the group should have at any time.
    drainingTimeout Integer
    The time in seconds, the instance is allowed to run while detached from the ELB. This is to allow the instance time to be drained from incoming TCP connections before terminating it, during a scale down operation.
    ebsBlockDevices List<ElastigroupEbsBlockDevice>
    ebsOptimized Boolean
    Enable high bandwidth connectivity between instances and AWS’s Elastic Block Store (EBS). For instance types that are EBS-optimized by default this parameter will be ignored.
    elasticIps List<String>
    A list of AWS Elastic IP allocation IDs to associate to the group instances.
    elasticLoadBalancers List<String>
    enableMonitoring Boolean
    Indicates whether monitoring is enabled for the instance.
    ephemeralBlockDevices List<ElastigroupEphemeralBlockDevice>
    healthCheckGracePeriod Integer
    The amount of time, in seconds, after the instance has launched to starts and check its health.
    healthCheckType String
    The service that will perform health checks for the instance. Valid values: "ELB", "HCS", "TARGET_GROUP", "EC2", "K8S_NODE", "NOMAD_NODE", "ECS_CLUSTER_INSTANCE".
    healthCheckUnhealthyDurationBeforeReplacement Integer
    The amount of time, in seconds, that we will wait before replacing an instance that is running and became unhealthy (this is only applicable for instances that were once healthy).
    iamInstanceProfile String
    The ARN or name of an IAM instance profile to associate with launched instances.
    imageId String
    The ID of the AMI used to launch the instance.
    images List<ElastigroupImage>
    An array of image objects. Note: Elastigroup can be configured with either imageId or images, but not both.
    immediateOdRecoverThreshold Integer
    instanceTypesOndemand String
    The type of instance determines your instance's CPU capacity, memory and storage (e.g., m1.small, c1.xlarge).
    instanceTypesPreferredSpots List<String>
    Prioritize a subset of spot instance types. Must be a subset of the selected spot instance types.
    instanceTypesSpots List<String>
    One or more instance types. Note: Cannot be defined if 'resourceRequirements' is defined.
    instanceTypesWeights List<ElastigroupInstanceTypesWeight>
    List of weights per instance type for weighted groups. Each object in the list should have the following attributes:
    integrationBeanstalk ElastigroupIntegrationBeanstalk
    integrationCodedeploy ElastigroupIntegrationCodedeploy
    integrationDockerSwarm ElastigroupIntegrationDockerSwarm
    integrationEcs ElastigroupIntegrationEcs
    integrationGitlab ElastigroupIntegrationGitlab
    integrationKubernetes ElastigroupIntegrationKubernetes
    integrationMesosphere ElastigroupIntegrationMesosphere
    integrationNomad ElastigroupIntegrationNomad
    integrationRancher ElastigroupIntegrationRancher
    integrationRoute53 ElastigroupIntegrationRoute53
    itfs List<ElastigroupItf>
    keyName String
    The key name that should be used for the instance.
    lifetimePeriod String
    logging ElastigroupLogging
    Logging configuration.
    maxSize Integer
    The maximum number of instances the group should have at any time.
    metadataOptions ElastigroupMetadataOptions
    Data that used to configure or manage the running instances:
    minSize Integer
    The minimum number of instances the group should have at any time.
    minimumInstanceLifetime Integer
    Defines the preferred minimum instance lifetime in hours. Markets which comply with this preference will be prioritized. Optional values: 1, 3, 6, 12, 24.
    multipleMetrics ElastigroupMultipleMetrics
    name String
    The group name.
    networkInterfaces List<ElastigroupNetworkInterface>
    onDemandTypes List<String>
    Available ondemand instance types. Note: Either ondemand or onDemandTypes must be defined, but not both.
    ondemandCount Integer
    Number of on demand instances to launch in the group. All other instances will be spot instances. When this parameter is set the spot_percentage parameter is being ignored.
    persistBlockDevices Boolean
    persistPrivateIp Boolean
    persistRootDevice Boolean
    placementTenancy String
    Enable dedicated tenancy. Note: There is a flat hourly fee for each region in which dedicated tenancy is used. Valid values: "default", "dedicated" .
    preferredAvailabilityZones List<String>
    The AZs to prioritize when launching Spot instances. If no markets are available in the Preferred AZs, Spot instances are launched in the non-preferred AZs. Note: Must be a sublist of availability_zones and orientation value must not be "equalAzDistribution".
    privateIps List<String>
    region String
    The AWS region your group will be created in. Note: This parameter is required if you specify subnets (through subnet_ids). This parameter is optional if you specify Availability Zones (through availability_zones).
    resourceRequirements List<ElastigroupResourceRequirement>
    Required instance attributes. Instance types will be selected based on these requirements.
    resourceTagSpecifications List<ElastigroupResourceTagSpecification>
    User will specify which resources should be tagged with group tags.
    revertToSpot ElastigroupRevertToSpot
    Hold settings for strategy correction – replacing On-Demand for Spot instances. Supported Values: "never", "always", "timeWindow"
    scalingDownPolicies List<ElastigroupScalingDownPolicy>
    scalingStrategies List<ElastigroupScalingStrategy>
    Set termination policy.
    scalingTargetPolicies List<ElastigroupScalingTargetPolicy>
    scalingUpPolicies List<ElastigroupScalingUpPolicy>
    scheduledTasks List<ElastigroupScheduledTask>
    shutdownScript String
    The Base64-encoded shutdown script that executes prior to instance termination, for more information please see: Shutdown Script
    signals List<ElastigroupSignal>
    spotPercentage Integer
    The percentage of Spot instances that would spin up from the desired_capacity number.
    statefulDeallocation ElastigroupStatefulDeallocation
    statefulInstanceActions List<ElastigroupStatefulInstanceAction>
    subnetIds List<String>
    List of Strings of subnet identifiers. Note: When this parameter is set, availability_zones should be left unused.
    tags List<ElastigroupTag>
    A key/value mapping of tags to assign to the resource.
    targetGroupArns List<String>
    updatePolicy ElastigroupUpdatePolicy
    userData String
    The user data to provide when launching the instance.
    utilizeCommitments Boolean
    utilizeReservedInstances Boolean
    In a case of any available reserved instances, Elastigroup will utilize them first before purchasing Spot instances.
    waitForCapacity Integer
    Minimum number of instances in a 'HEALTHY' status that is required before continuing. This is ignored when updating with blue/green deployment. Cannot exceed desired_capacity.
    waitForCapacityTimeout Integer
    Time (seconds) to wait for instances to report a 'HEALTHY' status. Useful for plans with multiple dependencies that take some time to initialize. Leave undefined or set to 0 to indicate no wait. This is ignored when updating with blue/green deployment.
    fallbackToOndemand boolean
    In a case of no Spot instances available, Elastigroup will launch on-demand instances instead.
    orientation string
    Select a prediction strategy. Valid values: balanced, costOriented, equalAzDistribution, availabilityOriented. You can read more in our documentation.
    product string
    Operation system type. Valid values: "Linux/UNIX", "SUSE Linux", "Windows". For EC2 Classic instances: "Linux/UNIX (Amazon VPC)", "SUSE Linux (Amazon VPC)", "Windows (Amazon VPC)".
    securityGroups string[]
    A list of associated security group IDS.
    availabilityZones string[]
    List of Strings of availability zones. When this parameter is set, subnet_ids should be left unused. Note: availability_zones naming syntax follows the convention availability-zone:subnet:placement-group-name. For example, to set an AZ in us-east-1 with subnet subnet-123456 and placement group ClusterI03, you would set: availability_zones = ["us-east-1a:subnet-123456:ClusterI03"]
    blockDevicesMode string
    capacityUnit string
    The capacity unit to launch instances by. If not specified, when choosing the weight unit, each instance will weight as the number of its vCPUs. Valid values: instance, weight.
    considerOdPricing boolean
    cpuCredits string
    Controls how T3 instances are launched. Valid values: standard, unlimited.
    cpuOptions ElastigroupCpuOptions
    The CPU options for the instances that are launched within the group:
    description string
    The group description.
    desiredCapacity number
    The desired number of instances the group should have at any time.
    drainingTimeout number
    The time in seconds, the instance is allowed to run while detached from the ELB. This is to allow the instance time to be drained from incoming TCP connections before terminating it, during a scale down operation.
    ebsBlockDevices ElastigroupEbsBlockDevice[]
    ebsOptimized boolean
    Enable high bandwidth connectivity between instances and AWS’s Elastic Block Store (EBS). For instance types that are EBS-optimized by default this parameter will be ignored.
    elasticIps string[]
    A list of AWS Elastic IP allocation IDs to associate to the group instances.
    elasticLoadBalancers string[]
    enableMonitoring boolean
    Indicates whether monitoring is enabled for the instance.
    ephemeralBlockDevices ElastigroupEphemeralBlockDevice[]
    healthCheckGracePeriod number
    The amount of time, in seconds, after the instance has launched to starts and check its health.
    healthCheckType string
    The service that will perform health checks for the instance. Valid values: "ELB", "HCS", "TARGET_GROUP", "EC2", "K8S_NODE", "NOMAD_NODE", "ECS_CLUSTER_INSTANCE".
    healthCheckUnhealthyDurationBeforeReplacement number
    The amount of time, in seconds, that we will wait before replacing an instance that is running and became unhealthy (this is only applicable for instances that were once healthy).
    iamInstanceProfile string
    The ARN or name of an IAM instance profile to associate with launched instances.
    imageId string
    The ID of the AMI used to launch the instance.
    images ElastigroupImage[]
    An array of image objects. Note: Elastigroup can be configured with either imageId or images, but not both.
    immediateOdRecoverThreshold number
    instanceTypesOndemand string
    The type of instance determines your instance's CPU capacity, memory and storage (e.g., m1.small, c1.xlarge).
    instanceTypesPreferredSpots string[]
    Prioritize a subset of spot instance types. Must be a subset of the selected spot instance types.
    instanceTypesSpots string[]
    One or more instance types. Note: Cannot be defined if 'resourceRequirements' is defined.
    instanceTypesWeights ElastigroupInstanceTypesWeight[]
    List of weights per instance type for weighted groups. Each object in the list should have the following attributes:
    integrationBeanstalk ElastigroupIntegrationBeanstalk
    integrationCodedeploy ElastigroupIntegrationCodedeploy
    integrationDockerSwarm ElastigroupIntegrationDockerSwarm
    integrationEcs ElastigroupIntegrationEcs
    integrationGitlab ElastigroupIntegrationGitlab
    integrationKubernetes ElastigroupIntegrationKubernetes
    integrationMesosphere ElastigroupIntegrationMesosphere
    integrationNomad ElastigroupIntegrationNomad
    integrationRancher ElastigroupIntegrationRancher
    integrationRoute53 ElastigroupIntegrationRoute53
    itfs ElastigroupItf[]
    keyName string
    The key name that should be used for the instance.
    lifetimePeriod string
    logging ElastigroupLogging
    Logging configuration.
    maxSize number
    The maximum number of instances the group should have at any time.
    metadataOptions ElastigroupMetadataOptions
    Data that used to configure or manage the running instances:
    minSize number
    The minimum number of instances the group should have at any time.
    minimumInstanceLifetime number
    Defines the preferred minimum instance lifetime in hours. Markets which comply with this preference will be prioritized. Optional values: 1, 3, 6, 12, 24.
    multipleMetrics ElastigroupMultipleMetrics
    name string
    The group name.
    networkInterfaces ElastigroupNetworkInterface[]
    onDemandTypes string[]
    Available ondemand instance types. Note: Either ondemand or onDemandTypes must be defined, but not both.
    ondemandCount number
    Number of on demand instances to launch in the group. All other instances will be spot instances. When this parameter is set the spot_percentage parameter is being ignored.
    persistBlockDevices boolean
    persistPrivateIp boolean
    persistRootDevice boolean
    placementTenancy string
    Enable dedicated tenancy. Note: There is a flat hourly fee for each region in which dedicated tenancy is used. Valid values: "default", "dedicated" .
    preferredAvailabilityZones string[]
    The AZs to prioritize when launching Spot instances. If no markets are available in the Preferred AZs, Spot instances are launched in the non-preferred AZs. Note: Must be a sublist of availability_zones and orientation value must not be "equalAzDistribution".
    privateIps string[]
    region string
    The AWS region your group will be created in. Note: This parameter is required if you specify subnets (through subnet_ids). This parameter is optional if you specify Availability Zones (through availability_zones).
    resourceRequirements ElastigroupResourceRequirement[]
    Required instance attributes. Instance types will be selected based on these requirements.
    resourceTagSpecifications ElastigroupResourceTagSpecification[]
    User will specify which resources should be tagged with group tags.
    revertToSpot ElastigroupRevertToSpot
    Hold settings for strategy correction – replacing On-Demand for Spot instances. Supported Values: "never", "always", "timeWindow"
    scalingDownPolicies ElastigroupScalingDownPolicy[]
    scalingStrategies ElastigroupScalingStrategy[]
    Set termination policy.
    scalingTargetPolicies ElastigroupScalingTargetPolicy[]
    scalingUpPolicies ElastigroupScalingUpPolicy[]
    scheduledTasks ElastigroupScheduledTask[]
    shutdownScript string
    The Base64-encoded shutdown script that executes prior to instance termination, for more information please see: Shutdown Script
    signals ElastigroupSignal[]
    spotPercentage number
    The percentage of Spot instances that would spin up from the desired_capacity number.
    statefulDeallocation ElastigroupStatefulDeallocation
    statefulInstanceActions ElastigroupStatefulInstanceAction[]
    subnetIds string[]
    List of Strings of subnet identifiers. Note: When this parameter is set, availability_zones should be left unused.
    tags ElastigroupTag[]
    A key/value mapping of tags to assign to the resource.
    targetGroupArns string[]
    updatePolicy ElastigroupUpdatePolicy
    userData string
    The user data to provide when launching the instance.
    utilizeCommitments boolean
    utilizeReservedInstances boolean
    In a case of any available reserved instances, Elastigroup will utilize them first before purchasing Spot instances.
    waitForCapacity number
    Minimum number of instances in a 'HEALTHY' status that is required before continuing. This is ignored when updating with blue/green deployment. Cannot exceed desired_capacity.
    waitForCapacityTimeout number
    Time (seconds) to wait for instances to report a 'HEALTHY' status. Useful for plans with multiple dependencies that take some time to initialize. Leave undefined or set to 0 to indicate no wait. This is ignored when updating with blue/green deployment.
    fallback_to_ondemand bool
    In a case of no Spot instances available, Elastigroup will launch on-demand instances instead.
    orientation str
    Select a prediction strategy. Valid values: balanced, costOriented, equalAzDistribution, availabilityOriented. You can read more in our documentation.
    product str
    Operation system type. Valid values: "Linux/UNIX", "SUSE Linux", "Windows". For EC2 Classic instances: "Linux/UNIX (Amazon VPC)", "SUSE Linux (Amazon VPC)", "Windows (Amazon VPC)".
    security_groups Sequence[str]
    A list of associated security group IDS.
    availability_zones Sequence[str]
    List of Strings of availability zones. When this parameter is set, subnet_ids should be left unused. Note: availability_zones naming syntax follows the convention availability-zone:subnet:placement-group-name. For example, to set an AZ in us-east-1 with subnet subnet-123456 and placement group ClusterI03, you would set: availability_zones = ["us-east-1a:subnet-123456:ClusterI03"]
    block_devices_mode str
    capacity_unit str
    The capacity unit to launch instances by. If not specified, when choosing the weight unit, each instance will weight as the number of its vCPUs. Valid values: instance, weight.
    consider_od_pricing bool
    cpu_credits str
    Controls how T3 instances are launched. Valid values: standard, unlimited.
    cpu_options ElastigroupCpuOptionsArgs
    The CPU options for the instances that are launched within the group:
    description str
    The group description.
    desired_capacity int
    The desired number of instances the group should have at any time.
    draining_timeout int
    The time in seconds, the instance is allowed to run while detached from the ELB. This is to allow the instance time to be drained from incoming TCP connections before terminating it, during a scale down operation.
    ebs_block_devices Sequence[ElastigroupEbsBlockDeviceArgs]
    ebs_optimized bool
    Enable high bandwidth connectivity between instances and AWS’s Elastic Block Store (EBS). For instance types that are EBS-optimized by default this parameter will be ignored.
    elastic_ips Sequence[str]
    A list of AWS Elastic IP allocation IDs to associate to the group instances.
    elastic_load_balancers Sequence[str]
    enable_monitoring bool
    Indicates whether monitoring is enabled for the instance.
    ephemeral_block_devices Sequence[ElastigroupEphemeralBlockDeviceArgs]
    health_check_grace_period int
    The amount of time, in seconds, after the instance has launched to starts and check its health.
    health_check_type str
    The service that will perform health checks for the instance. Valid values: "ELB", "HCS", "TARGET_GROUP", "EC2", "K8S_NODE", "NOMAD_NODE", "ECS_CLUSTER_INSTANCE".
    health_check_unhealthy_duration_before_replacement int
    The amount of time, in seconds, that we will wait before replacing an instance that is running and became unhealthy (this is only applicable for instances that were once healthy).
    iam_instance_profile str
    The ARN or name of an IAM instance profile to associate with launched instances.
    image_id str
    The ID of the AMI used to launch the instance.
    images Sequence[ElastigroupImageArgs]
    An array of image objects. Note: Elastigroup can be configured with either imageId or images, but not both.
    immediate_od_recover_threshold int
    instance_types_ondemand str
    The type of instance determines your instance's CPU capacity, memory and storage (e.g., m1.small, c1.xlarge).
    instance_types_preferred_spots Sequence[str]
    Prioritize a subset of spot instance types. Must be a subset of the selected spot instance types.
    instance_types_spots Sequence[str]
    One or more instance types. Note: Cannot be defined if 'resourceRequirements' is defined.
    instance_types_weights Sequence[ElastigroupInstanceTypesWeightArgs]
    List of weights per instance type for weighted groups. Each object in the list should have the following attributes:
    integration_beanstalk ElastigroupIntegrationBeanstalkArgs
    integration_codedeploy ElastigroupIntegrationCodedeployArgs
    integration_docker_swarm ElastigroupIntegrationDockerSwarmArgs
    integration_ecs ElastigroupIntegrationEcsArgs
    integration_gitlab ElastigroupIntegrationGitlabArgs
    integration_kubernetes ElastigroupIntegrationKubernetesArgs
    integration_mesosphere ElastigroupIntegrationMesosphereArgs
    integration_nomad ElastigroupIntegrationNomadArgs
    integration_rancher ElastigroupIntegrationRancherArgs
    integration_route53 ElastigroupIntegrationRoute53Args
    itfs Sequence[ElastigroupItfArgs]
    key_name str
    The key name that should be used for the instance.
    lifetime_period str
    logging ElastigroupLoggingArgs
    Logging configuration.
    max_size int
    The maximum number of instances the group should have at any time.
    metadata_options ElastigroupMetadataOptionsArgs
    Data that used to configure or manage the running instances:
    min_size int
    The minimum number of instances the group should have at any time.
    minimum_instance_lifetime int
    Defines the preferred minimum instance lifetime in hours. Markets which comply with this preference will be prioritized. Optional values: 1, 3, 6, 12, 24.
    multiple_metrics ElastigroupMultipleMetricsArgs
    name str
    The group name.
    network_interfaces Sequence[ElastigroupNetworkInterfaceArgs]
    on_demand_types Sequence[str]
    Available ondemand instance types. Note: Either ondemand or onDemandTypes must be defined, but not both.
    ondemand_count int
    Number of on demand instances to launch in the group. All other instances will be spot instances. When this parameter is set the spot_percentage parameter is being ignored.
    persist_block_devices bool
    persist_private_ip bool
    persist_root_device bool
    placement_tenancy str
    Enable dedicated tenancy. Note: There is a flat hourly fee for each region in which dedicated tenancy is used. Valid values: "default", "dedicated" .
    preferred_availability_zones Sequence[str]
    The AZs to prioritize when launching Spot instances. If no markets are available in the Preferred AZs, Spot instances are launched in the non-preferred AZs. Note: Must be a sublist of availability_zones and orientation value must not be "equalAzDistribution".
    private_ips Sequence[str]
    region str
    The AWS region your group will be created in. Note: This parameter is required if you specify subnets (through subnet_ids). This parameter is optional if you specify Availability Zones (through availability_zones).
    resource_requirements Sequence[ElastigroupResourceRequirementArgs]
    Required instance attributes. Instance types will be selected based on these requirements.
    resource_tag_specifications Sequence[ElastigroupResourceTagSpecificationArgs]
    User will specify which resources should be tagged with group tags.
    revert_to_spot ElastigroupRevertToSpotArgs
    Hold settings for strategy correction – replacing On-Demand for Spot instances. Supported Values: "never", "always", "timeWindow"
    scaling_down_policies Sequence[ElastigroupScalingDownPolicyArgs]
    scaling_strategies Sequence[ElastigroupScalingStrategyArgs]
    Set termination policy.
    scaling_target_policies Sequence[ElastigroupScalingTargetPolicyArgs]
    scaling_up_policies Sequence[ElastigroupScalingUpPolicyArgs]
    scheduled_tasks Sequence[ElastigroupScheduledTaskArgs]
    shutdown_script str
    The Base64-encoded shutdown script that executes prior to instance termination, for more information please see: Shutdown Script
    signals Sequence[ElastigroupSignalArgs]
    spot_percentage int
    The percentage of Spot instances that would spin up from the desired_capacity number.
    stateful_deallocation ElastigroupStatefulDeallocationArgs
    stateful_instance_actions Sequence[ElastigroupStatefulInstanceActionArgs]
    subnet_ids Sequence[str]
    List of Strings of subnet identifiers. Note: When this parameter is set, availability_zones should be left unused.
    tags Sequence[ElastigroupTagArgs]
    A key/value mapping of tags to assign to the resource.
    target_group_arns Sequence[str]
    update_policy ElastigroupUpdatePolicyArgs
    user_data str
    The user data to provide when launching the instance.
    utilize_commitments bool
    utilize_reserved_instances bool
    In a case of any available reserved instances, Elastigroup will utilize them first before purchasing Spot instances.
    wait_for_capacity int
    Minimum number of instances in a 'HEALTHY' status that is required before continuing. This is ignored when updating with blue/green deployment. Cannot exceed desired_capacity.
    wait_for_capacity_timeout int
    Time (seconds) to wait for instances to report a 'HEALTHY' status. Useful for plans with multiple dependencies that take some time to initialize. Leave undefined or set to 0 to indicate no wait. This is ignored when updating with blue/green deployment.
    fallbackToOndemand Boolean
    In a case of no Spot instances available, Elastigroup will launch on-demand instances instead.
    orientation String
    Select a prediction strategy. Valid values: balanced, costOriented, equalAzDistribution, availabilityOriented. You can read more in our documentation.
    product String
    Operation system type. Valid values: "Linux/UNIX", "SUSE Linux", "Windows". For EC2 Classic instances: "Linux/UNIX (Amazon VPC)", "SUSE Linux (Amazon VPC)", "Windows (Amazon VPC)".
    securityGroups List<String>
    A list of associated security group IDS.
    availabilityZones List<String>
    List of Strings of availability zones. When this parameter is set, subnet_ids should be left unused. Note: availability_zones naming syntax follows the convention availability-zone:subnet:placement-group-name. For example, to set an AZ in us-east-1 with subnet subnet-123456 and placement group ClusterI03, you would set: availability_zones = ["us-east-1a:subnet-123456:ClusterI03"]
    blockDevicesMode String
    capacityUnit String
    The capacity unit to launch instances by. If not specified, when choosing the weight unit, each instance will weight as the number of its vCPUs. Valid values: instance, weight.
    considerOdPricing Boolean
    cpuCredits String
    Controls how T3 instances are launched. Valid values: standard, unlimited.
    cpuOptions Property Map
    The CPU options for the instances that are launched within the group:
    description String
    The group description.
    desiredCapacity Number
    The desired number of instances the group should have at any time.
    drainingTimeout Number
    The time in seconds, the instance is allowed to run while detached from the ELB. This is to allow the instance time to be drained from incoming TCP connections before terminating it, during a scale down operation.
    ebsBlockDevices List<Property Map>
    ebsOptimized Boolean
    Enable high bandwidth connectivity between instances and AWS’s Elastic Block Store (EBS). For instance types that are EBS-optimized by default this parameter will be ignored.
    elasticIps List<String>
    A list of AWS Elastic IP allocation IDs to associate to the group instances.
    elasticLoadBalancers List<String>
    enableMonitoring Boolean
    Indicates whether monitoring is enabled for the instance.
    ephemeralBlockDevices List<Property Map>
    healthCheckGracePeriod Number
    The amount of time, in seconds, after the instance has launched to starts and check its health.
    healthCheckType String
    The service that will perform health checks for the instance. Valid values: "ELB", "HCS", "TARGET_GROUP", "EC2", "K8S_NODE", "NOMAD_NODE", "ECS_CLUSTER_INSTANCE".
    healthCheckUnhealthyDurationBeforeReplacement Number
    The amount of time, in seconds, that we will wait before replacing an instance that is running and became unhealthy (this is only applicable for instances that were once healthy).
    iamInstanceProfile String
    The ARN or name of an IAM instance profile to associate with launched instances.
    imageId String
    The ID of the AMI used to launch the instance.
    images List<Property Map>
    An array of image objects. Note: Elastigroup can be configured with either imageId or images, but not both.
    immediateOdRecoverThreshold Number
    instanceTypesOndemand String
    The type of instance determines your instance's CPU capacity, memory and storage (e.g., m1.small, c1.xlarge).
    instanceTypesPreferredSpots List<String>
    Prioritize a subset of spot instance types. Must be a subset of the selected spot instance types.
    instanceTypesSpots List<String>
    One or more instance types. Note: Cannot be defined if 'resourceRequirements' is defined.
    instanceTypesWeights List<Property Map>
    List of weights per instance type for weighted groups. Each object in the list should have the following attributes:
    integrationBeanstalk Property Map
    integrationCodedeploy Property Map
    integrationDockerSwarm Property Map
    integrationEcs Property Map
    integrationGitlab Property Map
    integrationKubernetes Property Map
    integrationMesosphere Property Map
    integrationNomad Property Map
    integrationRancher Property Map
    integrationRoute53 Property Map
    itfs List<Property Map>
    keyName String
    The key name that should be used for the instance.
    lifetimePeriod String
    logging Property Map
    Logging configuration.
    maxSize Number
    The maximum number of instances the group should have at any time.
    metadataOptions Property Map
    Data that used to configure or manage the running instances:
    minSize Number
    The minimum number of instances the group should have at any time.
    minimumInstanceLifetime Number
    Defines the preferred minimum instance lifetime in hours. Markets which comply with this preference will be prioritized. Optional values: 1, 3, 6, 12, 24.
    multipleMetrics Property Map
    name String
    The group name.
    networkInterfaces List<Property Map>
    onDemandTypes List<String>
    Available ondemand instance types. Note: Either ondemand or onDemandTypes must be defined, but not both.
    ondemandCount Number
    Number of on demand instances to launch in the group. All other instances will be spot instances. When this parameter is set the spot_percentage parameter is being ignored.
    persistBlockDevices Boolean
    persistPrivateIp Boolean
    persistRootDevice Boolean
    placementTenancy String
    Enable dedicated tenancy. Note: There is a flat hourly fee for each region in which dedicated tenancy is used. Valid values: "default", "dedicated" .
    preferredAvailabilityZones List<String>
    The AZs to prioritize when launching Spot instances. If no markets are available in the Preferred AZs, Spot instances are launched in the non-preferred AZs. Note: Must be a sublist of availability_zones and orientation value must not be "equalAzDistribution".
    privateIps List<String>
    region String
    The AWS region your group will be created in. Note: This parameter is required if you specify subnets (through subnet_ids). This parameter is optional if you specify Availability Zones (through availability_zones).
    resourceRequirements List<Property Map>
    Required instance attributes. Instance types will be selected based on these requirements.
    resourceTagSpecifications List<Property Map>
    User will specify which resources should be tagged with group tags.
    revertToSpot Property Map
    Hold settings for strategy correction – replacing On-Demand for Spot instances. Supported Values: "never", "always", "timeWindow"
    scalingDownPolicies List<Property Map>
    scalingStrategies List<Property Map>
    Set termination policy.
    scalingTargetPolicies List<Property Map>
    scalingUpPolicies List<Property Map>
    scheduledTasks List<Property Map>
    shutdownScript String
    The Base64-encoded shutdown script that executes prior to instance termination, for more information please see: Shutdown Script
    signals List<Property Map>
    spotPercentage Number
    The percentage of Spot instances that would spin up from the desired_capacity number.
    statefulDeallocation Property Map
    statefulInstanceActions List<Property Map>
    subnetIds List<String>
    List of Strings of subnet identifiers. Note: When this parameter is set, availability_zones should be left unused.
    tags List<Property Map>
    A key/value mapping of tags to assign to the resource.
    targetGroupArns List<String>
    updatePolicy Property Map
    userData String
    The user data to provide when launching the instance.
    utilizeCommitments Boolean
    utilizeReservedInstances Boolean
    In a case of any available reserved instances, Elastigroup will utilize them first before purchasing Spot instances.
    waitForCapacity Number
    Minimum number of instances in a 'HEALTHY' status that is required before continuing. This is ignored when updating with blue/green deployment. Cannot exceed desired_capacity.
    waitForCapacityTimeout Number
    Time (seconds) to wait for instances to report a 'HEALTHY' status. Useful for plans with multiple dependencies that take some time to initialize. Leave undefined or set to 0 to indicate no wait. This is ignored when updating with blue/green deployment.

    Outputs

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

    Id string
    The provider-assigned unique ID for this managed resource.
    Id string
    The provider-assigned unique ID for this managed resource.
    id String
    The provider-assigned unique ID for this managed resource.
    id string
    The provider-assigned unique ID for this managed resource.
    id str
    The provider-assigned unique ID for this managed resource.
    id String
    The provider-assigned unique ID for this managed resource.

    Look up Existing Elastigroup Resource

    Get an existing Elastigroup 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?: ElastigroupState, opts?: CustomResourceOptions): Elastigroup
    @staticmethod
    def get(resource_name: str,
            id: str,
            opts: Optional[ResourceOptions] = None,
            availability_zones: Optional[Sequence[str]] = None,
            block_devices_mode: Optional[str] = None,
            capacity_unit: Optional[str] = None,
            consider_od_pricing: Optional[bool] = None,
            cpu_credits: Optional[str] = None,
            cpu_options: Optional[ElastigroupCpuOptionsArgs] = None,
            description: Optional[str] = None,
            desired_capacity: Optional[int] = None,
            draining_timeout: Optional[int] = None,
            ebs_block_devices: Optional[Sequence[ElastigroupEbsBlockDeviceArgs]] = None,
            ebs_optimized: Optional[bool] = None,
            elastic_ips: Optional[Sequence[str]] = None,
            elastic_load_balancers: Optional[Sequence[str]] = None,
            enable_monitoring: Optional[bool] = None,
            ephemeral_block_devices: Optional[Sequence[ElastigroupEphemeralBlockDeviceArgs]] = None,
            fallback_to_ondemand: Optional[bool] = None,
            health_check_grace_period: Optional[int] = None,
            health_check_type: Optional[str] = None,
            health_check_unhealthy_duration_before_replacement: Optional[int] = None,
            iam_instance_profile: Optional[str] = None,
            image_id: Optional[str] = None,
            images: Optional[Sequence[ElastigroupImageArgs]] = None,
            immediate_od_recover_threshold: Optional[int] = None,
            instance_types_ondemand: Optional[str] = None,
            instance_types_preferred_spots: Optional[Sequence[str]] = None,
            instance_types_spots: Optional[Sequence[str]] = None,
            instance_types_weights: Optional[Sequence[ElastigroupInstanceTypesWeightArgs]] = None,
            integration_beanstalk: Optional[ElastigroupIntegrationBeanstalkArgs] = None,
            integration_codedeploy: Optional[ElastigroupIntegrationCodedeployArgs] = None,
            integration_docker_swarm: Optional[ElastigroupIntegrationDockerSwarmArgs] = None,
            integration_ecs: Optional[ElastigroupIntegrationEcsArgs] = None,
            integration_gitlab: Optional[ElastigroupIntegrationGitlabArgs] = None,
            integration_kubernetes: Optional[ElastigroupIntegrationKubernetesArgs] = None,
            integration_mesosphere: Optional[ElastigroupIntegrationMesosphereArgs] = None,
            integration_nomad: Optional[ElastigroupIntegrationNomadArgs] = None,
            integration_rancher: Optional[ElastigroupIntegrationRancherArgs] = None,
            integration_route53: Optional[ElastigroupIntegrationRoute53Args] = None,
            itfs: Optional[Sequence[ElastigroupItfArgs]] = None,
            key_name: Optional[str] = None,
            lifetime_period: Optional[str] = None,
            logging: Optional[ElastigroupLoggingArgs] = None,
            max_size: Optional[int] = None,
            metadata_options: Optional[ElastigroupMetadataOptionsArgs] = None,
            min_size: Optional[int] = None,
            minimum_instance_lifetime: Optional[int] = None,
            multiple_metrics: Optional[ElastigroupMultipleMetricsArgs] = None,
            name: Optional[str] = None,
            network_interfaces: Optional[Sequence[ElastigroupNetworkInterfaceArgs]] = None,
            on_demand_types: Optional[Sequence[str]] = None,
            ondemand_count: Optional[int] = None,
            orientation: Optional[str] = None,
            persist_block_devices: Optional[bool] = None,
            persist_private_ip: Optional[bool] = None,
            persist_root_device: Optional[bool] = None,
            placement_tenancy: Optional[str] = None,
            preferred_availability_zones: Optional[Sequence[str]] = None,
            private_ips: Optional[Sequence[str]] = None,
            product: Optional[str] = None,
            region: Optional[str] = None,
            resource_requirements: Optional[Sequence[ElastigroupResourceRequirementArgs]] = None,
            resource_tag_specifications: Optional[Sequence[ElastigroupResourceTagSpecificationArgs]] = None,
            revert_to_spot: Optional[ElastigroupRevertToSpotArgs] = None,
            scaling_down_policies: Optional[Sequence[ElastigroupScalingDownPolicyArgs]] = None,
            scaling_strategies: Optional[Sequence[ElastigroupScalingStrategyArgs]] = None,
            scaling_target_policies: Optional[Sequence[ElastigroupScalingTargetPolicyArgs]] = None,
            scaling_up_policies: Optional[Sequence[ElastigroupScalingUpPolicyArgs]] = None,
            scheduled_tasks: Optional[Sequence[ElastigroupScheduledTaskArgs]] = None,
            security_groups: Optional[Sequence[str]] = None,
            shutdown_script: Optional[str] = None,
            signals: Optional[Sequence[ElastigroupSignalArgs]] = None,
            spot_percentage: Optional[int] = None,
            stateful_deallocation: Optional[ElastigroupStatefulDeallocationArgs] = None,
            stateful_instance_actions: Optional[Sequence[ElastigroupStatefulInstanceActionArgs]] = None,
            subnet_ids: Optional[Sequence[str]] = None,
            tags: Optional[Sequence[ElastigroupTagArgs]] = None,
            target_group_arns: Optional[Sequence[str]] = None,
            update_policy: Optional[ElastigroupUpdatePolicyArgs] = None,
            user_data: Optional[str] = None,
            utilize_commitments: Optional[bool] = None,
            utilize_reserved_instances: Optional[bool] = None,
            wait_for_capacity: Optional[int] = None,
            wait_for_capacity_timeout: Optional[int] = None) -> Elastigroup
    func GetElastigroup(ctx *Context, name string, id IDInput, state *ElastigroupState, opts ...ResourceOption) (*Elastigroup, error)
    public static Elastigroup Get(string name, Input<string> id, ElastigroupState? state, CustomResourceOptions? opts = null)
    public static Elastigroup get(String name, Output<String> id, ElastigroupState 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:
    AvailabilityZones List<string>
    List of Strings of availability zones. When this parameter is set, subnet_ids should be left unused. Note: availability_zones naming syntax follows the convention availability-zone:subnet:placement-group-name. For example, to set an AZ in us-east-1 with subnet subnet-123456 and placement group ClusterI03, you would set: availability_zones = ["us-east-1a:subnet-123456:ClusterI03"]
    BlockDevicesMode string
    CapacityUnit string
    The capacity unit to launch instances by. If not specified, when choosing the weight unit, each instance will weight as the number of its vCPUs. Valid values: instance, weight.
    ConsiderOdPricing bool
    CpuCredits string
    Controls how T3 instances are launched. Valid values: standard, unlimited.
    CpuOptions Pulumi.SpotInst.Aws.Inputs.ElastigroupCpuOptions
    The CPU options for the instances that are launched within the group:
    Description string
    The group description.
    DesiredCapacity int
    The desired number of instances the group should have at any time.
    DrainingTimeout int
    The time in seconds, the instance is allowed to run while detached from the ELB. This is to allow the instance time to be drained from incoming TCP connections before terminating it, during a scale down operation.
    EbsBlockDevices List<Pulumi.SpotInst.Aws.Inputs.ElastigroupEbsBlockDevice>
    EbsOptimized bool
    Enable high bandwidth connectivity between instances and AWS’s Elastic Block Store (EBS). For instance types that are EBS-optimized by default this parameter will be ignored.
    ElasticIps List<string>
    A list of AWS Elastic IP allocation IDs to associate to the group instances.
    ElasticLoadBalancers List<string>
    EnableMonitoring bool
    Indicates whether monitoring is enabled for the instance.
    EphemeralBlockDevices List<Pulumi.SpotInst.Aws.Inputs.ElastigroupEphemeralBlockDevice>
    FallbackToOndemand bool
    In a case of no Spot instances available, Elastigroup will launch on-demand instances instead.
    HealthCheckGracePeriod int
    The amount of time, in seconds, after the instance has launched to starts and check its health.
    HealthCheckType string
    The service that will perform health checks for the instance. Valid values: "ELB", "HCS", "TARGET_GROUP", "EC2", "K8S_NODE", "NOMAD_NODE", "ECS_CLUSTER_INSTANCE".
    HealthCheckUnhealthyDurationBeforeReplacement int
    The amount of time, in seconds, that we will wait before replacing an instance that is running and became unhealthy (this is only applicable for instances that were once healthy).
    IamInstanceProfile string
    The ARN or name of an IAM instance profile to associate with launched instances.
    ImageId string
    The ID of the AMI used to launch the instance.
    Images List<Pulumi.SpotInst.Aws.Inputs.ElastigroupImage>
    An array of image objects. Note: Elastigroup can be configured with either imageId or images, but not both.
    ImmediateOdRecoverThreshold int
    InstanceTypesOndemand string
    The type of instance determines your instance's CPU capacity, memory and storage (e.g., m1.small, c1.xlarge).
    InstanceTypesPreferredSpots List<string>
    Prioritize a subset of spot instance types. Must be a subset of the selected spot instance types.
    InstanceTypesSpots List<string>
    One or more instance types. Note: Cannot be defined if 'resourceRequirements' is defined.
    InstanceTypesWeights List<Pulumi.SpotInst.Aws.Inputs.ElastigroupInstanceTypesWeight>
    List of weights per instance type for weighted groups. Each object in the list should have the following attributes:
    IntegrationBeanstalk Pulumi.SpotInst.Aws.Inputs.ElastigroupIntegrationBeanstalk
    IntegrationCodedeploy Pulumi.SpotInst.Aws.Inputs.ElastigroupIntegrationCodedeploy
    IntegrationDockerSwarm Pulumi.SpotInst.Aws.Inputs.ElastigroupIntegrationDockerSwarm
    IntegrationEcs Pulumi.SpotInst.Aws.Inputs.ElastigroupIntegrationEcs
    IntegrationGitlab Pulumi.SpotInst.Aws.Inputs.ElastigroupIntegrationGitlab
    IntegrationKubernetes Pulumi.SpotInst.Aws.Inputs.ElastigroupIntegrationKubernetes
    IntegrationMesosphere Pulumi.SpotInst.Aws.Inputs.ElastigroupIntegrationMesosphere
    IntegrationNomad Pulumi.SpotInst.Aws.Inputs.ElastigroupIntegrationNomad
    IntegrationRancher Pulumi.SpotInst.Aws.Inputs.ElastigroupIntegrationRancher
    IntegrationRoute53 Pulumi.SpotInst.Aws.Inputs.ElastigroupIntegrationRoute53
    Itfs List<Pulumi.SpotInst.Aws.Inputs.ElastigroupItf>
    KeyName string
    The key name that should be used for the instance.
    LifetimePeriod string
    Logging Pulumi.SpotInst.Aws.Inputs.ElastigroupLogging
    Logging configuration.
    MaxSize int
    The maximum number of instances the group should have at any time.
    MetadataOptions Pulumi.SpotInst.Aws.Inputs.ElastigroupMetadataOptions
    Data that used to configure or manage the running instances:
    MinSize int
    The minimum number of instances the group should have at any time.
    MinimumInstanceLifetime int
    Defines the preferred minimum instance lifetime in hours. Markets which comply with this preference will be prioritized. Optional values: 1, 3, 6, 12, 24.
    MultipleMetrics Pulumi.SpotInst.Aws.Inputs.ElastigroupMultipleMetrics
    Name string
    The group name.
    NetworkInterfaces List<Pulumi.SpotInst.Aws.Inputs.ElastigroupNetworkInterface>
    OnDemandTypes List<string>
    Available ondemand instance types. Note: Either ondemand or onDemandTypes must be defined, but not both.
    OndemandCount int
    Number of on demand instances to launch in the group. All other instances will be spot instances. When this parameter is set the spot_percentage parameter is being ignored.
    Orientation string
    Select a prediction strategy. Valid values: balanced, costOriented, equalAzDistribution, availabilityOriented. You can read more in our documentation.
    PersistBlockDevices bool
    PersistPrivateIp bool
    PersistRootDevice bool
    PlacementTenancy string
    Enable dedicated tenancy. Note: There is a flat hourly fee for each region in which dedicated tenancy is used. Valid values: "default", "dedicated" .
    PreferredAvailabilityZones List<string>
    The AZs to prioritize when launching Spot instances. If no markets are available in the Preferred AZs, Spot instances are launched in the non-preferred AZs. Note: Must be a sublist of availability_zones and orientation value must not be "equalAzDistribution".
    PrivateIps List<string>
    Product string
    Operation system type. Valid values: "Linux/UNIX", "SUSE Linux", "Windows". For EC2 Classic instances: "Linux/UNIX (Amazon VPC)", "SUSE Linux (Amazon VPC)", "Windows (Amazon VPC)".
    Region string
    The AWS region your group will be created in. Note: This parameter is required if you specify subnets (through subnet_ids). This parameter is optional if you specify Availability Zones (through availability_zones).
    ResourceRequirements List<Pulumi.SpotInst.Aws.Inputs.ElastigroupResourceRequirement>
    Required instance attributes. Instance types will be selected based on these requirements.
    ResourceTagSpecifications List<Pulumi.SpotInst.Aws.Inputs.ElastigroupResourceTagSpecification>
    User will specify which resources should be tagged with group tags.
    RevertToSpot Pulumi.SpotInst.Aws.Inputs.ElastigroupRevertToSpot
    Hold settings for strategy correction – replacing On-Demand for Spot instances. Supported Values: "never", "always", "timeWindow"
    ScalingDownPolicies List<Pulumi.SpotInst.Aws.Inputs.ElastigroupScalingDownPolicy>
    ScalingStrategies List<Pulumi.SpotInst.Aws.Inputs.ElastigroupScalingStrategy>
    Set termination policy.
    ScalingTargetPolicies List<Pulumi.SpotInst.Aws.Inputs.ElastigroupScalingTargetPolicy>
    ScalingUpPolicies List<Pulumi.SpotInst.Aws.Inputs.ElastigroupScalingUpPolicy>
    ScheduledTasks List<Pulumi.SpotInst.Aws.Inputs.ElastigroupScheduledTask>
    SecurityGroups List<string>
    A list of associated security group IDS.
    ShutdownScript string
    The Base64-encoded shutdown script that executes prior to instance termination, for more information please see: Shutdown Script
    Signals List<Pulumi.SpotInst.Aws.Inputs.ElastigroupSignal>
    SpotPercentage int
    The percentage of Spot instances that would spin up from the desired_capacity number.
    StatefulDeallocation Pulumi.SpotInst.Aws.Inputs.ElastigroupStatefulDeallocation
    StatefulInstanceActions List<Pulumi.SpotInst.Aws.Inputs.ElastigroupStatefulInstanceAction>
    SubnetIds List<string>
    List of Strings of subnet identifiers. Note: When this parameter is set, availability_zones should be left unused.
    Tags List<Pulumi.SpotInst.Aws.Inputs.ElastigroupTag>
    A key/value mapping of tags to assign to the resource.
    TargetGroupArns List<string>
    UpdatePolicy Pulumi.SpotInst.Aws.Inputs.ElastigroupUpdatePolicy
    UserData string
    The user data to provide when launching the instance.
    UtilizeCommitments bool
    UtilizeReservedInstances bool
    In a case of any available reserved instances, Elastigroup will utilize them first before purchasing Spot instances.
    WaitForCapacity int
    Minimum number of instances in a 'HEALTHY' status that is required before continuing. This is ignored when updating with blue/green deployment. Cannot exceed desired_capacity.
    WaitForCapacityTimeout int
    Time (seconds) to wait for instances to report a 'HEALTHY' status. Useful for plans with multiple dependencies that take some time to initialize. Leave undefined or set to 0 to indicate no wait. This is ignored when updating with blue/green deployment.
    AvailabilityZones []string
    List of Strings of availability zones. When this parameter is set, subnet_ids should be left unused. Note: availability_zones naming syntax follows the convention availability-zone:subnet:placement-group-name. For example, to set an AZ in us-east-1 with subnet subnet-123456 and placement group ClusterI03, you would set: availability_zones = ["us-east-1a:subnet-123456:ClusterI03"]
    BlockDevicesMode string
    CapacityUnit string
    The capacity unit to launch instances by. If not specified, when choosing the weight unit, each instance will weight as the number of its vCPUs. Valid values: instance, weight.
    ConsiderOdPricing bool
    CpuCredits string
    Controls how T3 instances are launched. Valid values: standard, unlimited.
    CpuOptions ElastigroupCpuOptionsArgs
    The CPU options for the instances that are launched within the group:
    Description string
    The group description.
    DesiredCapacity int
    The desired number of instances the group should have at any time.
    DrainingTimeout int
    The time in seconds, the instance is allowed to run while detached from the ELB. This is to allow the instance time to be drained from incoming TCP connections before terminating it, during a scale down operation.
    EbsBlockDevices []ElastigroupEbsBlockDeviceArgs
    EbsOptimized bool
    Enable high bandwidth connectivity between instances and AWS’s Elastic Block Store (EBS). For instance types that are EBS-optimized by default this parameter will be ignored.
    ElasticIps []string
    A list of AWS Elastic IP allocation IDs to associate to the group instances.
    ElasticLoadBalancers []string
    EnableMonitoring bool
    Indicates whether monitoring is enabled for the instance.
    EphemeralBlockDevices []ElastigroupEphemeralBlockDeviceArgs
    FallbackToOndemand bool
    In a case of no Spot instances available, Elastigroup will launch on-demand instances instead.
    HealthCheckGracePeriod int
    The amount of time, in seconds, after the instance has launched to starts and check its health.
    HealthCheckType string
    The service that will perform health checks for the instance. Valid values: "ELB", "HCS", "TARGET_GROUP", "EC2", "K8S_NODE", "NOMAD_NODE", "ECS_CLUSTER_INSTANCE".
    HealthCheckUnhealthyDurationBeforeReplacement int
    The amount of time, in seconds, that we will wait before replacing an instance that is running and became unhealthy (this is only applicable for instances that were once healthy).
    IamInstanceProfile string
    The ARN or name of an IAM instance profile to associate with launched instances.
    ImageId string
    The ID of the AMI used to launch the instance.
    Images []ElastigroupImageArgs
    An array of image objects. Note: Elastigroup can be configured with either imageId or images, but not both.
    ImmediateOdRecoverThreshold int
    InstanceTypesOndemand string
    The type of instance determines your instance's CPU capacity, memory and storage (e.g., m1.small, c1.xlarge).
    InstanceTypesPreferredSpots []string
    Prioritize a subset of spot instance types. Must be a subset of the selected spot instance types.
    InstanceTypesSpots []string
    One or more instance types. Note: Cannot be defined if 'resourceRequirements' is defined.
    InstanceTypesWeights []ElastigroupInstanceTypesWeightArgs
    List of weights per instance type for weighted groups. Each object in the list should have the following attributes:
    IntegrationBeanstalk ElastigroupIntegrationBeanstalkArgs
    IntegrationCodedeploy ElastigroupIntegrationCodedeployArgs
    IntegrationDockerSwarm ElastigroupIntegrationDockerSwarmArgs
    IntegrationEcs ElastigroupIntegrationEcsArgs
    IntegrationGitlab ElastigroupIntegrationGitlabArgs
    IntegrationKubernetes ElastigroupIntegrationKubernetesArgs
    IntegrationMesosphere ElastigroupIntegrationMesosphereArgs
    IntegrationNomad ElastigroupIntegrationNomadArgs
    IntegrationRancher ElastigroupIntegrationRancherArgs
    IntegrationRoute53 ElastigroupIntegrationRoute53Args
    Itfs []ElastigroupItfArgs
    KeyName string
    The key name that should be used for the instance.
    LifetimePeriod string
    Logging ElastigroupLoggingArgs
    Logging configuration.
    MaxSize int
    The maximum number of instances the group should have at any time.
    MetadataOptions ElastigroupMetadataOptionsArgs
    Data that used to configure or manage the running instances:
    MinSize int
    The minimum number of instances the group should have at any time.
    MinimumInstanceLifetime int
    Defines the preferred minimum instance lifetime in hours. Markets which comply with this preference will be prioritized. Optional values: 1, 3, 6, 12, 24.
    MultipleMetrics ElastigroupMultipleMetricsArgs
    Name string
    The group name.
    NetworkInterfaces []ElastigroupNetworkInterfaceArgs
    OnDemandTypes []string
    Available ondemand instance types. Note: Either ondemand or onDemandTypes must be defined, but not both.
    OndemandCount int
    Number of on demand instances to launch in the group. All other instances will be spot instances. When this parameter is set the spot_percentage parameter is being ignored.
    Orientation string
    Select a prediction strategy. Valid values: balanced, costOriented, equalAzDistribution, availabilityOriented. You can read more in our documentation.
    PersistBlockDevices bool
    PersistPrivateIp bool
    PersistRootDevice bool
    PlacementTenancy string
    Enable dedicated tenancy. Note: There is a flat hourly fee for each region in which dedicated tenancy is used. Valid values: "default", "dedicated" .
    PreferredAvailabilityZones []string
    The AZs to prioritize when launching Spot instances. If no markets are available in the Preferred AZs, Spot instances are launched in the non-preferred AZs. Note: Must be a sublist of availability_zones and orientation value must not be "equalAzDistribution".
    PrivateIps []string
    Product string
    Operation system type. Valid values: "Linux/UNIX", "SUSE Linux", "Windows". For EC2 Classic instances: "Linux/UNIX (Amazon VPC)", "SUSE Linux (Amazon VPC)", "Windows (Amazon VPC)".
    Region string
    The AWS region your group will be created in. Note: This parameter is required if you specify subnets (through subnet_ids). This parameter is optional if you specify Availability Zones (through availability_zones).
    ResourceRequirements []ElastigroupResourceRequirementArgs
    Required instance attributes. Instance types will be selected based on these requirements.
    ResourceTagSpecifications []ElastigroupResourceTagSpecificationArgs
    User will specify which resources should be tagged with group tags.
    RevertToSpot ElastigroupRevertToSpotArgs
    Hold settings for strategy correction – replacing On-Demand for Spot instances. Supported Values: "never", "always", "timeWindow"
    ScalingDownPolicies []ElastigroupScalingDownPolicyArgs
    ScalingStrategies []ElastigroupScalingStrategyArgs
    Set termination policy.
    ScalingTargetPolicies []ElastigroupScalingTargetPolicyArgs
    ScalingUpPolicies []ElastigroupScalingUpPolicyArgs
    ScheduledTasks []ElastigroupScheduledTaskArgs
    SecurityGroups []string
    A list of associated security group IDS.
    ShutdownScript string
    The Base64-encoded shutdown script that executes prior to instance termination, for more information please see: Shutdown Script
    Signals []ElastigroupSignalArgs
    SpotPercentage int
    The percentage of Spot instances that would spin up from the desired_capacity number.
    StatefulDeallocation ElastigroupStatefulDeallocationArgs
    StatefulInstanceActions []ElastigroupStatefulInstanceActionArgs
    SubnetIds []string
    List of Strings of subnet identifiers. Note: When this parameter is set, availability_zones should be left unused.
    Tags []ElastigroupTagArgs
    A key/value mapping of tags to assign to the resource.
    TargetGroupArns []string
    UpdatePolicy ElastigroupUpdatePolicyArgs
    UserData string
    The user data to provide when launching the instance.
    UtilizeCommitments bool
    UtilizeReservedInstances bool
    In a case of any available reserved instances, Elastigroup will utilize them first before purchasing Spot instances.
    WaitForCapacity int
    Minimum number of instances in a 'HEALTHY' status that is required before continuing. This is ignored when updating with blue/green deployment. Cannot exceed desired_capacity.
    WaitForCapacityTimeout int
    Time (seconds) to wait for instances to report a 'HEALTHY' status. Useful for plans with multiple dependencies that take some time to initialize. Leave undefined or set to 0 to indicate no wait. This is ignored when updating with blue/green deployment.
    availabilityZones List<String>
    List of Strings of availability zones. When this parameter is set, subnet_ids should be left unused. Note: availability_zones naming syntax follows the convention availability-zone:subnet:placement-group-name. For example, to set an AZ in us-east-1 with subnet subnet-123456 and placement group ClusterI03, you would set: availability_zones = ["us-east-1a:subnet-123456:ClusterI03"]
    blockDevicesMode String
    capacityUnit String
    The capacity unit to launch instances by. If not specified, when choosing the weight unit, each instance will weight as the number of its vCPUs. Valid values: instance, weight.
    considerOdPricing Boolean
    cpuCredits String
    Controls how T3 instances are launched. Valid values: standard, unlimited.
    cpuOptions ElastigroupCpuOptions
    The CPU options for the instances that are launched within the group:
    description String
    The group description.
    desiredCapacity Integer
    The desired number of instances the group should have at any time.
    drainingTimeout Integer
    The time in seconds, the instance is allowed to run while detached from the ELB. This is to allow the instance time to be drained from incoming TCP connections before terminating it, during a scale down operation.
    ebsBlockDevices List<ElastigroupEbsBlockDevice>
    ebsOptimized Boolean
    Enable high bandwidth connectivity between instances and AWS’s Elastic Block Store (EBS). For instance types that are EBS-optimized by default this parameter will be ignored.
    elasticIps List<String>
    A list of AWS Elastic IP allocation IDs to associate to the group instances.
    elasticLoadBalancers List<String>
    enableMonitoring Boolean
    Indicates whether monitoring is enabled for the instance.
    ephemeralBlockDevices List<ElastigroupEphemeralBlockDevice>
    fallbackToOndemand Boolean
    In a case of no Spot instances available, Elastigroup will launch on-demand instances instead.
    healthCheckGracePeriod Integer
    The amount of time, in seconds, after the instance has launched to starts and check its health.
    healthCheckType String
    The service that will perform health checks for the instance. Valid values: "ELB", "HCS", "TARGET_GROUP", "EC2", "K8S_NODE", "NOMAD_NODE", "ECS_CLUSTER_INSTANCE".
    healthCheckUnhealthyDurationBeforeReplacement Integer
    The amount of time, in seconds, that we will wait before replacing an instance that is running and became unhealthy (this is only applicable for instances that were once healthy).
    iamInstanceProfile String
    The ARN or name of an IAM instance profile to associate with launched instances.
    imageId String
    The ID of the AMI used to launch the instance.
    images List<ElastigroupImage>
    An array of image objects. Note: Elastigroup can be configured with either imageId or images, but not both.
    immediateOdRecoverThreshold Integer
    instanceTypesOndemand String
    The type of instance determines your instance's CPU capacity, memory and storage (e.g., m1.small, c1.xlarge).
    instanceTypesPreferredSpots List<String>
    Prioritize a subset of spot instance types. Must be a subset of the selected spot instance types.
    instanceTypesSpots List<String>
    One or more instance types. Note: Cannot be defined if 'resourceRequirements' is defined.
    instanceTypesWeights List<ElastigroupInstanceTypesWeight>
    List of weights per instance type for weighted groups. Each object in the list should have the following attributes:
    integrationBeanstalk ElastigroupIntegrationBeanstalk
    integrationCodedeploy ElastigroupIntegrationCodedeploy
    integrationDockerSwarm ElastigroupIntegrationDockerSwarm
    integrationEcs ElastigroupIntegrationEcs
    integrationGitlab ElastigroupIntegrationGitlab
    integrationKubernetes ElastigroupIntegrationKubernetes
    integrationMesosphere ElastigroupIntegrationMesosphere
    integrationNomad ElastigroupIntegrationNomad
    integrationRancher ElastigroupIntegrationRancher
    integrationRoute53 ElastigroupIntegrationRoute53
    itfs List<ElastigroupItf>
    keyName String
    The key name that should be used for the instance.
    lifetimePeriod String
    logging ElastigroupLogging
    Logging configuration.
    maxSize Integer
    The maximum number of instances the group should have at any time.
    metadataOptions ElastigroupMetadataOptions
    Data that used to configure or manage the running instances:
    minSize Integer
    The minimum number of instances the group should have at any time.
    minimumInstanceLifetime Integer
    Defines the preferred minimum instance lifetime in hours. Markets which comply with this preference will be prioritized. Optional values: 1, 3, 6, 12, 24.
    multipleMetrics ElastigroupMultipleMetrics
    name String
    The group name.
    networkInterfaces List<ElastigroupNetworkInterface>
    onDemandTypes List<String>
    Available ondemand instance types. Note: Either ondemand or onDemandTypes must be defined, but not both.
    ondemandCount Integer
    Number of on demand instances to launch in the group. All other instances will be spot instances. When this parameter is set the spot_percentage parameter is being ignored.
    orientation String
    Select a prediction strategy. Valid values: balanced, costOriented, equalAzDistribution, availabilityOriented. You can read more in our documentation.
    persistBlockDevices Boolean
    persistPrivateIp Boolean
    persistRootDevice Boolean
    placementTenancy String
    Enable dedicated tenancy. Note: There is a flat hourly fee for each region in which dedicated tenancy is used. Valid values: "default", "dedicated" .
    preferredAvailabilityZones List<String>
    The AZs to prioritize when launching Spot instances. If no markets are available in the Preferred AZs, Spot instances are launched in the non-preferred AZs. Note: Must be a sublist of availability_zones and orientation value must not be "equalAzDistribution".
    privateIps List<String>
    product String
    Operation system type. Valid values: "Linux/UNIX", "SUSE Linux", "Windows". For EC2 Classic instances: "Linux/UNIX (Amazon VPC)", "SUSE Linux (Amazon VPC)", "Windows (Amazon VPC)".
    region String
    The AWS region your group will be created in. Note: This parameter is required if you specify subnets (through subnet_ids). This parameter is optional if you specify Availability Zones (through availability_zones).
    resourceRequirements List<ElastigroupResourceRequirement>
    Required instance attributes. Instance types will be selected based on these requirements.
    resourceTagSpecifications List<ElastigroupResourceTagSpecification>
    User will specify which resources should be tagged with group tags.
    revertToSpot ElastigroupRevertToSpot
    Hold settings for strategy correction – replacing On-Demand for Spot instances. Supported Values: "never", "always", "timeWindow"
    scalingDownPolicies List<ElastigroupScalingDownPolicy>
    scalingStrategies List<ElastigroupScalingStrategy>
    Set termination policy.
    scalingTargetPolicies List<ElastigroupScalingTargetPolicy>
    scalingUpPolicies List<ElastigroupScalingUpPolicy>
    scheduledTasks List<ElastigroupScheduledTask>
    securityGroups List<String>
    A list of associated security group IDS.
    shutdownScript String
    The Base64-encoded shutdown script that executes prior to instance termination, for more information please see: Shutdown Script
    signals List<ElastigroupSignal>
    spotPercentage Integer
    The percentage of Spot instances that would spin up from the desired_capacity number.
    statefulDeallocation ElastigroupStatefulDeallocation
    statefulInstanceActions List<ElastigroupStatefulInstanceAction>
    subnetIds List<String>
    List of Strings of subnet identifiers. Note: When this parameter is set, availability_zones should be left unused.
    tags List<ElastigroupTag>
    A key/value mapping of tags to assign to the resource.
    targetGroupArns List<String>
    updatePolicy ElastigroupUpdatePolicy
    userData String
    The user data to provide when launching the instance.
    utilizeCommitments Boolean
    utilizeReservedInstances Boolean
    In a case of any available reserved instances, Elastigroup will utilize them first before purchasing Spot instances.
    waitForCapacity Integer
    Minimum number of instances in a 'HEALTHY' status that is required before continuing. This is ignored when updating with blue/green deployment. Cannot exceed desired_capacity.
    waitForCapacityTimeout Integer
    Time (seconds) to wait for instances to report a 'HEALTHY' status. Useful for plans with multiple dependencies that take some time to initialize. Leave undefined or set to 0 to indicate no wait. This is ignored when updating with blue/green deployment.
    availabilityZones string[]
    List of Strings of availability zones. When this parameter is set, subnet_ids should be left unused. Note: availability_zones naming syntax follows the convention availability-zone:subnet:placement-group-name. For example, to set an AZ in us-east-1 with subnet subnet-123456 and placement group ClusterI03, you would set: availability_zones = ["us-east-1a:subnet-123456:ClusterI03"]
    blockDevicesMode string
    capacityUnit string
    The capacity unit to launch instances by. If not specified, when choosing the weight unit, each instance will weight as the number of its vCPUs. Valid values: instance, weight.
    considerOdPricing boolean
    cpuCredits string
    Controls how T3 instances are launched. Valid values: standard, unlimited.
    cpuOptions ElastigroupCpuOptions
    The CPU options for the instances that are launched within the group:
    description string
    The group description.
    desiredCapacity number
    The desired number of instances the group should have at any time.
    drainingTimeout number
    The time in seconds, the instance is allowed to run while detached from the ELB. This is to allow the instance time to be drained from incoming TCP connections before terminating it, during a scale down operation.
    ebsBlockDevices ElastigroupEbsBlockDevice[]
    ebsOptimized boolean
    Enable high bandwidth connectivity between instances and AWS’s Elastic Block Store (EBS). For instance types that are EBS-optimized by default this parameter will be ignored.
    elasticIps string[]
    A list of AWS Elastic IP allocation IDs to associate to the group instances.
    elasticLoadBalancers string[]
    enableMonitoring boolean
    Indicates whether monitoring is enabled for the instance.
    ephemeralBlockDevices ElastigroupEphemeralBlockDevice[]
    fallbackToOndemand boolean
    In a case of no Spot instances available, Elastigroup will launch on-demand instances instead.
    healthCheckGracePeriod number
    The amount of time, in seconds, after the instance has launched to starts and check its health.
    healthCheckType string
    The service that will perform health checks for the instance. Valid values: "ELB", "HCS", "TARGET_GROUP", "EC2", "K8S_NODE", "NOMAD_NODE", "ECS_CLUSTER_INSTANCE".
    healthCheckUnhealthyDurationBeforeReplacement number
    The amount of time, in seconds, that we will wait before replacing an instance that is running and became unhealthy (this is only applicable for instances that were once healthy).
    iamInstanceProfile string
    The ARN or name of an IAM instance profile to associate with launched instances.
    imageId string
    The ID of the AMI used to launch the instance.
    images ElastigroupImage[]
    An array of image objects. Note: Elastigroup can be configured with either imageId or images, but not both.
    immediateOdRecoverThreshold number
    instanceTypesOndemand string
    The type of instance determines your instance's CPU capacity, memory and storage (e.g., m1.small, c1.xlarge).
    instanceTypesPreferredSpots string[]
    Prioritize a subset of spot instance types. Must be a subset of the selected spot instance types.
    instanceTypesSpots string[]
    One or more instance types. Note: Cannot be defined if 'resourceRequirements' is defined.
    instanceTypesWeights ElastigroupInstanceTypesWeight[]
    List of weights per instance type for weighted groups. Each object in the list should have the following attributes:
    integrationBeanstalk ElastigroupIntegrationBeanstalk
    integrationCodedeploy ElastigroupIntegrationCodedeploy
    integrationDockerSwarm ElastigroupIntegrationDockerSwarm
    integrationEcs ElastigroupIntegrationEcs
    integrationGitlab ElastigroupIntegrationGitlab
    integrationKubernetes ElastigroupIntegrationKubernetes
    integrationMesosphere ElastigroupIntegrationMesosphere
    integrationNomad ElastigroupIntegrationNomad
    integrationRancher ElastigroupIntegrationRancher
    integrationRoute53 ElastigroupIntegrationRoute53
    itfs ElastigroupItf[]
    keyName string
    The key name that should be used for the instance.
    lifetimePeriod string
    logging ElastigroupLogging
    Logging configuration.
    maxSize number
    The maximum number of instances the group should have at any time.
    metadataOptions ElastigroupMetadataOptions
    Data that used to configure or manage the running instances:
    minSize number
    The minimum number of instances the group should have at any time.
    minimumInstanceLifetime number
    Defines the preferred minimum instance lifetime in hours. Markets which comply with this preference will be prioritized. Optional values: 1, 3, 6, 12, 24.
    multipleMetrics ElastigroupMultipleMetrics
    name string
    The group name.
    networkInterfaces ElastigroupNetworkInterface[]
    onDemandTypes string[]
    Available ondemand instance types. Note: Either ondemand or onDemandTypes must be defined, but not both.
    ondemandCount number
    Number of on demand instances to launch in the group. All other instances will be spot instances. When this parameter is set the spot_percentage parameter is being ignored.
    orientation string
    Select a prediction strategy. Valid values: balanced, costOriented, equalAzDistribution, availabilityOriented. You can read more in our documentation.
    persistBlockDevices boolean
    persistPrivateIp boolean
    persistRootDevice boolean
    placementTenancy string
    Enable dedicated tenancy. Note: There is a flat hourly fee for each region in which dedicated tenancy is used. Valid values: "default", "dedicated" .
    preferredAvailabilityZones string[]
    The AZs to prioritize when launching Spot instances. If no markets are available in the Preferred AZs, Spot instances are launched in the non-preferred AZs. Note: Must be a sublist of availability_zones and orientation value must not be "equalAzDistribution".
    privateIps string[]
    product string
    Operation system type. Valid values: "Linux/UNIX", "SUSE Linux", "Windows". For EC2 Classic instances: "Linux/UNIX (Amazon VPC)", "SUSE Linux (Amazon VPC)", "Windows (Amazon VPC)".
    region string
    The AWS region your group will be created in. Note: This parameter is required if you specify subnets (through subnet_ids). This parameter is optional if you specify Availability Zones (through availability_zones).
    resourceRequirements ElastigroupResourceRequirement[]
    Required instance attributes. Instance types will be selected based on these requirements.
    resourceTagSpecifications ElastigroupResourceTagSpecification[]
    User will specify which resources should be tagged with group tags.
    revertToSpot ElastigroupRevertToSpot
    Hold settings for strategy correction – replacing On-Demand for Spot instances. Supported Values: "never", "always", "timeWindow"
    scalingDownPolicies ElastigroupScalingDownPolicy[]
    scalingStrategies ElastigroupScalingStrategy[]
    Set termination policy.
    scalingTargetPolicies ElastigroupScalingTargetPolicy[]
    scalingUpPolicies ElastigroupScalingUpPolicy[]
    scheduledTasks ElastigroupScheduledTask[]
    securityGroups string[]
    A list of associated security group IDS.
    shutdownScript string
    The Base64-encoded shutdown script that executes prior to instance termination, for more information please see: Shutdown Script
    signals ElastigroupSignal[]
    spotPercentage number
    The percentage of Spot instances that would spin up from the desired_capacity number.
    statefulDeallocation ElastigroupStatefulDeallocation
    statefulInstanceActions ElastigroupStatefulInstanceAction[]
    subnetIds string[]
    List of Strings of subnet identifiers. Note: When this parameter is set, availability_zones should be left unused.
    tags ElastigroupTag[]
    A key/value mapping of tags to assign to the resource.
    targetGroupArns string[]
    updatePolicy ElastigroupUpdatePolicy
    userData string
    The user data to provide when launching the instance.
    utilizeCommitments boolean
    utilizeReservedInstances boolean
    In a case of any available reserved instances, Elastigroup will utilize them first before purchasing Spot instances.
    waitForCapacity number
    Minimum number of instances in a 'HEALTHY' status that is required before continuing. This is ignored when updating with blue/green deployment. Cannot exceed desired_capacity.
    waitForCapacityTimeout number
    Time (seconds) to wait for instances to report a 'HEALTHY' status. Useful for plans with multiple dependencies that take some time to initialize. Leave undefined or set to 0 to indicate no wait. This is ignored when updating with blue/green deployment.
    availability_zones Sequence[str]
    List of Strings of availability zones. When this parameter is set, subnet_ids should be left unused. Note: availability_zones naming syntax follows the convention availability-zone:subnet:placement-group-name. For example, to set an AZ in us-east-1 with subnet subnet-123456 and placement group ClusterI03, you would set: availability_zones = ["us-east-1a:subnet-123456:ClusterI03"]
    block_devices_mode str
    capacity_unit str
    The capacity unit to launch instances by. If not specified, when choosing the weight unit, each instance will weight as the number of its vCPUs. Valid values: instance, weight.
    consider_od_pricing bool
    cpu_credits str
    Controls how T3 instances are launched. Valid values: standard, unlimited.
    cpu_options ElastigroupCpuOptionsArgs
    The CPU options for the instances that are launched within the group:
    description str
    The group description.
    desired_capacity int
    The desired number of instances the group should have at any time.
    draining_timeout int
    The time in seconds, the instance is allowed to run while detached from the ELB. This is to allow the instance time to be drained from incoming TCP connections before terminating it, during a scale down operation.
    ebs_block_devices Sequence[ElastigroupEbsBlockDeviceArgs]
    ebs_optimized bool
    Enable high bandwidth connectivity between instances and AWS’s Elastic Block Store (EBS). For instance types that are EBS-optimized by default this parameter will be ignored.
    elastic_ips Sequence[str]
    A list of AWS Elastic IP allocation IDs to associate to the group instances.
    elastic_load_balancers Sequence[str]
    enable_monitoring bool
    Indicates whether monitoring is enabled for the instance.
    ephemeral_block_devices Sequence[ElastigroupEphemeralBlockDeviceArgs]
    fallback_to_ondemand bool
    In a case of no Spot instances available, Elastigroup will launch on-demand instances instead.
    health_check_grace_period int
    The amount of time, in seconds, after the instance has launched to starts and check its health.
    health_check_type str
    The service that will perform health checks for the instance. Valid values: "ELB", "HCS", "TARGET_GROUP", "EC2", "K8S_NODE", "NOMAD_NODE", "ECS_CLUSTER_INSTANCE".
    health_check_unhealthy_duration_before_replacement int
    The amount of time, in seconds, that we will wait before replacing an instance that is running and became unhealthy (this is only applicable for instances that were once healthy).
    iam_instance_profile str
    The ARN or name of an IAM instance profile to associate with launched instances.
    image_id str
    The ID of the AMI used to launch the instance.
    images Sequence[ElastigroupImageArgs]
    An array of image objects. Note: Elastigroup can be configured with either imageId or images, but not both.
    immediate_od_recover_threshold int
    instance_types_ondemand str
    The type of instance determines your instance's CPU capacity, memory and storage (e.g., m1.small, c1.xlarge).
    instance_types_preferred_spots Sequence[str]
    Prioritize a subset of spot instance types. Must be a subset of the selected spot instance types.
    instance_types_spots Sequence[str]
    One or more instance types. Note: Cannot be defined if 'resourceRequirements' is defined.
    instance_types_weights Sequence[ElastigroupInstanceTypesWeightArgs]
    List of weights per instance type for weighted groups. Each object in the list should have the following attributes:
    integration_beanstalk ElastigroupIntegrationBeanstalkArgs
    integration_codedeploy ElastigroupIntegrationCodedeployArgs
    integration_docker_swarm ElastigroupIntegrationDockerSwarmArgs
    integration_ecs ElastigroupIntegrationEcsArgs
    integration_gitlab ElastigroupIntegrationGitlabArgs
    integration_kubernetes ElastigroupIntegrationKubernetesArgs
    integration_mesosphere ElastigroupIntegrationMesosphereArgs
    integration_nomad ElastigroupIntegrationNomadArgs
    integration_rancher ElastigroupIntegrationRancherArgs
    integration_route53 ElastigroupIntegrationRoute53Args
    itfs Sequence[ElastigroupItfArgs]
    key_name str
    The key name that should be used for the instance.
    lifetime_period str
    logging ElastigroupLoggingArgs
    Logging configuration.
    max_size int
    The maximum number of instances the group should have at any time.
    metadata_options ElastigroupMetadataOptionsArgs
    Data that used to configure or manage the running instances:
    min_size int
    The minimum number of instances the group should have at any time.
    minimum_instance_lifetime int
    Defines the preferred minimum instance lifetime in hours. Markets which comply with this preference will be prioritized. Optional values: 1, 3, 6, 12, 24.
    multiple_metrics ElastigroupMultipleMetricsArgs
    name str
    The group name.
    network_interfaces Sequence[ElastigroupNetworkInterfaceArgs]
    on_demand_types Sequence[str]
    Available ondemand instance types. Note: Either ondemand or onDemandTypes must be defined, but not both.
    ondemand_count int
    Number of on demand instances to launch in the group. All other instances will be spot instances. When this parameter is set the spot_percentage parameter is being ignored.
    orientation str
    Select a prediction strategy. Valid values: balanced, costOriented, equalAzDistribution, availabilityOriented. You can read more in our documentation.
    persist_block_devices bool
    persist_private_ip bool
    persist_root_device bool
    placement_tenancy str
    Enable dedicated tenancy. Note: There is a flat hourly fee for each region in which dedicated tenancy is used. Valid values: "default", "dedicated" .
    preferred_availability_zones Sequence[str]
    The AZs to prioritize when launching Spot instances. If no markets are available in the Preferred AZs, Spot instances are launched in the non-preferred AZs. Note: Must be a sublist of availability_zones and orientation value must not be "equalAzDistribution".
    private_ips Sequence[str]
    product str
    Operation system type. Valid values: "Linux/UNIX", "SUSE Linux", "Windows". For EC2 Classic instances: "Linux/UNIX (Amazon VPC)", "SUSE Linux (Amazon VPC)", "Windows (Amazon VPC)".
    region str
    The AWS region your group will be created in. Note: This parameter is required if you specify subnets (through subnet_ids). This parameter is optional if you specify Availability Zones (through availability_zones).
    resource_requirements Sequence[ElastigroupResourceRequirementArgs]
    Required instance attributes. Instance types will be selected based on these requirements.
    resource_tag_specifications Sequence[ElastigroupResourceTagSpecificationArgs]
    User will specify which resources should be tagged with group tags.
    revert_to_spot ElastigroupRevertToSpotArgs
    Hold settings for strategy correction – replacing On-Demand for Spot instances. Supported Values: "never", "always", "timeWindow"
    scaling_down_policies Sequence[ElastigroupScalingDownPolicyArgs]
    scaling_strategies Sequence[ElastigroupScalingStrategyArgs]
    Set termination policy.
    scaling_target_policies Sequence[ElastigroupScalingTargetPolicyArgs]
    scaling_up_policies Sequence[ElastigroupScalingUpPolicyArgs]
    scheduled_tasks Sequence[ElastigroupScheduledTaskArgs]
    security_groups Sequence[str]
    A list of associated security group IDS.
    shutdown_script str
    The Base64-encoded shutdown script that executes prior to instance termination, for more information please see: Shutdown Script
    signals Sequence[ElastigroupSignalArgs]
    spot_percentage int
    The percentage of Spot instances that would spin up from the desired_capacity number.
    stateful_deallocation ElastigroupStatefulDeallocationArgs
    stateful_instance_actions Sequence[ElastigroupStatefulInstanceActionArgs]
    subnet_ids Sequence[str]
    List of Strings of subnet identifiers. Note: When this parameter is set, availability_zones should be left unused.
    tags Sequence[ElastigroupTagArgs]
    A key/value mapping of tags to assign to the resource.
    target_group_arns Sequence[str]
    update_policy ElastigroupUpdatePolicyArgs
    user_data str
    The user data to provide when launching the instance.
    utilize_commitments bool
    utilize_reserved_instances bool
    In a case of any available reserved instances, Elastigroup will utilize them first before purchasing Spot instances.
    wait_for_capacity int
    Minimum number of instances in a 'HEALTHY' status that is required before continuing. This is ignored when updating with blue/green deployment. Cannot exceed desired_capacity.
    wait_for_capacity_timeout int
    Time (seconds) to wait for instances to report a 'HEALTHY' status. Useful for plans with multiple dependencies that take some time to initialize. Leave undefined or set to 0 to indicate no wait. This is ignored when updating with blue/green deployment.
    availabilityZones List<String>
    List of Strings of availability zones. When this parameter is set, subnet_ids should be left unused. Note: availability_zones naming syntax follows the convention availability-zone:subnet:placement-group-name. For example, to set an AZ in us-east-1 with subnet subnet-123456 and placement group ClusterI03, you would set: availability_zones = ["us-east-1a:subnet-123456:ClusterI03"]
    blockDevicesMode String
    capacityUnit String
    The capacity unit to launch instances by. If not specified, when choosing the weight unit, each instance will weight as the number of its vCPUs. Valid values: instance, weight.
    considerOdPricing Boolean
    cpuCredits String
    Controls how T3 instances are launched. Valid values: standard, unlimited.
    cpuOptions Property Map
    The CPU options for the instances that are launched within the group:
    description String
    The group description.
    desiredCapacity Number
    The desired number of instances the group should have at any time.
    drainingTimeout Number
    The time in seconds, the instance is allowed to run while detached from the ELB. This is to allow the instance time to be drained from incoming TCP connections before terminating it, during a scale down operation.
    ebsBlockDevices List<Property Map>
    ebsOptimized Boolean
    Enable high bandwidth connectivity between instances and AWS’s Elastic Block Store (EBS). For instance types that are EBS-optimized by default this parameter will be ignored.
    elasticIps List<String>
    A list of AWS Elastic IP allocation IDs to associate to the group instances.
    elasticLoadBalancers List<String>
    enableMonitoring Boolean
    Indicates whether monitoring is enabled for the instance.
    ephemeralBlockDevices List<Property Map>
    fallbackToOndemand Boolean
    In a case of no Spot instances available, Elastigroup will launch on-demand instances instead.
    healthCheckGracePeriod Number
    The amount of time, in seconds, after the instance has launched to starts and check its health.
    healthCheckType String
    The service that will perform health checks for the instance. Valid values: "ELB", "HCS", "TARGET_GROUP", "EC2", "K8S_NODE", "NOMAD_NODE", "ECS_CLUSTER_INSTANCE".
    healthCheckUnhealthyDurationBeforeReplacement Number
    The amount of time, in seconds, that we will wait before replacing an instance that is running and became unhealthy (this is only applicable for instances that were once healthy).
    iamInstanceProfile String
    The ARN or name of an IAM instance profile to associate with launched instances.
    imageId String
    The ID of the AMI used to launch the instance.
    images List<Property Map>
    An array of image objects. Note: Elastigroup can be configured with either imageId or images, but not both.
    immediateOdRecoverThreshold Number
    instanceTypesOndemand String
    The type of instance determines your instance's CPU capacity, memory and storage (e.g., m1.small, c1.xlarge).
    instanceTypesPreferredSpots List<String>
    Prioritize a subset of spot instance types. Must be a subset of the selected spot instance types.
    instanceTypesSpots List<String>
    One or more instance types. Note: Cannot be defined if 'resourceRequirements' is defined.
    instanceTypesWeights List<Property Map>
    List of weights per instance type for weighted groups. Each object in the list should have the following attributes:
    integrationBeanstalk Property Map
    integrationCodedeploy Property Map
    integrationDockerSwarm Property Map
    integrationEcs Property Map
    integrationGitlab Property Map
    integrationKubernetes Property Map
    integrationMesosphere Property Map
    integrationNomad Property Map
    integrationRancher Property Map
    integrationRoute53 Property Map
    itfs List<Property Map>
    keyName String
    The key name that should be used for the instance.
    lifetimePeriod String
    logging Property Map
    Logging configuration.
    maxSize Number
    The maximum number of instances the group should have at any time.
    metadataOptions Property Map
    Data that used to configure or manage the running instances:
    minSize Number
    The minimum number of instances the group should have at any time.
    minimumInstanceLifetime Number
    Defines the preferred minimum instance lifetime in hours. Markets which comply with this preference will be prioritized. Optional values: 1, 3, 6, 12, 24.
    multipleMetrics Property Map
    name String
    The group name.
    networkInterfaces List<Property Map>
    onDemandTypes List<String>
    Available ondemand instance types. Note: Either ondemand or onDemandTypes must be defined, but not both.
    ondemandCount Number
    Number of on demand instances to launch in the group. All other instances will be spot instances. When this parameter is set the spot_percentage parameter is being ignored.
    orientation String
    Select a prediction strategy. Valid values: balanced, costOriented, equalAzDistribution, availabilityOriented. You can read more in our documentation.
    persistBlockDevices Boolean
    persistPrivateIp Boolean
    persistRootDevice Boolean
    placementTenancy String
    Enable dedicated tenancy. Note: There is a flat hourly fee for each region in which dedicated tenancy is used. Valid values: "default", "dedicated" .
    preferredAvailabilityZones List<String>
    The AZs to prioritize when launching Spot instances. If no markets are available in the Preferred AZs, Spot instances are launched in the non-preferred AZs. Note: Must be a sublist of availability_zones and orientation value must not be "equalAzDistribution".
    privateIps List<String>
    product String
    Operation system type. Valid values: "Linux/UNIX", "SUSE Linux", "Windows". For EC2 Classic instances: "Linux/UNIX (Amazon VPC)", "SUSE Linux (Amazon VPC)", "Windows (Amazon VPC)".
    region String
    The AWS region your group will be created in. Note: This parameter is required if you specify subnets (through subnet_ids). This parameter is optional if you specify Availability Zones (through availability_zones).
    resourceRequirements List<Property Map>
    Required instance attributes. Instance types will be selected based on these requirements.
    resourceTagSpecifications List<Property Map>
    User will specify which resources should be tagged with group tags.
    revertToSpot Property Map
    Hold settings for strategy correction – replacing On-Demand for Spot instances. Supported Values: "never", "always", "timeWindow"
    scalingDownPolicies List<Property Map>
    scalingStrategies List<Property Map>
    Set termination policy.
    scalingTargetPolicies List<Property Map>
    scalingUpPolicies List<Property Map>
    scheduledTasks List<Property Map>
    securityGroups List<String>
    A list of associated security group IDS.
    shutdownScript String
    The Base64-encoded shutdown script that executes prior to instance termination, for more information please see: Shutdown Script
    signals List<Property Map>
    spotPercentage Number
    The percentage of Spot instances that would spin up from the desired_capacity number.
    statefulDeallocation Property Map
    statefulInstanceActions List<Property Map>
    subnetIds List<String>
    List of Strings of subnet identifiers. Note: When this parameter is set, availability_zones should be left unused.
    tags List<Property Map>
    A key/value mapping of tags to assign to the resource.
    targetGroupArns List<String>
    updatePolicy Property Map
    userData String
    The user data to provide when launching the instance.
    utilizeCommitments Boolean
    utilizeReservedInstances Boolean
    In a case of any available reserved instances, Elastigroup will utilize them first before purchasing Spot instances.
    waitForCapacity Number
    Minimum number of instances in a 'HEALTHY' status that is required before continuing. This is ignored when updating with blue/green deployment. Cannot exceed desired_capacity.
    waitForCapacityTimeout Number
    Time (seconds) to wait for instances to report a 'HEALTHY' status. Useful for plans with multiple dependencies that take some time to initialize. Leave undefined or set to 0 to indicate no wait. This is ignored when updating with blue/green deployment.

    Supporting Types

    ElastigroupCpuOptions, ElastigroupCpuOptionsArgs

    ThreadsPerCore int
    The ability to define the number of threads per core in instances that allow this.
    ThreadsPerCore int
    The ability to define the number of threads per core in instances that allow this.
    threadsPerCore Integer
    The ability to define the number of threads per core in instances that allow this.
    threadsPerCore number
    The ability to define the number of threads per core in instances that allow this.
    threads_per_core int
    The ability to define the number of threads per core in instances that allow this.
    threadsPerCore Number
    The ability to define the number of threads per core in instances that allow this.

    ElastigroupEbsBlockDevice, ElastigroupEbsBlockDeviceArgs

    DeviceName string
    The name of the device to mount.
    DeleteOnTermination bool
    Whether the volume should be destroyed on instance termination.
    Encrypted bool
    Enables EBS encryption on the volume.
    Iops int
    The amount of provisioned IOPS. This must be set with a volume_type of "io1".
    KmsKeyId string
    ID for a user managed CMK under which the EBS Volume is encrypted
    SnapshotId string
    The Snapshot ID to mount.
    Throughput int

    The amount of data transferred to or from a storage device per second, you can use this param just in a case that volume_type = gp3.

    Modifying any ebs_block_device currently requires resource replacement.

    Usage:

    VolumeSize int
    The size of the volume in gigabytes.
    VolumeType string
    The type of volume. Can be "standard", "gp2", "gp3", "io1", "st1" or "sc1".
    DeviceName string
    The name of the device to mount.
    DeleteOnTermination bool
    Whether the volume should be destroyed on instance termination.
    Encrypted bool
    Enables EBS encryption on the volume.
    Iops int
    The amount of provisioned IOPS. This must be set with a volume_type of "io1".
    KmsKeyId string
    ID for a user managed CMK under which the EBS Volume is encrypted
    SnapshotId string
    The Snapshot ID to mount.
    Throughput int

    The amount of data transferred to or from a storage device per second, you can use this param just in a case that volume_type = gp3.

    Modifying any ebs_block_device currently requires resource replacement.

    Usage:

    VolumeSize int
    The size of the volume in gigabytes.
    VolumeType string
    The type of volume. Can be "standard", "gp2", "gp3", "io1", "st1" or "sc1".
    deviceName String
    The name of the device to mount.
    deleteOnTermination Boolean
    Whether the volume should be destroyed on instance termination.
    encrypted Boolean
    Enables EBS encryption on the volume.
    iops Integer
    The amount of provisioned IOPS. This must be set with a volume_type of "io1".
    kmsKeyId String
    ID for a user managed CMK under which the EBS Volume is encrypted
    snapshotId String
    The Snapshot ID to mount.
    throughput Integer

    The amount of data transferred to or from a storage device per second, you can use this param just in a case that volume_type = gp3.

    Modifying any ebs_block_device currently requires resource replacement.

    Usage:

    volumeSize Integer
    The size of the volume in gigabytes.
    volumeType String
    The type of volume. Can be "standard", "gp2", "gp3", "io1", "st1" or "sc1".
    deviceName string
    The name of the device to mount.
    deleteOnTermination boolean
    Whether the volume should be destroyed on instance termination.
    encrypted boolean
    Enables EBS encryption on the volume.
    iops number
    The amount of provisioned IOPS. This must be set with a volume_type of "io1".
    kmsKeyId string
    ID for a user managed CMK under which the EBS Volume is encrypted
    snapshotId string
    The Snapshot ID to mount.
    throughput number

    The amount of data transferred to or from a storage device per second, you can use this param just in a case that volume_type = gp3.

    Modifying any ebs_block_device currently requires resource replacement.

    Usage:

    volumeSize number
    The size of the volume in gigabytes.
    volumeType string
    The type of volume. Can be "standard", "gp2", "gp3", "io1", "st1" or "sc1".
    device_name str
    The name of the device to mount.
    delete_on_termination bool
    Whether the volume should be destroyed on instance termination.
    encrypted bool
    Enables EBS encryption on the volume.
    iops int
    The amount of provisioned IOPS. This must be set with a volume_type of "io1".
    kms_key_id str
    ID for a user managed CMK under which the EBS Volume is encrypted
    snapshot_id str
    The Snapshot ID to mount.
    throughput int

    The amount of data transferred to or from a storage device per second, you can use this param just in a case that volume_type = gp3.

    Modifying any ebs_block_device currently requires resource replacement.

    Usage:

    volume_size int
    The size of the volume in gigabytes.
    volume_type str
    The type of volume. Can be "standard", "gp2", "gp3", "io1", "st1" or "sc1".
    deviceName String
    The name of the device to mount.
    deleteOnTermination Boolean
    Whether the volume should be destroyed on instance termination.
    encrypted Boolean
    Enables EBS encryption on the volume.
    iops Number
    The amount of provisioned IOPS. This must be set with a volume_type of "io1".
    kmsKeyId String
    ID for a user managed CMK under which the EBS Volume is encrypted
    snapshotId String
    The Snapshot ID to mount.
    throughput Number

    The amount of data transferred to or from a storage device per second, you can use this param just in a case that volume_type = gp3.

    Modifying any ebs_block_device currently requires resource replacement.

    Usage:

    volumeSize Number
    The size of the volume in gigabytes.
    volumeType String
    The type of volume. Can be "standard", "gp2", "gp3", "io1", "st1" or "sc1".

    ElastigroupEphemeralBlockDevice, ElastigroupEphemeralBlockDeviceArgs

    DeviceName string
    The name of the block device to mount on the instance.
    VirtualName string

    The Instance Store Device Name (e.g. "ephemeral0").

    Usage:

    DeviceName string
    The name of the block device to mount on the instance.
    VirtualName string

    The Instance Store Device Name (e.g. "ephemeral0").

    Usage:

    deviceName String
    The name of the block device to mount on the instance.
    virtualName String

    The Instance Store Device Name (e.g. "ephemeral0").

    Usage:

    deviceName string
    The name of the block device to mount on the instance.
    virtualName string

    The Instance Store Device Name (e.g. "ephemeral0").

    Usage:

    device_name str
    The name of the block device to mount on the instance.
    virtual_name str

    The Instance Store Device Name (e.g. "ephemeral0").

    Usage:

    deviceName String
    The name of the block device to mount on the instance.
    virtualName String

    The Instance Store Device Name (e.g. "ephemeral0").

    Usage:

    ElastigroupImage, ElastigroupImageArgs

    ElastigroupImageImage, ElastigroupImageImageArgs

    Id string
    The group ID.
    Id string
    The group ID.
    id String
    The group ID.
    id string
    The group ID.
    id str
    The group ID.
    id String
    The group ID.

    ElastigroupInstanceTypesWeight, ElastigroupInstanceTypesWeightArgs

    InstanceType string
    Name of instance type (String).
    Weight int
    Weight per instance type (Integer).
    InstanceType string
    Name of instance type (String).
    Weight int
    Weight per instance type (Integer).
    instanceType String
    Name of instance type (String).
    weight Integer
    Weight per instance type (Integer).
    instanceType string
    Name of instance type (String).
    weight number
    Weight per instance type (Integer).
    instance_type str
    Name of instance type (String).
    weight int
    Weight per instance type (Integer).
    instanceType String
    Name of instance type (String).
    weight Number
    Weight per instance type (Integer).

    ElastigroupIntegrationBeanstalk, ElastigroupIntegrationBeanstalkArgs

    ElastigroupIntegrationBeanstalkDeploymentPreferences, ElastigroupIntegrationBeanstalkDeploymentPreferencesArgs

    ElastigroupIntegrationBeanstalkDeploymentPreferencesStrategy, ElastigroupIntegrationBeanstalkDeploymentPreferencesStrategyArgs

    ElastigroupIntegrationBeanstalkManagedActions, ElastigroupIntegrationBeanstalkManagedActionsArgs

    ElastigroupIntegrationBeanstalkManagedActionsPlatformUpdate, ElastigroupIntegrationBeanstalkManagedActionsPlatformUpdateArgs

    PerformAt string
    TimeWindow string
    UpdateLevel string
    PerformAt string
    TimeWindow string
    UpdateLevel string
    performAt String
    timeWindow String
    updateLevel String
    performAt string
    timeWindow string
    updateLevel string
    performAt String
    timeWindow String
    updateLevel String

    ElastigroupIntegrationCodedeploy, ElastigroupIntegrationCodedeployArgs

    ElastigroupIntegrationCodedeployDeploymentGroup, ElastigroupIntegrationCodedeployDeploymentGroupArgs

    ElastigroupIntegrationDockerSwarm, ElastigroupIntegrationDockerSwarmArgs

    ElastigroupIntegrationDockerSwarmAutoscaleDown, ElastigroupIntegrationDockerSwarmAutoscaleDownArgs

    ElastigroupIntegrationDockerSwarmAutoscaleHeadroom, ElastigroupIntegrationDockerSwarmAutoscaleHeadroomArgs

    cpuPerUnit Integer
    memoryPerUnit Integer
    numOfUnits Integer

    ElastigroupIntegrationEcs, ElastigroupIntegrationEcsArgs

    ElastigroupIntegrationEcsAutoscaleAttribute, ElastigroupIntegrationEcsAutoscaleAttributeArgs

    Key string
    Value string
    Key string
    Value string
    key String
    value String
    key string
    value string
    key str
    value str
    key String
    value String

    ElastigroupIntegrationEcsAutoscaleDown, ElastigroupIntegrationEcsAutoscaleDownArgs

    ElastigroupIntegrationEcsAutoscaleHeadroom, ElastigroupIntegrationEcsAutoscaleHeadroomArgs

    cpuPerUnit Integer
    memoryPerUnit Integer
    numOfUnits Integer

    ElastigroupIntegrationEcsBatch, ElastigroupIntegrationEcsBatchArgs

    JobQueueNames List<string>
    JobQueueNames []string
    jobQueueNames List<String>
    jobQueueNames string[]
    job_queue_names Sequence[str]
    jobQueueNames List<String>

    ElastigroupIntegrationGitlab, ElastigroupIntegrationGitlabArgs

    ElastigroupIntegrationGitlabRunner, ElastigroupIntegrationGitlabRunnerArgs

    isEnabled Boolean
    isEnabled boolean
    isEnabled Boolean

    ElastigroupIntegrationKubernetes, ElastigroupIntegrationKubernetesArgs

    ElastigroupIntegrationKubernetesAutoscaleDown, ElastigroupIntegrationKubernetesAutoscaleDownArgs

    ElastigroupIntegrationKubernetesAutoscaleHeadroom, ElastigroupIntegrationKubernetesAutoscaleHeadroomArgs

    cpuPerUnit Integer
    memoryPerUnit Integer
    numOfUnits Integer

    ElastigroupIntegrationKubernetesAutoscaleLabel, ElastigroupIntegrationKubernetesAutoscaleLabelArgs

    Key string
    Value string
    Key string
    Value string
    key String
    value String
    key string
    value string
    key str
    value str
    key String
    value String

    ElastigroupIntegrationMesosphere, ElastigroupIntegrationMesosphereArgs

    ApiServer string
    ApiServer string
    apiServer String
    apiServer string
    apiServer String

    ElastigroupIntegrationNomad, ElastigroupIntegrationNomadArgs

    ElastigroupIntegrationNomadAutoscaleConstraint, ElastigroupIntegrationNomadAutoscaleConstraintArgs

    Key string
    Value string
    Key string
    Value string
    key String
    value String
    key string
    value string
    key str
    value str
    key String
    value String

    ElastigroupIntegrationNomadAutoscaleDown, ElastigroupIntegrationNomadAutoscaleDownArgs

    ElastigroupIntegrationNomadAutoscaleHeadroom, ElastigroupIntegrationNomadAutoscaleHeadroomArgs

    cpuPerUnit Integer
    memoryPerUnit Integer
    numOfUnits Integer

    ElastigroupIntegrationRancher, ElastigroupIntegrationRancherArgs

    AccessKey string
    MasterHost string
    SecretKey string
    Version string
    AccessKey string
    MasterHost string
    SecretKey string
    Version string
    accessKey String
    masterHost String
    secretKey String
    version String
    accessKey string
    masterHost string
    secretKey string
    version string
    accessKey String
    masterHost String
    secretKey String
    version String

    ElastigroupIntegrationRoute53, ElastigroupIntegrationRoute53Args

    ElastigroupIntegrationRoute53Domain, ElastigroupIntegrationRoute53DomainArgs

    ElastigroupIntegrationRoute53DomainRecordSet, ElastigroupIntegrationRoute53DomainRecordSetArgs

    Name string
    The group name.
    UsePublicDns bool
    UsePublicIp bool
    Name string
    The group name.
    UsePublicDns bool
    UsePublicIp bool
    name String
    The group name.
    usePublicDns Boolean
    usePublicIp Boolean
    name string
    The group name.
    usePublicDns boolean
    usePublicIp boolean
    name str
    The group name.
    use_public_dns bool
    use_public_ip bool
    name String
    The group name.
    usePublicDns Boolean
    usePublicIp Boolean

    ElastigroupItf, ElastigroupItfArgs

    ElastigroupItfDefaultStaticTargetGroup, ElastigroupItfDefaultStaticTargetGroupArgs

    Arn string
    Percentage double
    Arn string
    Percentage float64
    arn String
    percentage Double
    arn string
    percentage number
    arn str
    percentage float
    arn String
    percentage Number

    ElastigroupItfLoadBalancer, ElastigroupItfLoadBalancerArgs

    ElastigroupItfLoadBalancerListenerRule, ElastigroupItfLoadBalancerListenerRuleArgs

    ElastigroupItfLoadBalancerListenerRuleStaticTargetGroup, ElastigroupItfLoadBalancerListenerRuleStaticTargetGroupArgs

    Arn string
    Percentage double
    Arn string
    Percentage float64
    arn String
    percentage Double
    arn string
    percentage number
    arn str
    percentage float
    arn String
    percentage Number

    ElastigroupItfTargetGroupConfig, ElastigroupItfTargetGroupConfigArgs

    ElastigroupItfTargetGroupConfigMatcher, ElastigroupItfTargetGroupConfigMatcherArgs

    GrpcCode string
    HttpCode string
    GrpcCode string
    HttpCode string
    grpcCode String
    httpCode String
    grpcCode string
    httpCode string
    grpcCode String
    httpCode String

    ElastigroupItfTargetGroupConfigTag, ElastigroupItfTargetGroupConfigTagArgs

    TagKey string
    TagValue string
    TagKey string
    TagValue string
    tagKey String
    tagValue String
    tagKey string
    tagValue string
    tagKey String
    tagValue String

    ElastigroupLogging, ElastigroupLoggingArgs

    Export ElastigroupLoggingExport
    Logging Export configuration.
    export ElastigroupLoggingExport
    Logging Export configuration.
    export ElastigroupLoggingExport
    Logging Export configuration.
    export ElastigroupLoggingExport
    Logging Export configuration.
    export Property Map
    Logging Export configuration.

    ElastigroupLoggingExport, ElastigroupLoggingExportArgs

    ElastigroupLoggingExportS3, ElastigroupLoggingExportS3Args

    Id string
    The group ID.
    Id string
    The group ID.
    id String
    The group ID.
    id string
    The group ID.
    id str
    The group ID.
    id String
    The group ID.

    ElastigroupMetadataOptions, ElastigroupMetadataOptionsArgs

    HttpTokens string
    The state of token usage for your instance metadata requests. Valid values: optional or required.
    HttpPutResponseHopLimit int
    The desired HTTP PUT response hop limit for instance metadata requests. The larger the number, the further instance metadata requests can travel. Valid values: Integers from 1 to 64.
    InstanceMetadataTags string
    Indicates whether access to instance tags from the instance metadata is enabled or disabled. Can’t be null.
    HttpTokens string
    The state of token usage for your instance metadata requests. Valid values: optional or required.
    HttpPutResponseHopLimit int
    The desired HTTP PUT response hop limit for instance metadata requests. The larger the number, the further instance metadata requests can travel. Valid values: Integers from 1 to 64.
    InstanceMetadataTags string
    Indicates whether access to instance tags from the instance metadata is enabled or disabled. Can’t be null.
    httpTokens String
    The state of token usage for your instance metadata requests. Valid values: optional or required.
    httpPutResponseHopLimit Integer
    The desired HTTP PUT response hop limit for instance metadata requests. The larger the number, the further instance metadata requests can travel. Valid values: Integers from 1 to 64.
    instanceMetadataTags String
    Indicates whether access to instance tags from the instance metadata is enabled or disabled. Can’t be null.
    httpTokens string
    The state of token usage for your instance metadata requests. Valid values: optional or required.
    httpPutResponseHopLimit number
    The desired HTTP PUT response hop limit for instance metadata requests. The larger the number, the further instance metadata requests can travel. Valid values: Integers from 1 to 64.
    instanceMetadataTags string
    Indicates whether access to instance tags from the instance metadata is enabled or disabled. Can’t be null.
    http_tokens str
    The state of token usage for your instance metadata requests. Valid values: optional or required.
    http_put_response_hop_limit int
    The desired HTTP PUT response hop limit for instance metadata requests. The larger the number, the further instance metadata requests can travel. Valid values: Integers from 1 to 64.
    instance_metadata_tags str
    Indicates whether access to instance tags from the instance metadata is enabled or disabled. Can’t be null.
    httpTokens String
    The state of token usage for your instance metadata requests. Valid values: optional or required.
    httpPutResponseHopLimit Number
    The desired HTTP PUT response hop limit for instance metadata requests. The larger the number, the further instance metadata requests can travel. Valid values: Integers from 1 to 64.
    instanceMetadataTags String
    Indicates whether access to instance tags from the instance metadata is enabled or disabled. Can’t be null.

    ElastigroupMultipleMetrics, ElastigroupMultipleMetricsArgs

    ElastigroupMultipleMetricsExpression, ElastigroupMultipleMetricsExpressionArgs

    Expression string
    Name string
    The group name.
    Expression string
    Name string
    The group name.
    expression String
    name String
    The group name.
    expression string
    name string
    The group name.
    expression str
    name str
    The group name.
    expression String
    name String
    The group name.

    ElastigroupMultipleMetricsMetric, ElastigroupMultipleMetricsMetricArgs

    metricName String
    name String
    The group name.
    namespace String
    dimensions List<Property Map>
    extendedStatistic String
    statistic String
    unit String

    ElastigroupMultipleMetricsMetricDimension, ElastigroupMultipleMetricsMetricDimensionArgs

    Name string
    The group name.
    Value string
    Name string
    The group name.
    Value string
    name String
    The group name.
    value String
    name string
    The group name.
    value string
    name str
    The group name.
    value str
    name String
    The group name.
    value String

    ElastigroupNetworkInterface, ElastigroupNetworkInterfaceArgs

    ElastigroupResourceRequirement, ElastigroupResourceRequirementArgs

    RequiredMemoryMaximum int
    Required maximum instance memory (<=512)
    RequiredMemoryMinimum int
    Required minimum instance memory (>=1)
    RequiredVcpuMaximum int
    Required maximum instance vCPU (<=64)
    RequiredVcpuMinimum int
    Required minimum instance vCPU (>=1)
    ExcludedInstanceFamilies List<string>
    Instance families to exclude
    ExcludedInstanceGenerations List<string>
    Instance generations to exclude
    ExcludedInstanceTypes List<string>
    Instance types to exclude
    RequiredGpuMaximum int
    Required maximum instance GPU (<=16)
    RequiredGpuMinimum int
    Required minimum instance GPU (>=1)
    RequiredMemoryMaximum int
    Required maximum instance memory (<=512)
    RequiredMemoryMinimum int
    Required minimum instance memory (>=1)
    RequiredVcpuMaximum int
    Required maximum instance vCPU (<=64)
    RequiredVcpuMinimum int
    Required minimum instance vCPU (>=1)
    ExcludedInstanceFamilies []string
    Instance families to exclude
    ExcludedInstanceGenerations []string
    Instance generations to exclude
    ExcludedInstanceTypes []string
    Instance types to exclude
    RequiredGpuMaximum int
    Required maximum instance GPU (<=16)
    RequiredGpuMinimum int
    Required minimum instance GPU (>=1)
    requiredMemoryMaximum Integer
    Required maximum instance memory (<=512)
    requiredMemoryMinimum Integer
    Required minimum instance memory (>=1)
    requiredVcpuMaximum Integer
    Required maximum instance vCPU (<=64)
    requiredVcpuMinimum Integer
    Required minimum instance vCPU (>=1)
    excludedInstanceFamilies List<String>
    Instance families to exclude
    excludedInstanceGenerations List<String>
    Instance generations to exclude
    excludedInstanceTypes List<String>
    Instance types to exclude
    requiredGpuMaximum Integer
    Required maximum instance GPU (<=16)
    requiredGpuMinimum Integer
    Required minimum instance GPU (>=1)
    requiredMemoryMaximum number
    Required maximum instance memory (<=512)
    requiredMemoryMinimum number
    Required minimum instance memory (>=1)
    requiredVcpuMaximum number
    Required maximum instance vCPU (<=64)
    requiredVcpuMinimum number
    Required minimum instance vCPU (>=1)
    excludedInstanceFamilies string[]
    Instance families to exclude
    excludedInstanceGenerations string[]
    Instance generations to exclude
    excludedInstanceTypes string[]
    Instance types to exclude
    requiredGpuMaximum number
    Required maximum instance GPU (<=16)
    requiredGpuMinimum number
    Required minimum instance GPU (>=1)
    required_memory_maximum int
    Required maximum instance memory (<=512)
    required_memory_minimum int
    Required minimum instance memory (>=1)
    required_vcpu_maximum int
    Required maximum instance vCPU (<=64)
    required_vcpu_minimum int
    Required minimum instance vCPU (>=1)
    excluded_instance_families Sequence[str]
    Instance families to exclude
    excluded_instance_generations Sequence[str]
    Instance generations to exclude
    excluded_instance_types Sequence[str]
    Instance types to exclude
    required_gpu_maximum int
    Required maximum instance GPU (<=16)
    required_gpu_minimum int
    Required minimum instance GPU (>=1)
    requiredMemoryMaximum Number
    Required maximum instance memory (<=512)
    requiredMemoryMinimum Number
    Required minimum instance memory (>=1)
    requiredVcpuMaximum Number
    Required maximum instance vCPU (<=64)
    requiredVcpuMinimum Number
    Required minimum instance vCPU (>=1)
    excludedInstanceFamilies List<String>
    Instance families to exclude
    excludedInstanceGenerations List<String>
    Instance generations to exclude
    excludedInstanceTypes List<String>
    Instance types to exclude
    requiredGpuMaximum Number
    Required maximum instance GPU (<=16)
    requiredGpuMinimum Number
    Required minimum instance GPU (>=1)

    ElastigroupResourceTagSpecification, ElastigroupResourceTagSpecificationArgs

    ShouldTagAmis bool
    Tag specification for AMI resources.
    ShouldTagEnis bool
    Tag specification for ENI resources.
    ShouldTagSnapshots bool
    Tag specification for Snapshot resources.
    ShouldTagVolumes bool
    Tag specification for Volume resources.
    ShouldTagAmis bool
    Tag specification for AMI resources.
    ShouldTagEnis bool
    Tag specification for ENI resources.
    ShouldTagSnapshots bool
    Tag specification for Snapshot resources.
    ShouldTagVolumes bool
    Tag specification for Volume resources.
    shouldTagAmis Boolean
    Tag specification for AMI resources.
    shouldTagEnis Boolean
    Tag specification for ENI resources.
    shouldTagSnapshots Boolean
    Tag specification for Snapshot resources.
    shouldTagVolumes Boolean
    Tag specification for Volume resources.
    shouldTagAmis boolean
    Tag specification for AMI resources.
    shouldTagEnis boolean
    Tag specification for ENI resources.
    shouldTagSnapshots boolean
    Tag specification for Snapshot resources.
    shouldTagVolumes boolean
    Tag specification for Volume resources.
    should_tag_amis bool
    Tag specification for AMI resources.
    should_tag_enis bool
    Tag specification for ENI resources.
    should_tag_snapshots bool
    Tag specification for Snapshot resources.
    should_tag_volumes bool
    Tag specification for Volume resources.
    shouldTagAmis Boolean
    Tag specification for AMI resources.
    shouldTagEnis Boolean
    Tag specification for ENI resources.
    shouldTagSnapshots Boolean
    Tag specification for Snapshot resources.
    shouldTagVolumes Boolean
    Tag specification for Volume resources.

    ElastigroupRevertToSpot, ElastigroupRevertToSpotArgs

    PerformAt string
    In the event of a fallback to On-Demand instances, select the time period to revert back to Spot. Supported Arguments – always (default), timeWindow, never. For timeWindow or never to be valid the group must have availabilityOriented OR persistence defined.
    TimeWindows List<string>
    Specify a list of time windows for to execute revertToSpot strategy. Time window format: ddd:hh:mm-ddd:hh:mm. Example: Mon:03:00-Wed:02:30
    PerformAt string
    In the event of a fallback to On-Demand instances, select the time period to revert back to Spot. Supported Arguments – always (default), timeWindow, never. For timeWindow or never to be valid the group must have availabilityOriented OR persistence defined.
    TimeWindows []string
    Specify a list of time windows for to execute revertToSpot strategy. Time window format: ddd:hh:mm-ddd:hh:mm. Example: Mon:03:00-Wed:02:30
    performAt String
    In the event of a fallback to On-Demand instances, select the time period to revert back to Spot. Supported Arguments – always (default), timeWindow, never. For timeWindow or never to be valid the group must have availabilityOriented OR persistence defined.
    timeWindows List<String>
    Specify a list of time windows for to execute revertToSpot strategy. Time window format: ddd:hh:mm-ddd:hh:mm. Example: Mon:03:00-Wed:02:30
    performAt string
    In the event of a fallback to On-Demand instances, select the time period to revert back to Spot. Supported Arguments – always (default), timeWindow, never. For timeWindow or never to be valid the group must have availabilityOriented OR persistence defined.
    timeWindows string[]
    Specify a list of time windows for to execute revertToSpot strategy. Time window format: ddd:hh:mm-ddd:hh:mm. Example: Mon:03:00-Wed:02:30
    perform_at str
    In the event of a fallback to On-Demand instances, select the time period to revert back to Spot. Supported Arguments – always (default), timeWindow, never. For timeWindow or never to be valid the group must have availabilityOriented OR persistence defined.
    time_windows Sequence[str]
    Specify a list of time windows for to execute revertToSpot strategy. Time window format: ddd:hh:mm-ddd:hh:mm. Example: Mon:03:00-Wed:02:30
    performAt String
    In the event of a fallback to On-Demand instances, select the time period to revert back to Spot. Supported Arguments – always (default), timeWindow, never. For timeWindow or never to be valid the group must have availabilityOriented OR persistence defined.
    timeWindows List<String>
    Specify a list of time windows for to execute revertToSpot strategy. Time window format: ddd:hh:mm-ddd:hh:mm. Example: Mon:03:00-Wed:02:30

    ElastigroupScalingDownPolicy, ElastigroupScalingDownPolicyArgs

    MetricName string
    The name of the metric, with or without spaces.
    Namespace string
    The namespace for the alarm's associated metric.
    PolicyName string
    The name of the policy.
    ActionType string
    The type of action to perform for scaling. Valid values: "adjustment", "percentageAdjustment", "setMaxTarget", "setMinTarget", "updateCapacity". If a step_adjustment object is defined, then it cannot be specified.
    Adjustment string
    The number of instances to add/remove to/from the target capacity when scale is needed. Can be used as advanced expression for scaling of instances to add/remove to/from the target capacity when scale is needed. You can see more information here: Advanced expression. Example value: "MAX(currCapacity / 5, value * 10)"
    Cooldown int
    The amount of time, in seconds, after a scaling activity completes and before the next scaling activity can start. If this parameter is not specified, the default cooldown period for the group applies.
    Dimensions List<Pulumi.SpotInst.Aws.Inputs.ElastigroupScalingDownPolicyDimension>
    A list of dimensions describing qualities of the metric.
    EvaluationPeriods int
    The number of periods over which data is compared to the specified threshold.
    IsEnabled bool
    Specifies whether the scaling policy described in this block is enabled.
    MaxTargetCapacity string
    . The number of the desired target (and maximum) capacity
    Maximum string
    The maximal number of instances to have in the group.
    MinTargetCapacity string
    Minimum string
    The minimal number of instances to have in the group.
    Operator string
    The operator to use in order to determine if the scaling policy is applicable. Valid values: "gt", "gte", "lt", "lte".
    Period int
    The granularity, in seconds, of the returned datapoints. Period must be at least 60 seconds and must be a multiple of 60.
    Source string
    The source of the metric. Valid values: "cloudWatch", "spectrum".
    Statistic string
    The metric statistics to return. For information about specific statistics go to Statistics in the Amazon CloudWatch Developer Guide.
    StepAdjustments List<Pulumi.SpotInst.Aws.Inputs.ElastigroupScalingDownPolicyStepAdjustment>
    Target string
    The target number of instances to have in the group.
    Threshold double
    The value against which the specified statistic is compared. If a step_adjustment object is defined, then it cannot be specified.
    Unit string
    The unit for the alarm's associated metric. Valid values: "percent, "seconds", "microseconds", "milliseconds", "bytes", "kilobytes", "megabytes", "gigabytes", "terabytes", "bits", "kilobits", "megabits", "gigabits", "terabits", "count", "bytes/second", "kilobytes/second", "megabytes/second", "gigabytes/second", "terabytes/second", "bits/second", "kilobits/second", "megabits/second", "gigabits/second", "terabits/second", "count/second", "none".
    MetricName string
    The name of the metric, with or without spaces.
    Namespace string
    The namespace for the alarm's associated metric.
    PolicyName string
    The name of the policy.
    ActionType string
    The type of action to perform for scaling. Valid values: "adjustment", "percentageAdjustment", "setMaxTarget", "setMinTarget", "updateCapacity". If a step_adjustment object is defined, then it cannot be specified.
    Adjustment string
    The number of instances to add/remove to/from the target capacity when scale is needed. Can be used as advanced expression for scaling of instances to add/remove to/from the target capacity when scale is needed. You can see more information here: Advanced expression. Example value: "MAX(currCapacity / 5, value * 10)"
    Cooldown int
    The amount of time, in seconds, after a scaling activity completes and before the next scaling activity can start. If this parameter is not specified, the default cooldown period for the group applies.
    Dimensions []ElastigroupScalingDownPolicyDimension
    A list of dimensions describing qualities of the metric.
    EvaluationPeriods int
    The number of periods over which data is compared to the specified threshold.
    IsEnabled bool
    Specifies whether the scaling policy described in this block is enabled.
    MaxTargetCapacity string
    . The number of the desired target (and maximum) capacity
    Maximum string
    The maximal number of instances to have in the group.
    MinTargetCapacity string
    Minimum string
    The minimal number of instances to have in the group.
    Operator string
    The operator to use in order to determine if the scaling policy is applicable. Valid values: "gt", "gte", "lt", "lte".
    Period int
    The granularity, in seconds, of the returned datapoints. Period must be at least 60 seconds and must be a multiple of 60.
    Source string
    The source of the metric. Valid values: "cloudWatch", "spectrum".
    Statistic string
    The metric statistics to return. For information about specific statistics go to Statistics in the Amazon CloudWatch Developer Guide.
    StepAdjustments []ElastigroupScalingDownPolicyStepAdjustment
    Target string
    The target number of instances to have in the group.
    Threshold float64
    The value against which the specified statistic is compared. If a step_adjustment object is defined, then it cannot be specified.
    Unit string
    The unit for the alarm's associated metric. Valid values: "percent, "seconds", "microseconds", "milliseconds", "bytes", "kilobytes", "megabytes", "gigabytes", "terabytes", "bits", "kilobits", "megabits", "gigabits", "terabits", "count", "bytes/second", "kilobytes/second", "megabytes/second", "gigabytes/second", "terabytes/second", "bits/second", "kilobits/second", "megabits/second", "gigabits/second", "terabits/second", "count/second", "none".
    metricName String
    The name of the metric, with or without spaces.
    namespace String
    The namespace for the alarm's associated metric.
    policyName String
    The name of the policy.
    actionType String
    The type of action to perform for scaling. Valid values: "adjustment", "percentageAdjustment", "setMaxTarget", "setMinTarget", "updateCapacity". If a step_adjustment object is defined, then it cannot be specified.
    adjustment String
    The number of instances to add/remove to/from the target capacity when scale is needed. Can be used as advanced expression for scaling of instances to add/remove to/from the target capacity when scale is needed. You can see more information here: Advanced expression. Example value: "MAX(currCapacity / 5, value * 10)"
    cooldown Integer
    The amount of time, in seconds, after a scaling activity completes and before the next scaling activity can start. If this parameter is not specified, the default cooldown period for the group applies.
    dimensions List<ElastigroupScalingDownPolicyDimension>
    A list of dimensions describing qualities of the metric.
    evaluationPeriods Integer
    The number of periods over which data is compared to the specified threshold.
    isEnabled Boolean
    Specifies whether the scaling policy described in this block is enabled.
    maxTargetCapacity String
    . The number of the desired target (and maximum) capacity
    maximum String
    The maximal number of instances to have in the group.
    minTargetCapacity String
    minimum String
    The minimal number of instances to have in the group.
    operator String
    The operator to use in order to determine if the scaling policy is applicable. Valid values: "gt", "gte", "lt", "lte".
    period Integer
    The granularity, in seconds, of the returned datapoints. Period must be at least 60 seconds and must be a multiple of 60.
    source String
    The source of the metric. Valid values: "cloudWatch", "spectrum".
    statistic String
    The metric statistics to return. For information about specific statistics go to Statistics in the Amazon CloudWatch Developer Guide.
    stepAdjustments List<ElastigroupScalingDownPolicyStepAdjustment>
    target String
    The target number of instances to have in the group.
    threshold Double
    The value against which the specified statistic is compared. If a step_adjustment object is defined, then it cannot be specified.
    unit String
    The unit for the alarm's associated metric. Valid values: "percent, "seconds", "microseconds", "milliseconds", "bytes", "kilobytes", "megabytes", "gigabytes", "terabytes", "bits", "kilobits", "megabits", "gigabits", "terabits", "count", "bytes/second", "kilobytes/second", "megabytes/second", "gigabytes/second", "terabytes/second", "bits/second", "kilobits/second", "megabits/second", "gigabits/second", "terabits/second", "count/second", "none".
    metricName string
    The name of the metric, with or without spaces.
    namespace string
    The namespace for the alarm's associated metric.
    policyName string
    The name of the policy.
    actionType string
    The type of action to perform for scaling. Valid values: "adjustment", "percentageAdjustment", "setMaxTarget", "setMinTarget", "updateCapacity". If a step_adjustment object is defined, then it cannot be specified.
    adjustment string
    The number of instances to add/remove to/from the target capacity when scale is needed. Can be used as advanced expression for scaling of instances to add/remove to/from the target capacity when scale is needed. You can see more information here: Advanced expression. Example value: "MAX(currCapacity / 5, value * 10)"
    cooldown number
    The amount of time, in seconds, after a scaling activity completes and before the next scaling activity can start. If this parameter is not specified, the default cooldown period for the group applies.
    dimensions ElastigroupScalingDownPolicyDimension[]
    A list of dimensions describing qualities of the metric.
    evaluationPeriods number
    The number of periods over which data is compared to the specified threshold.
    isEnabled boolean
    Specifies whether the scaling policy described in this block is enabled.
    maxTargetCapacity string
    . The number of the desired target (and maximum) capacity
    maximum string
    The maximal number of instances to have in the group.
    minTargetCapacity string
    minimum string
    The minimal number of instances to have in the group.
    operator string
    The operator to use in order to determine if the scaling policy is applicable. Valid values: "gt", "gte", "lt", "lte".
    period number
    The granularity, in seconds, of the returned datapoints. Period must be at least 60 seconds and must be a multiple of 60.
    source string
    The source of the metric. Valid values: "cloudWatch", "spectrum".
    statistic string
    The metric statistics to return. For information about specific statistics go to Statistics in the Amazon CloudWatch Developer Guide.
    stepAdjustments ElastigroupScalingDownPolicyStepAdjustment[]
    target string
    The target number of instances to have in the group.
    threshold number
    The value against which the specified statistic is compared. If a step_adjustment object is defined, then it cannot be specified.
    unit string
    The unit for the alarm's associated metric. Valid values: "percent, "seconds", "microseconds", "milliseconds", "bytes", "kilobytes", "megabytes", "gigabytes", "terabytes", "bits", "kilobits", "megabits", "gigabits", "terabits", "count", "bytes/second", "kilobytes/second", "megabytes/second", "gigabytes/second", "terabytes/second", "bits/second", "kilobits/second", "megabits/second", "gigabits/second", "terabits/second", "count/second", "none".
    metric_name str
    The name of the metric, with or without spaces.
    namespace str
    The namespace for the alarm's associated metric.
    policy_name str
    The name of the policy.
    action_type str
    The type of action to perform for scaling. Valid values: "adjustment", "percentageAdjustment", "setMaxTarget", "setMinTarget", "updateCapacity". If a step_adjustment object is defined, then it cannot be specified.
    adjustment str
    The number of instances to add/remove to/from the target capacity when scale is needed. Can be used as advanced expression for scaling of instances to add/remove to/from the target capacity when scale is needed. You can see more information here: Advanced expression. Example value: "MAX(currCapacity / 5, value * 10)"
    cooldown int
    The amount of time, in seconds, after a scaling activity completes and before the next scaling activity can start. If this parameter is not specified, the default cooldown period for the group applies.
    dimensions Sequence[ElastigroupScalingDownPolicyDimension]
    A list of dimensions describing qualities of the metric.
    evaluation_periods int
    The number of periods over which data is compared to the specified threshold.
    is_enabled bool
    Specifies whether the scaling policy described in this block is enabled.
    max_target_capacity str
    . The number of the desired target (and maximum) capacity
    maximum str
    The maximal number of instances to have in the group.
    min_target_capacity str
    minimum str
    The minimal number of instances to have in the group.
    operator str
    The operator to use in order to determine if the scaling policy is applicable. Valid values: "gt", "gte", "lt", "lte".
    period int
    The granularity, in seconds, of the returned datapoints. Period must be at least 60 seconds and must be a multiple of 60.
    source str
    The source of the metric. Valid values: "cloudWatch", "spectrum".
    statistic str
    The metric statistics to return. For information about specific statistics go to Statistics in the Amazon CloudWatch Developer Guide.
    step_adjustments Sequence[ElastigroupScalingDownPolicyStepAdjustment]
    target str
    The target number of instances to have in the group.
    threshold float
    The value against which the specified statistic is compared. If a step_adjustment object is defined, then it cannot be specified.
    unit str
    The unit for the alarm's associated metric. Valid values: "percent, "seconds", "microseconds", "milliseconds", "bytes", "kilobytes", "megabytes", "gigabytes", "terabytes", "bits", "kilobits", "megabits", "gigabits", "terabits", "count", "bytes/second", "kilobytes/second", "megabytes/second", "gigabytes/second", "terabytes/second", "bits/second", "kilobits/second", "megabits/second", "gigabits/second", "terabits/second", "count/second", "none".
    metricName String
    The name of the metric, with or without spaces.
    namespace String
    The namespace for the alarm's associated metric.
    policyName String
    The name of the policy.
    actionType String
    The type of action to perform for scaling. Valid values: "adjustment", "percentageAdjustment", "setMaxTarget", "setMinTarget", "updateCapacity". If a step_adjustment object is defined, then it cannot be specified.
    adjustment String
    The number of instances to add/remove to/from the target capacity when scale is needed. Can be used as advanced expression for scaling of instances to add/remove to/from the target capacity when scale is needed. You can see more information here: Advanced expression. Example value: "MAX(currCapacity / 5, value * 10)"
    cooldown Number
    The amount of time, in seconds, after a scaling activity completes and before the next scaling activity can start. If this parameter is not specified, the default cooldown period for the group applies.
    dimensions List<Property Map>
    A list of dimensions describing qualities of the metric.
    evaluationPeriods Number
    The number of periods over which data is compared to the specified threshold.
    isEnabled Boolean
    Specifies whether the scaling policy described in this block is enabled.
    maxTargetCapacity String
    . The number of the desired target (and maximum) capacity
    maximum String
    The maximal number of instances to have in the group.
    minTargetCapacity String
    minimum String
    The minimal number of instances to have in the group.
    operator String
    The operator to use in order to determine if the scaling policy is applicable. Valid values: "gt", "gte", "lt", "lte".
    period Number
    The granularity, in seconds, of the returned datapoints. Period must be at least 60 seconds and must be a multiple of 60.
    source String
    The source of the metric. Valid values: "cloudWatch", "spectrum".
    statistic String
    The metric statistics to return. For information about specific statistics go to Statistics in the Amazon CloudWatch Developer Guide.
    stepAdjustments List<Property Map>
    target String
    The target number of instances to have in the group.
    threshold Number
    The value against which the specified statistic is compared. If a step_adjustment object is defined, then it cannot be specified.
    unit String
    The unit for the alarm's associated metric. Valid values: "percent, "seconds", "microseconds", "milliseconds", "bytes", "kilobytes", "megabytes", "gigabytes", "terabytes", "bits", "kilobits", "megabits", "gigabits", "terabits", "count", "bytes/second", "kilobytes/second", "megabytes/second", "gigabytes/second", "terabytes/second", "bits/second", "kilobits/second", "megabits/second", "gigabits/second", "terabits/second", "count/second", "none".

    ElastigroupScalingDownPolicyDimension, ElastigroupScalingDownPolicyDimensionArgs

    Name string
    The dimension name.
    Value string
    The dimension value.
    Name string
    The dimension name.
    Value string
    The dimension value.
    name String
    The dimension name.
    value String
    The dimension value.
    name string
    The dimension name.
    value string
    The dimension value.
    name str
    The dimension name.
    value str
    The dimension value.
    name String
    The dimension name.
    value String
    The dimension value.

    ElastigroupScalingDownPolicyStepAdjustment, ElastigroupScalingDownPolicyStepAdjustmentArgs

    ElastigroupScalingDownPolicyStepAdjustmentAction, ElastigroupScalingDownPolicyStepAdjustmentActionArgs

    Type string
    Adjustment string
    MaxTargetCapacity string
    Maximum string
    MinTargetCapacity string
    Minimum string
    Target string
    Type string
    Adjustment string
    MaxTargetCapacity string
    Maximum string
    MinTargetCapacity string
    Minimum string
    Target string
    type String
    adjustment String
    maxTargetCapacity String
    maximum String
    minTargetCapacity String
    minimum String
    target String
    type string
    adjustment string
    maxTargetCapacity string
    maximum string
    minTargetCapacity string
    minimum string
    target string
    type String
    adjustment String
    maxTargetCapacity String
    maximum String
    minTargetCapacity String
    minimum String
    target String

    ElastigroupScalingStrategy, ElastigroupScalingStrategyArgs

    TerminateAtEndOfBillingHour bool
    Specify whether to terminate instances at the end of each billing hour.
    TerminationPolicy string
    Determines whether to terminate the newest instances when performing a scaling action. Valid values: "default", "newestInstance".
    TerminateAtEndOfBillingHour bool
    Specify whether to terminate instances at the end of each billing hour.
    TerminationPolicy string
    Determines whether to terminate the newest instances when performing a scaling action. Valid values: "default", "newestInstance".
    terminateAtEndOfBillingHour Boolean
    Specify whether to terminate instances at the end of each billing hour.
    terminationPolicy String
    Determines whether to terminate the newest instances when performing a scaling action. Valid values: "default", "newestInstance".
    terminateAtEndOfBillingHour boolean
    Specify whether to terminate instances at the end of each billing hour.
    terminationPolicy string
    Determines whether to terminate the newest instances when performing a scaling action. Valid values: "default", "newestInstance".
    terminate_at_end_of_billing_hour bool
    Specify whether to terminate instances at the end of each billing hour.
    termination_policy str
    Determines whether to terminate the newest instances when performing a scaling action. Valid values: "default", "newestInstance".
    terminateAtEndOfBillingHour Boolean
    Specify whether to terminate instances at the end of each billing hour.
    terminationPolicy String
    Determines whether to terminate the newest instances when performing a scaling action. Valid values: "default", "newestInstance".

    ElastigroupScalingTargetPolicy, ElastigroupScalingTargetPolicyArgs

    MetricName string
    String, the name of the metric, with or without spaces.
    Namespace string
    String, the namespace for the alarm's associated metric.
    PolicyName string
    String, the name of the policy.
    Target double
    The target number of instances to have in the group.
    Cooldown int
    Integer the amount of time, in seconds, after a scaling activity completes and before the next scaling activity can start. If this parameter is not specified, the default cooldown period for the group applies.
    Dimensions List<Pulumi.SpotInst.Aws.Inputs.ElastigroupScalingTargetPolicyDimension>
    A list of dimensions describing qualities of the metric.
    EvaluationPeriods int
    The number of periods over which data is compared to the specified threshold.
    MaxCapacityPerScale string

    String, restrict the maximal number of instances which can be added in each scale-up action.

    scaling_target_policies support predictive scaling:

    Period int
    The granularity, in seconds, of the returned datapoints. Period must be at least 60 seconds and must be a multiple of 60.
    PredictiveMode string

    Start a metric prediction process to determine the expected target metric value within the next two days. See Predictive Autoscaling documentation for more info. Valid values: FORECAST_AND_SCALE, FORECAST_ONLY.

    Usage:

    Source string
    String, the source of the metric. Valid values: "cloudWatch", "spectrum".
    Statistic string
    String, the metric statistics to return. For information about specific statistics go to Statistics in the Amazon CloudWatch Developer Guide.
    Unit string
    String, tThe unit for the alarm's associated metric. Valid values: "percent, "seconds", "microseconds", "milliseconds", "bytes", "kilobytes", "megabytes", "gigabytes", "terabytes", "bits", "kilobits", "megabits", "gigabits", "terabits", "count", "bytes/second", "kilobytes/second", "megabytes/second", "gigabytes/second", "terabytes/second", "bits/second", "kilobits/second", "megabits/second", "gigabits/second", "terabits/second", "count/second", "none".
    MetricName string
    String, the name of the metric, with or without spaces.
    Namespace string
    String, the namespace for the alarm's associated metric.
    PolicyName string
    String, the name of the policy.
    Target float64
    The target number of instances to have in the group.
    Cooldown int
    Integer the amount of time, in seconds, after a scaling activity completes and before the next scaling activity can start. If this parameter is not specified, the default cooldown period for the group applies.
    Dimensions []ElastigroupScalingTargetPolicyDimension
    A list of dimensions describing qualities of the metric.
    EvaluationPeriods int
    The number of periods over which data is compared to the specified threshold.
    MaxCapacityPerScale string

    String, restrict the maximal number of instances which can be added in each scale-up action.

    scaling_target_policies support predictive scaling:

    Period int
    The granularity, in seconds, of the returned datapoints. Period must be at least 60 seconds and must be a multiple of 60.
    PredictiveMode string

    Start a metric prediction process to determine the expected target metric value within the next two days. See Predictive Autoscaling documentation for more info. Valid values: FORECAST_AND_SCALE, FORECAST_ONLY.

    Usage:

    Source string
    String, the source of the metric. Valid values: "cloudWatch", "spectrum".
    Statistic string
    String, the metric statistics to return. For information about specific statistics go to Statistics in the Amazon CloudWatch Developer Guide.
    Unit string
    String, tThe unit for the alarm's associated metric. Valid values: "percent, "seconds", "microseconds", "milliseconds", "bytes", "kilobytes", "megabytes", "gigabytes", "terabytes", "bits", "kilobits", "megabits", "gigabits", "terabits", "count", "bytes/second", "kilobytes/second", "megabytes/second", "gigabytes/second", "terabytes/second", "bits/second", "kilobits/second", "megabits/second", "gigabits/second", "terabits/second", "count/second", "none".
    metricName String
    String, the name of the metric, with or without spaces.
    namespace String
    String, the namespace for the alarm's associated metric.
    policyName String
    String, the name of the policy.
    target Double
    The target number of instances to have in the group.
    cooldown Integer
    Integer the amount of time, in seconds, after a scaling activity completes and before the next scaling activity can start. If this parameter is not specified, the default cooldown period for the group applies.
    dimensions List<ElastigroupScalingTargetPolicyDimension>
    A list of dimensions describing qualities of the metric.
    evaluationPeriods Integer
    The number of periods over which data is compared to the specified threshold.
    maxCapacityPerScale String

    String, restrict the maximal number of instances which can be added in each scale-up action.

    scaling_target_policies support predictive scaling:

    period Integer
    The granularity, in seconds, of the returned datapoints. Period must be at least 60 seconds and must be a multiple of 60.
    predictiveMode String

    Start a metric prediction process to determine the expected target metric value within the next two days. See Predictive Autoscaling documentation for more info. Valid values: FORECAST_AND_SCALE, FORECAST_ONLY.

    Usage:

    source String
    String, the source of the metric. Valid values: "cloudWatch", "spectrum".
    statistic String
    String, the metric statistics to return. For information about specific statistics go to Statistics in the Amazon CloudWatch Developer Guide.
    unit String
    String, tThe unit for the alarm's associated metric. Valid values: "percent, "seconds", "microseconds", "milliseconds", "bytes", "kilobytes", "megabytes", "gigabytes", "terabytes", "bits", "kilobits", "megabits", "gigabits", "terabits", "count", "bytes/second", "kilobytes/second", "megabytes/second", "gigabytes/second", "terabytes/second", "bits/second", "kilobits/second", "megabits/second", "gigabits/second", "terabits/second", "count/second", "none".
    metricName string
    String, the name of the metric, with or without spaces.
    namespace string
    String, the namespace for the alarm's associated metric.
    policyName string
    String, the name of the policy.
    target number
    The target number of instances to have in the group.
    cooldown number
    Integer the amount of time, in seconds, after a scaling activity completes and before the next scaling activity can start. If this parameter is not specified, the default cooldown period for the group applies.
    dimensions ElastigroupScalingTargetPolicyDimension[]
    A list of dimensions describing qualities of the metric.
    evaluationPeriods number
    The number of periods over which data is compared to the specified threshold.
    maxCapacityPerScale string

    String, restrict the maximal number of instances which can be added in each scale-up action.

    scaling_target_policies support predictive scaling:

    period number
    The granularity, in seconds, of the returned datapoints. Period must be at least 60 seconds and must be a multiple of 60.
    predictiveMode string

    Start a metric prediction process to determine the expected target metric value within the next two days. See Predictive Autoscaling documentation for more info. Valid values: FORECAST_AND_SCALE, FORECAST_ONLY.

    Usage:

    source string
    String, the source of the metric. Valid values: "cloudWatch", "spectrum".
    statistic string
    String, the metric statistics to return. For information about specific statistics go to Statistics in the Amazon CloudWatch Developer Guide.
    unit string
    String, tThe unit for the alarm's associated metric. Valid values: "percent, "seconds", "microseconds", "milliseconds", "bytes", "kilobytes", "megabytes", "gigabytes", "terabytes", "bits", "kilobits", "megabits", "gigabits", "terabits", "count", "bytes/second", "kilobytes/second", "megabytes/second", "gigabytes/second", "terabytes/second", "bits/second", "kilobits/second", "megabits/second", "gigabits/second", "terabits/second", "count/second", "none".
    metric_name str
    String, the name of the metric, with or without spaces.
    namespace str
    String, the namespace for the alarm's associated metric.
    policy_name str
    String, the name of the policy.
    target float
    The target number of instances to have in the group.
    cooldown int
    Integer the amount of time, in seconds, after a scaling activity completes and before the next scaling activity can start. If this parameter is not specified, the default cooldown period for the group applies.
    dimensions Sequence[ElastigroupScalingTargetPolicyDimension]
    A list of dimensions describing qualities of the metric.
    evaluation_periods int
    The number of periods over which data is compared to the specified threshold.
    max_capacity_per_scale str

    String, restrict the maximal number of instances which can be added in each scale-up action.

    scaling_target_policies support predictive scaling:

    period int
    The granularity, in seconds, of the returned datapoints. Period must be at least 60 seconds and must be a multiple of 60.
    predictive_mode str

    Start a metric prediction process to determine the expected target metric value within the next two days. See Predictive Autoscaling documentation for more info. Valid values: FORECAST_AND_SCALE, FORECAST_ONLY.

    Usage:

    source str
    String, the source of the metric. Valid values: "cloudWatch", "spectrum".
    statistic str
    String, the metric statistics to return. For information about specific statistics go to Statistics in the Amazon CloudWatch Developer Guide.
    unit str
    String, tThe unit for the alarm's associated metric. Valid values: "percent, "seconds", "microseconds", "milliseconds", "bytes", "kilobytes", "megabytes", "gigabytes", "terabytes", "bits", "kilobits", "megabits", "gigabits", "terabits", "count", "bytes/second", "kilobytes/second", "megabytes/second", "gigabytes/second", "terabytes/second", "bits/second", "kilobits/second", "megabits/second", "gigabits/second", "terabits/second", "count/second", "none".
    metricName String
    String, the name of the metric, with or without spaces.
    namespace String
    String, the namespace for the alarm's associated metric.
    policyName String
    String, the name of the policy.
    target Number
    The target number of instances to have in the group.
    cooldown Number
    Integer the amount of time, in seconds, after a scaling activity completes and before the next scaling activity can start. If this parameter is not specified, the default cooldown period for the group applies.
    dimensions List<Property Map>
    A list of dimensions describing qualities of the metric.
    evaluationPeriods Number
    The number of periods over which data is compared to the specified threshold.
    maxCapacityPerScale String

    String, restrict the maximal number of instances which can be added in each scale-up action.

    scaling_target_policies support predictive scaling:

    period Number
    The granularity, in seconds, of the returned datapoints. Period must be at least 60 seconds and must be a multiple of 60.
    predictiveMode String

    Start a metric prediction process to determine the expected target metric value within the next two days. See Predictive Autoscaling documentation for more info. Valid values: FORECAST_AND_SCALE, FORECAST_ONLY.

    Usage:

    source String
    String, the source of the metric. Valid values: "cloudWatch", "spectrum".
    statistic String
    String, the metric statistics to return. For information about specific statistics go to Statistics in the Amazon CloudWatch Developer Guide.
    unit String
    String, tThe unit for the alarm's associated metric. Valid values: "percent, "seconds", "microseconds", "milliseconds", "bytes", "kilobytes", "megabytes", "gigabytes", "terabytes", "bits", "kilobits", "megabits", "gigabits", "terabits", "count", "bytes/second", "kilobytes/second", "megabytes/second", "gigabytes/second", "terabytes/second", "bits/second", "kilobits/second", "megabits/second", "gigabits/second", "terabits/second", "count/second", "none".

    ElastigroupScalingTargetPolicyDimension, ElastigroupScalingTargetPolicyDimensionArgs

    Name string
    String, the dimension name.
    Value string
    String, the dimension value.
    Name string
    String, the dimension name.
    Value string
    String, the dimension value.
    name String
    String, the dimension name.
    value String
    String, the dimension value.
    name string
    String, the dimension name.
    value string
    String, the dimension value.
    name str
    String, the dimension name.
    value str
    String, the dimension value.
    name String
    String, the dimension name.
    value String
    String, the dimension value.

    ElastigroupScalingUpPolicy, ElastigroupScalingUpPolicyArgs

    MetricName string
    The name of the metric, with or without spaces.
    Namespace string
    The namespace for the alarm's associated metric.
    PolicyName string
    The name of the policy.
    ActionType string
    The type of action to perform for scaling. Valid values: "adjustment", "percentageAdjustment", "setMaxTarget", "setMinTarget", "updateCapacity". If a step_adjustment object is defined, then it cannot be specified.
    Adjustment string
    The number of instances to add/remove to/from the target capacity when scale is needed. Can be used as advanced expression for scaling of instances to add/remove to/from the target capacity when scale is needed. You can see more information here: Advanced expression. Example value: "MAX(currCapacity / 5, value * 10)"
    Cooldown int
    The amount of time, in seconds, after a scaling activity completes and before the next scaling activity can start. If this parameter is not specified, the default cooldown period for the group applies.
    Dimensions List<Pulumi.SpotInst.Aws.Inputs.ElastigroupScalingUpPolicyDimension>
    A list of dimensions describing qualities of the metric.
    EvaluationPeriods int
    The number of periods over which data is compared to the specified threshold.
    IsEnabled bool
    Specifies whether the scaling policy described in this block is enabled.
    MaxTargetCapacity string
    Maximum string
    The maximal number of instances to have in the group.
    MinTargetCapacity string
    . The number of the desired target (and minimum) capacity
    Minimum string
    The minimal number of instances to have in the group.
    Operator string
    The operator to use in order to determine if the scaling policy is applicable. Valid values: "gt", "gte", "lt", "lte".
    Period int
    The granularity, in seconds, of the returned datapoints. Period must be at least 60 seconds and must be a multiple of 60.
    Source string
    The source of the metric. Valid values: "cloudWatch", "spectrum".
    Statistic string
    The metric statistics to return. For information about specific statistics go to Statistics in the Amazon CloudWatch Developer Guide.
    StepAdjustments List<Pulumi.SpotInst.Aws.Inputs.ElastigroupScalingUpPolicyStepAdjustment>
    Target string
    The target number of instances to have in the group.
    Threshold double
    The value against which the specified statistic is compared. If a step_adjustment object is defined, then it cannot be specified.
    Unit string
    The unit for the alarm's associated metric. Valid values: "percent, "seconds", "microseconds", "milliseconds", "bytes", "kilobytes", "megabytes", "gigabytes", "terabytes", "bits", "kilobits", "megabits", "gigabits", "terabits", "count", "bytes/second", "kilobytes/second", "megabytes/second", "gigabytes/second", "terabytes/second", "bits/second", "kilobits/second", "megabits/second", "gigabits/second", "terabits/second", "count/second", "none".
    MetricName string
    The name of the metric, with or without spaces.
    Namespace string
    The namespace for the alarm's associated metric.
    PolicyName string
    The name of the policy.
    ActionType string
    The type of action to perform for scaling. Valid values: "adjustment", "percentageAdjustment", "setMaxTarget", "setMinTarget", "updateCapacity". If a step_adjustment object is defined, then it cannot be specified.
    Adjustment string
    The number of instances to add/remove to/from the target capacity when scale is needed. Can be used as advanced expression for scaling of instances to add/remove to/from the target capacity when scale is needed. You can see more information here: Advanced expression. Example value: "MAX(currCapacity / 5, value * 10)"
    Cooldown int
    The amount of time, in seconds, after a scaling activity completes and before the next scaling activity can start. If this parameter is not specified, the default cooldown period for the group applies.
    Dimensions []ElastigroupScalingUpPolicyDimension
    A list of dimensions describing qualities of the metric.
    EvaluationPeriods int
    The number of periods over which data is compared to the specified threshold.
    IsEnabled bool
    Specifies whether the scaling policy described in this block is enabled.
    MaxTargetCapacity string
    Maximum string
    The maximal number of instances to have in the group.
    MinTargetCapacity string
    . The number of the desired target (and minimum) capacity
    Minimum string
    The minimal number of instances to have in the group.
    Operator string
    The operator to use in order to determine if the scaling policy is applicable. Valid values: "gt", "gte", "lt", "lte".
    Period int
    The granularity, in seconds, of the returned datapoints. Period must be at least 60 seconds and must be a multiple of 60.
    Source string
    The source of the metric. Valid values: "cloudWatch", "spectrum".
    Statistic string
    The metric statistics to return. For information about specific statistics go to Statistics in the Amazon CloudWatch Developer Guide.
    StepAdjustments []ElastigroupScalingUpPolicyStepAdjustment
    Target string
    The target number of instances to have in the group.
    Threshold float64
    The value against which the specified statistic is compared. If a step_adjustment object is defined, then it cannot be specified.
    Unit string
    The unit for the alarm's associated metric. Valid values: "percent, "seconds", "microseconds", "milliseconds", "bytes", "kilobytes", "megabytes", "gigabytes", "terabytes", "bits", "kilobits", "megabits", "gigabits", "terabits", "count", "bytes/second", "kilobytes/second", "megabytes/second", "gigabytes/second", "terabytes/second", "bits/second", "kilobits/second", "megabits/second", "gigabits/second", "terabits/second", "count/second", "none".
    metricName String
    The name of the metric, with or without spaces.
    namespace String
    The namespace for the alarm's associated metric.
    policyName String
    The name of the policy.
    actionType String
    The type of action to perform for scaling. Valid values: "adjustment", "percentageAdjustment", "setMaxTarget", "setMinTarget", "updateCapacity". If a step_adjustment object is defined, then it cannot be specified.
    adjustment String
    The number of instances to add/remove to/from the target capacity when scale is needed. Can be used as advanced expression for scaling of instances to add/remove to/from the target capacity when scale is needed. You can see more information here: Advanced expression. Example value: "MAX(currCapacity / 5, value * 10)"
    cooldown Integer
    The amount of time, in seconds, after a scaling activity completes and before the next scaling activity can start. If this parameter is not specified, the default cooldown period for the group applies.
    dimensions List<ElastigroupScalingUpPolicyDimension>
    A list of dimensions describing qualities of the metric.
    evaluationPeriods Integer
    The number of periods over which data is compared to the specified threshold.
    isEnabled Boolean
    Specifies whether the scaling policy described in this block is enabled.
    maxTargetCapacity String
    maximum String
    The maximal number of instances to have in the group.
    minTargetCapacity String
    . The number of the desired target (and minimum) capacity
    minimum String
    The minimal number of instances to have in the group.
    operator String
    The operator to use in order to determine if the scaling policy is applicable. Valid values: "gt", "gte", "lt", "lte".
    period Integer
    The granularity, in seconds, of the returned datapoints. Period must be at least 60 seconds and must be a multiple of 60.
    source String
    The source of the metric. Valid values: "cloudWatch", "spectrum".
    statistic String
    The metric statistics to return. For information about specific statistics go to Statistics in the Amazon CloudWatch Developer Guide.
    stepAdjustments List<ElastigroupScalingUpPolicyStepAdjustment>
    target String
    The target number of instances to have in the group.
    threshold Double
    The value against which the specified statistic is compared. If a step_adjustment object is defined, then it cannot be specified.
    unit String
    The unit for the alarm's associated metric. Valid values: "percent, "seconds", "microseconds", "milliseconds", "bytes", "kilobytes", "megabytes", "gigabytes", "terabytes", "bits", "kilobits", "megabits", "gigabits", "terabits", "count", "bytes/second", "kilobytes/second", "megabytes/second", "gigabytes/second", "terabytes/second", "bits/second", "kilobits/second", "megabits/second", "gigabits/second", "terabits/second", "count/second", "none".
    metricName string
    The name of the metric, with or without spaces.
    namespace string
    The namespace for the alarm's associated metric.
    policyName string
    The name of the policy.
    actionType string
    The type of action to perform for scaling. Valid values: "adjustment", "percentageAdjustment", "setMaxTarget", "setMinTarget", "updateCapacity". If a step_adjustment object is defined, then it cannot be specified.
    adjustment string
    The number of instances to add/remove to/from the target capacity when scale is needed. Can be used as advanced expression for scaling of instances to add/remove to/from the target capacity when scale is needed. You can see more information here: Advanced expression. Example value: "MAX(currCapacity / 5, value * 10)"
    cooldown number
    The amount of time, in seconds, after a scaling activity completes and before the next scaling activity can start. If this parameter is not specified, the default cooldown period for the group applies.
    dimensions ElastigroupScalingUpPolicyDimension[]
    A list of dimensions describing qualities of the metric.
    evaluationPeriods number
    The number of periods over which data is compared to the specified threshold.
    isEnabled boolean
    Specifies whether the scaling policy described in this block is enabled.
    maxTargetCapacity string
    maximum string
    The maximal number of instances to have in the group.
    minTargetCapacity string
    . The number of the desired target (and minimum) capacity
    minimum string
    The minimal number of instances to have in the group.
    operator string
    The operator to use in order to determine if the scaling policy is applicable. Valid values: "gt", "gte", "lt", "lte".
    period number
    The granularity, in seconds, of the returned datapoints. Period must be at least 60 seconds and must be a multiple of 60.
    source string
    The source of the metric. Valid values: "cloudWatch", "spectrum".
    statistic string
    The metric statistics to return. For information about specific statistics go to Statistics in the Amazon CloudWatch Developer Guide.
    stepAdjustments ElastigroupScalingUpPolicyStepAdjustment[]
    target string
    The target number of instances to have in the group.
    threshold number
    The value against which the specified statistic is compared. If a step_adjustment object is defined, then it cannot be specified.
    unit string
    The unit for the alarm's associated metric. Valid values: "percent, "seconds", "microseconds", "milliseconds", "bytes", "kilobytes", "megabytes", "gigabytes", "terabytes", "bits", "kilobits", "megabits", "gigabits", "terabits", "count", "bytes/second", "kilobytes/second", "megabytes/second", "gigabytes/second", "terabytes/second", "bits/second", "kilobits/second", "megabits/second", "gigabits/second", "terabits/second", "count/second", "none".
    metric_name str
    The name of the metric, with or without spaces.
    namespace str
    The namespace for the alarm's associated metric.
    policy_name str
    The name of the policy.
    action_type str
    The type of action to perform for scaling. Valid values: "adjustment", "percentageAdjustment", "setMaxTarget", "setMinTarget", "updateCapacity". If a step_adjustment object is defined, then it cannot be specified.
    adjustment str
    The number of instances to add/remove to/from the target capacity when scale is needed. Can be used as advanced expression for scaling of instances to add/remove to/from the target capacity when scale is needed. You can see more information here: Advanced expression. Example value: "MAX(currCapacity / 5, value * 10)"
    cooldown int
    The amount of time, in seconds, after a scaling activity completes and before the next scaling activity can start. If this parameter is not specified, the default cooldown period for the group applies.
    dimensions Sequence[ElastigroupScalingUpPolicyDimension]
    A list of dimensions describing qualities of the metric.
    evaluation_periods int
    The number of periods over which data is compared to the specified threshold.
    is_enabled bool
    Specifies whether the scaling policy described in this block is enabled.
    max_target_capacity str
    maximum str
    The maximal number of instances to have in the group.
    min_target_capacity str
    . The number of the desired target (and minimum) capacity
    minimum str
    The minimal number of instances to have in the group.
    operator str
    The operator to use in order to determine if the scaling policy is applicable. Valid values: "gt", "gte", "lt", "lte".
    period int
    The granularity, in seconds, of the returned datapoints. Period must be at least 60 seconds and must be a multiple of 60.
    source str
    The source of the metric. Valid values: "cloudWatch", "spectrum".
    statistic str
    The metric statistics to return. For information about specific statistics go to Statistics in the Amazon CloudWatch Developer Guide.
    step_adjustments Sequence[ElastigroupScalingUpPolicyStepAdjustment]
    target str
    The target number of instances to have in the group.
    threshold float
    The value against which the specified statistic is compared. If a step_adjustment object is defined, then it cannot be specified.
    unit str
    The unit for the alarm's associated metric. Valid values: "percent, "seconds", "microseconds", "milliseconds", "bytes", "kilobytes", "megabytes", "gigabytes", "terabytes", "bits", "kilobits", "megabits", "gigabits", "terabits", "count", "bytes/second", "kilobytes/second", "megabytes/second", "gigabytes/second", "terabytes/second", "bits/second", "kilobits/second", "megabits/second", "gigabits/second", "terabits/second", "count/second", "none".
    metricName String
    The name of the metric, with or without spaces.
    namespace String
    The namespace for the alarm's associated metric.
    policyName String
    The name of the policy.
    actionType String
    The type of action to perform for scaling. Valid values: "adjustment", "percentageAdjustment", "setMaxTarget", "setMinTarget", "updateCapacity". If a step_adjustment object is defined, then it cannot be specified.
    adjustment String
    The number of instances to add/remove to/from the target capacity when scale is needed. Can be used as advanced expression for scaling of instances to add/remove to/from the target capacity when scale is needed. You can see more information here: Advanced expression. Example value: "MAX(currCapacity / 5, value * 10)"
    cooldown Number
    The amount of time, in seconds, after a scaling activity completes and before the next scaling activity can start. If this parameter is not specified, the default cooldown period for the group applies.
    dimensions List<Property Map>
    A list of dimensions describing qualities of the metric.
    evaluationPeriods Number
    The number of periods over which data is compared to the specified threshold.
    isEnabled Boolean
    Specifies whether the scaling policy described in this block is enabled.
    maxTargetCapacity String
    maximum String
    The maximal number of instances to have in the group.
    minTargetCapacity String
    . The number of the desired target (and minimum) capacity
    minimum String
    The minimal number of instances to have in the group.
    operator String
    The operator to use in order to determine if the scaling policy is applicable. Valid values: "gt", "gte", "lt", "lte".
    period Number
    The granularity, in seconds, of the returned datapoints. Period must be at least 60 seconds and must be a multiple of 60.
    source String
    The source of the metric. Valid values: "cloudWatch", "spectrum".
    statistic String
    The metric statistics to return. For information about specific statistics go to Statistics in the Amazon CloudWatch Developer Guide.
    stepAdjustments List<Property Map>
    target String
    The target number of instances to have in the group.
    threshold Number
    The value against which the specified statistic is compared. If a step_adjustment object is defined, then it cannot be specified.
    unit String
    The unit for the alarm's associated metric. Valid values: "percent, "seconds", "microseconds", "milliseconds", "bytes", "kilobytes", "megabytes", "gigabytes", "terabytes", "bits", "kilobits", "megabits", "gigabits", "terabits", "count", "bytes/second", "kilobytes/second", "megabytes/second", "gigabytes/second", "terabytes/second", "bits/second", "kilobits/second", "megabits/second", "gigabits/second", "terabits/second", "count/second", "none".

    ElastigroupScalingUpPolicyDimension, ElastigroupScalingUpPolicyDimensionArgs

    Name string
    The dimension name.
    Value string
    The dimension value.
    Name string
    The dimension name.
    Value string
    The dimension value.
    name String
    The dimension name.
    value String
    The dimension value.
    name string
    The dimension name.
    value string
    The dimension value.
    name str
    The dimension name.
    value str
    The dimension value.
    name String
    The dimension name.
    value String
    The dimension value.

    ElastigroupScalingUpPolicyStepAdjustment, ElastigroupScalingUpPolicyStepAdjustmentArgs

    ElastigroupScalingUpPolicyStepAdjustmentAction, ElastigroupScalingUpPolicyStepAdjustmentActionArgs

    Type string
    Adjustment string
    MaxTargetCapacity string
    Maximum string
    MinTargetCapacity string
    Minimum string
    Target string
    Type string
    Adjustment string
    MaxTargetCapacity string
    Maximum string
    MinTargetCapacity string
    Minimum string
    Target string
    type String
    adjustment String
    maxTargetCapacity String
    maximum String
    minTargetCapacity String
    minimum String
    target String
    type string
    adjustment string
    maxTargetCapacity string
    maximum string
    minTargetCapacity string
    minimum string
    target string
    type String
    adjustment String
    maxTargetCapacity String
    maximum String
    minTargetCapacity String
    minimum String
    target String

    ElastigroupScheduledTask, ElastigroupScheduledTaskArgs

    TaskType string
    The task type to run. Supported task types are: "scale", "backup_ami", "roll", "scaleUp", "percentageScaleUp", "scaleDown", "percentageScaleDown", "statefulUpdateCapacity".
    Adjustment string
    The number of instances to add or remove.
    AdjustmentPercentage string

    The percentage of instances to add or remove.

    Usage:

    BatchSizePercentage string
    The percentage size of each batch in the scheduled deployment roll.
    CronExpression string
    A valid cron expression. The cron is running in UTC time zone and is in Unix cron format.
    Frequency string
    The recurrence frequency to run this task. Supported values are "hourly", "daily", "weekly" and "continuous".
    GracePeriod string
    The period of time (seconds) to wait before checking a batch's health after it's deployment.
    IsEnabled bool
    Setting the task to being enabled or disabled.
    MaxCapacity string
    The maximum number of instances the group should have.
    MinCapacity string
    The minimum number of instances the group should have.
    ScaleMaxCapacity string
    The maximum number of instances the group should have.
    ScaleMinCapacity string
    The minimum number of instances the group should have.
    ScaleTargetCapacity string
    The desired number of instances the group should have.
    StartTime string
    Set a start time for one time tasks.
    TargetCapacity string
    The desired number of instances the group should have.
    TaskType string
    The task type to run. Supported task types are: "scale", "backup_ami", "roll", "scaleUp", "percentageScaleUp", "scaleDown", "percentageScaleDown", "statefulUpdateCapacity".
    Adjustment string
    The number of instances to add or remove.
    AdjustmentPercentage string

    The percentage of instances to add or remove.

    Usage:

    BatchSizePercentage string
    The percentage size of each batch in the scheduled deployment roll.
    CronExpression string
    A valid cron expression. The cron is running in UTC time zone and is in Unix cron format.
    Frequency string
    The recurrence frequency to run this task. Supported values are "hourly", "daily", "weekly" and "continuous".
    GracePeriod string
    The period of time (seconds) to wait before checking a batch's health after it's deployment.
    IsEnabled bool
    Setting the task to being enabled or disabled.
    MaxCapacity string
    The maximum number of instances the group should have.
    MinCapacity string
    The minimum number of instances the group should have.
    ScaleMaxCapacity string
    The maximum number of instances the group should have.
    ScaleMinCapacity string
    The minimum number of instances the group should have.
    ScaleTargetCapacity string
    The desired number of instances the group should have.
    StartTime string
    Set a start time for one time tasks.
    TargetCapacity string
    The desired number of instances the group should have.
    taskType String
    The task type to run. Supported task types are: "scale", "backup_ami", "roll", "scaleUp", "percentageScaleUp", "scaleDown", "percentageScaleDown", "statefulUpdateCapacity".
    adjustment String
    The number of instances to add or remove.
    adjustmentPercentage String

    The percentage of instances to add or remove.

    Usage:

    batchSizePercentage String
    The percentage size of each batch in the scheduled deployment roll.
    cronExpression String
    A valid cron expression. The cron is running in UTC time zone and is in Unix cron format.
    frequency String
    The recurrence frequency to run this task. Supported values are "hourly", "daily", "weekly" and "continuous".
    gracePeriod String
    The period of time (seconds) to wait before checking a batch's health after it's deployment.
    isEnabled Boolean
    Setting the task to being enabled or disabled.
    maxCapacity String
    The maximum number of instances the group should have.
    minCapacity String
    The minimum number of instances the group should have.
    scaleMaxCapacity String
    The maximum number of instances the group should have.
    scaleMinCapacity String
    The minimum number of instances the group should have.
    scaleTargetCapacity String
    The desired number of instances the group should have.
    startTime String
    Set a start time for one time tasks.
    targetCapacity String
    The desired number of instances the group should have.
    taskType string
    The task type to run. Supported task types are: "scale", "backup_ami", "roll", "scaleUp", "percentageScaleUp", "scaleDown", "percentageScaleDown", "statefulUpdateCapacity".
    adjustment string
    The number of instances to add or remove.
    adjustmentPercentage string

    The percentage of instances to add or remove.

    Usage:

    batchSizePercentage string
    The percentage size of each batch in the scheduled deployment roll.
    cronExpression string
    A valid cron expression. The cron is running in UTC time zone and is in Unix cron format.
    frequency string
    The recurrence frequency to run this task. Supported values are "hourly", "daily", "weekly" and "continuous".
    gracePeriod string
    The period of time (seconds) to wait before checking a batch's health after it's deployment.
    isEnabled boolean
    Setting the task to being enabled or disabled.
    maxCapacity string
    The maximum number of instances the group should have.
    minCapacity string
    The minimum number of instances the group should have.
    scaleMaxCapacity string
    The maximum number of instances the group should have.
    scaleMinCapacity string
    The minimum number of instances the group should have.
    scaleTargetCapacity string
    The desired number of instances the group should have.
    startTime string
    Set a start time for one time tasks.
    targetCapacity string
    The desired number of instances the group should have.
    task_type str
    The task type to run. Supported task types are: "scale", "backup_ami", "roll", "scaleUp", "percentageScaleUp", "scaleDown", "percentageScaleDown", "statefulUpdateCapacity".
    adjustment str
    The number of instances to add or remove.
    adjustment_percentage str

    The percentage of instances to add or remove.

    Usage:

    batch_size_percentage str
    The percentage size of each batch in the scheduled deployment roll.
    cron_expression str
    A valid cron expression. The cron is running in UTC time zone and is in Unix cron format.
    frequency str
    The recurrence frequency to run this task. Supported values are "hourly", "daily", "weekly" and "continuous".
    grace_period str
    The period of time (seconds) to wait before checking a batch's health after it's deployment.
    is_enabled bool
    Setting the task to being enabled or disabled.
    max_capacity str
    The maximum number of instances the group should have.
    min_capacity str
    The minimum number of instances the group should have.
    scale_max_capacity str
    The maximum number of instances the group should have.
    scale_min_capacity str
    The minimum number of instances the group should have.
    scale_target_capacity str
    The desired number of instances the group should have.
    start_time str
    Set a start time for one time tasks.
    target_capacity str
    The desired number of instances the group should have.
    taskType String
    The task type to run. Supported task types are: "scale", "backup_ami", "roll", "scaleUp", "percentageScaleUp", "scaleDown", "percentageScaleDown", "statefulUpdateCapacity".
    adjustment String
    The number of instances to add or remove.
    adjustmentPercentage String

    The percentage of instances to add or remove.

    Usage:

    batchSizePercentage String
    The percentage size of each batch in the scheduled deployment roll.
    cronExpression String
    A valid cron expression. The cron is running in UTC time zone and is in Unix cron format.
    frequency String
    The recurrence frequency to run this task. Supported values are "hourly", "daily", "weekly" and "continuous".
    gracePeriod String
    The period of time (seconds) to wait before checking a batch's health after it's deployment.
    isEnabled Boolean
    Setting the task to being enabled or disabled.
    maxCapacity String
    The maximum number of instances the group should have.
    minCapacity String
    The minimum number of instances the group should have.
    scaleMaxCapacity String
    The maximum number of instances the group should have.
    scaleMinCapacity String
    The minimum number of instances the group should have.
    scaleTargetCapacity String
    The desired number of instances the group should have.
    startTime String
    Set a start time for one time tasks.
    targetCapacity String
    The desired number of instances the group should have.

    ElastigroupSignal, ElastigroupSignalArgs

    Name string
    The name of the signal defined for the group. Valid Values: "INSTANCE_READY", "INSTANCE_READY_TO_SHUTDOWN"
    Timeout int

    The signals defined timeout- default is 40 minutes (1800 seconds).

    Usage:

    Name string
    The name of the signal defined for the group. Valid Values: "INSTANCE_READY", "INSTANCE_READY_TO_SHUTDOWN"
    Timeout int

    The signals defined timeout- default is 40 minutes (1800 seconds).

    Usage:

    name String
    The name of the signal defined for the group. Valid Values: "INSTANCE_READY", "INSTANCE_READY_TO_SHUTDOWN"
    timeout Integer

    The signals defined timeout- default is 40 minutes (1800 seconds).

    Usage:

    name string
    The name of the signal defined for the group. Valid Values: "INSTANCE_READY", "INSTANCE_READY_TO_SHUTDOWN"
    timeout number

    The signals defined timeout- default is 40 minutes (1800 seconds).

    Usage:

    name str
    The name of the signal defined for the group. Valid Values: "INSTANCE_READY", "INSTANCE_READY_TO_SHUTDOWN"
    timeout int

    The signals defined timeout- default is 40 minutes (1800 seconds).

    Usage:

    name String
    The name of the signal defined for the group. Valid Values: "INSTANCE_READY", "INSTANCE_READY_TO_SHUTDOWN"
    timeout Number

    The signals defined timeout- default is 40 minutes (1800 seconds).

    Usage:

    ElastigroupStatefulDeallocation, ElastigroupStatefulDeallocationArgs

    ElastigroupStatefulInstanceAction, ElastigroupStatefulInstanceActionArgs

    ElastigroupTag, ElastigroupTagArgs

    Key string
    Value string
    Key string
    Value string
    key String
    value String
    key string
    value string
    key str
    value str
    key String
    value String

    ElastigroupUpdatePolicy, ElastigroupUpdatePolicyArgs

    ElastigroupUpdatePolicyRollConfig, ElastigroupUpdatePolicyRollConfigArgs

    BatchSizePercentage int
    GracePeriod int
    HealthCheckType string
    The service that will perform health checks for the instance. Valid values: "ELB", "HCS", "TARGET_GROUP", "EC2", "K8S_NODE", "NOMAD_NODE", "ECS_CLUSTER_INSTANCE".
    Strategy Pulumi.SpotInst.Aws.Inputs.ElastigroupUpdatePolicyRollConfigStrategy
    WaitForRollPercentage double
    WaitForRollTimeout int
    BatchSizePercentage int
    GracePeriod int
    HealthCheckType string
    The service that will perform health checks for the instance. Valid values: "ELB", "HCS", "TARGET_GROUP", "EC2", "K8S_NODE", "NOMAD_NODE", "ECS_CLUSTER_INSTANCE".
    Strategy ElastigroupUpdatePolicyRollConfigStrategy
    WaitForRollPercentage float64
    WaitForRollTimeout int
    batchSizePercentage Integer
    gracePeriod Integer
    healthCheckType String
    The service that will perform health checks for the instance. Valid values: "ELB", "HCS", "TARGET_GROUP", "EC2", "K8S_NODE", "NOMAD_NODE", "ECS_CLUSTER_INSTANCE".
    strategy ElastigroupUpdatePolicyRollConfigStrategy
    waitForRollPercentage Double
    waitForRollTimeout Integer
    batchSizePercentage number
    gracePeriod number
    healthCheckType string
    The service that will perform health checks for the instance. Valid values: "ELB", "HCS", "TARGET_GROUP", "EC2", "K8S_NODE", "NOMAD_NODE", "ECS_CLUSTER_INSTANCE".
    strategy ElastigroupUpdatePolicyRollConfigStrategy
    waitForRollPercentage number
    waitForRollTimeout number
    batch_size_percentage int
    grace_period int
    health_check_type str
    The service that will perform health checks for the instance. Valid values: "ELB", "HCS", "TARGET_GROUP", "EC2", "K8S_NODE", "NOMAD_NODE", "ECS_CLUSTER_INSTANCE".
    strategy ElastigroupUpdatePolicyRollConfigStrategy
    wait_for_roll_percentage float
    wait_for_roll_timeout int
    batchSizePercentage Number
    gracePeriod Number
    healthCheckType String
    The service that will perform health checks for the instance. Valid values: "ELB", "HCS", "TARGET_GROUP", "EC2", "K8S_NODE", "NOMAD_NODE", "ECS_CLUSTER_INSTANCE".
    strategy Property Map
    waitForRollPercentage Number
    waitForRollTimeout Number

    ElastigroupUpdatePolicyRollConfigStrategy, ElastigroupUpdatePolicyRollConfigStrategyArgs

    ElastigroupUpdatePolicyRollConfigStrategyOnFailure, ElastigroupUpdatePolicyRollConfigStrategyOnFailureArgs

    ActionType string
    BatchNum int
    DrainingTimeout int
    The time in seconds, the instance is allowed to run while detached from the ELB. This is to allow the instance time to be drained from incoming TCP connections before terminating it, during a scale down operation.
    ShouldDecrementTargetCapacity bool
    ShouldHandleAllBatches bool
    ActionType string
    BatchNum int
    DrainingTimeout int
    The time in seconds, the instance is allowed to run while detached from the ELB. This is to allow the instance time to be drained from incoming TCP connections before terminating it, during a scale down operation.
    ShouldDecrementTargetCapacity bool
    ShouldHandleAllBatches bool
    actionType String
    batchNum Integer
    drainingTimeout Integer
    The time in seconds, the instance is allowed to run while detached from the ELB. This is to allow the instance time to be drained from incoming TCP connections before terminating it, during a scale down operation.
    shouldDecrementTargetCapacity Boolean
    shouldHandleAllBatches Boolean
    actionType string
    batchNum number
    drainingTimeout number
    The time in seconds, the instance is allowed to run while detached from the ELB. This is to allow the instance time to be drained from incoming TCP connections before terminating it, during a scale down operation.
    shouldDecrementTargetCapacity boolean
    shouldHandleAllBatches boolean
    action_type str
    batch_num int
    draining_timeout int
    The time in seconds, the instance is allowed to run while detached from the ELB. This is to allow the instance time to be drained from incoming TCP connections before terminating it, during a scale down operation.
    should_decrement_target_capacity bool
    should_handle_all_batches bool
    actionType String
    batchNum Number
    drainingTimeout Number
    The time in seconds, the instance is allowed to run while detached from the ELB. This is to allow the instance time to be drained from incoming TCP connections before terminating it, during a scale down operation.
    shouldDecrementTargetCapacity Boolean
    shouldHandleAllBatches Boolean

    Package Details

    Repository
    Spotinst pulumi/pulumi-spotinst
    License
    Apache-2.0
    Notes
    This Pulumi package is based on the spotinst Terraform Provider.
    spotinst logo
    Spotinst v3.76.0 published on Wednesday, Apr 24, 2024 by Pulumi