1. Packages
  2. Spotinst Provider
  3. API Docs
  4. aws
  5. Elastigroup
Spotinst v3.100.0 published on Wednesday, Nov 20, 2024 by Pulumi

spotinst.aws.Elastigroup

Explore with Pulumi AI

spotinst logo
Spotinst v3.100.0 published on Wednesday, Nov 20, 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={
            "http_tokens": "optional",
            "http_put_response_hop_limit": 10,
            "instance_metadata_tags": "enabled",
        },
        cpu_options={
            "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=[
            {
                "instance_type": "m3.xlarge",
                "weight": 10,
            },
            {
                "instance_type": "m3.2xlarge",
                "weight": 16,
            },
        ],
        resource_requirements=[{
            "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=[{
            "terminate_at_end_of_billing_hour": True,
            "termination_policy": "default",
        }],
        scaling_up_policies=[{
            "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=[{
            "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=[
            {
                "key": "Env",
                "value": "production",
            },
            {
                "key": "Name",
                "value": "default-production",
            },
            {
                "key": "Project",
                "value": "app_v2",
            },
        ],
        resource_tag_specifications=[{
            "should_tag_enis": True,
            "should_tag_volumes": True,
            "should_tag_snapshots": True,
            "should_tag_amis": True,
        }],
        logging={
            "export": {
                "s3s": [{
                    "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,
                    auto_healing: Optional[bool] = 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,
                    restrict_single_az: Optional[bool] = 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.

    Constructor 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",
        },
        AutoHealing = false,
        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,
                DynamicIops = new SpotInst.Aws.Inputs.ElastigroupEbsBlockDeviceDynamicIopsArgs
                {
                    BaseSize = 0,
                    Resource = "string",
                    SizePerResourceUnit = 0,
                },
                DynamicVolumeSize = new SpotInst.Aws.Inputs.ElastigroupEbsBlockDeviceDynamicVolumeSizeArgs
                {
                    BaseSize = 0,
                    Resource = "string",
                    SizePerResourceUnit = 0,
                },
                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,
            },
        },
        RestrictSingleAz = 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"),
    	},
    	AutoHealing: pulumi.Bool(false),
    	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),
    			DynamicIops: &aws.ElastigroupEbsBlockDeviceDynamicIopsArgs{
    				BaseSize:            pulumi.Int(0),
    				Resource:            pulumi.String("string"),
    				SizePerResourceUnit: pulumi.Int(0),
    			},
    			DynamicVolumeSize: &aws.ElastigroupEbsBlockDeviceDynamicVolumeSizeArgs{
    				BaseSize:            pulumi.Int(0),
    				Resource:            pulumi.String("string"),
    				SizePerResourceUnit: pulumi.Int(0),
    			},
    			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),
    		},
    	},
    	RestrictSingleAz: 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")
        .autoHealing(false)
        .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)
            .dynamicIops(ElastigroupEbsBlockDeviceDynamicIopsArgs.builder()
                .baseSize(0)
                .resource("string")
                .sizePerResourceUnit(0)
                .build())
            .dynamicVolumeSize(ElastigroupEbsBlockDeviceDynamicVolumeSizeArgs.builder()
                .baseSize(0)
                .resource("string")
                .sizePerResourceUnit(0)
                .build())
            .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())
        .restrictSingleAz(false)
        .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"],
        auto_healing=False,
        availability_zones=["string"],
        block_devices_mode="string",
        capacity_unit="string",
        consider_od_pricing=False,
        cpu_credits="string",
        cpu_options={
            "threads_per_core": 0,
        },
        description="string",
        desired_capacity=0,
        draining_timeout=0,
        ebs_block_devices=[{
            "device_name": "string",
            "delete_on_termination": False,
            "dynamic_iops": {
                "base_size": 0,
                "resource": "string",
                "size_per_resource_unit": 0,
            },
            "dynamic_volume_size": {
                "base_size": 0,
                "resource": "string",
                "size_per_resource_unit": 0,
            },
            "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=[{
            "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=[{
            "images": [{
                "id": "string",
            }],
        }],
        immediate_od_recover_threshold=0,
        instance_types_ondemand="string",
        instance_types_preferred_spots=["string"],
        instance_types_spots=["string"],
        instance_types_weights=[{
            "instance_type": "string",
            "weight": 0,
        }],
        integration_beanstalk={
            "deployment_preferences": {
                "automatic_roll": False,
                "batch_size_percentage": 0,
                "grace_period": 0,
                "strategy": {
                    "action": "string",
                    "should_drain_instances": False,
                },
            },
            "environment_id": "string",
            "managed_actions": {
                "platform_update": {
                    "perform_at": "string",
                    "time_window": "string",
                    "update_level": "string",
                },
            },
        },
        integration_codedeploy={
            "cleanup_on_failure": False,
            "deployment_groups": [{
                "application_name": "string",
                "deployment_group_name": "string",
            }],
            "terminate_instance_on_failure": False,
        },
        integration_docker_swarm={
            "master_host": "string",
            "master_port": 0,
            "autoscale_cooldown": 0,
            "autoscale_down": {
                "evaluation_periods": 0,
                "max_scale_down_percentage": 0,
            },
            "autoscale_headroom": {
                "cpu_per_unit": 0,
                "memory_per_unit": 0,
                "num_of_units": 0,
            },
            "autoscale_is_enabled": False,
        },
        integration_ecs={
            "cluster_name": "string",
            "autoscale_attributes": [{
                "key": "string",
                "value": "string",
            }],
            "autoscale_cooldown": 0,
            "autoscale_down": {
                "evaluation_periods": 0,
                "max_scale_down_percentage": 0,
            },
            "autoscale_headroom": {
                "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": {
                "job_queue_names": ["string"],
            },
        },
        integration_gitlab={
            "runner": {
                "is_enabled": False,
            },
        },
        integration_kubernetes={
            "api_server": "string",
            "autoscale_cooldown": 0,
            "autoscale_down": {
                "evaluation_periods": 0,
                "max_scale_down_percentage": 0,
            },
            "autoscale_headroom": {
                "cpu_per_unit": 0,
                "memory_per_unit": 0,
                "num_of_units": 0,
            },
            "autoscale_is_auto_config": False,
            "autoscale_is_enabled": False,
            "autoscale_labels": [{
                "key": "string",
                "value": "string",
            }],
            "cluster_identifier": "string",
            "integration_mode": "string",
            "token": "string",
        },
        integration_mesosphere={
            "api_server": "string",
        },
        integration_nomad={
            "master_host": "string",
            "master_port": 0,
            "acl_token": "string",
            "autoscale_constraints": [{
                "key": "string",
                "value": "string",
            }],
            "autoscale_cooldown": 0,
            "autoscale_down": {
                "evaluation_periods": 0,
            },
            "autoscale_headroom": {
                "cpu_per_unit": 0,
                "memory_per_unit": 0,
                "num_of_units": 0,
            },
            "autoscale_is_enabled": False,
        },
        integration_rancher={
            "access_key": "string",
            "master_host": "string",
            "secret_key": "string",
            "version": "string",
        },
        integration_route53={
            "domains": [{
                "hosted_zone_id": "string",
                "record_sets": [{
                    "name": "string",
                    "use_public_dns": False,
                    "use_public_ip": False,
                }],
                "record_set_type": "string",
                "spotinst_acct_id": "string",
            }],
        },
        itfs=[{
            "fixed_target_groups": False,
            "load_balancers": [{
                "listener_rules": [{
                    "rule_arn": "string",
                    "static_target_group": {
                        "arn": "string",
                        "percentage": 0,
                    },
                }],
                "load_balancer_arn": "string",
            }],
            "target_group_configs": [{
                "port": 0,
                "health_check_path": "string",
                "vpc_id": "string",
                "protocol": "string",
                "matchers": [{
                    "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": [{
                    "tag_key": "string",
                    "tag_value": "string",
                }],
                "unhealthy_threshold_count": 0,
                "health_check_port": "string",
            }],
            "weight_strategy": "string",
            "default_static_target_group": {
                "arn": "string",
                "percentage": 0,
            },
            "migration_healthiness_threshold": 0,
        }],
        key_name="string",
        lifetime_period="string",
        logging={
            "export": {
                "s3s": [{
                    "id": "string",
                }],
            },
        },
        max_size=0,
        metadata_options={
            "http_tokens": "string",
            "http_put_response_hop_limit": 0,
            "instance_metadata_tags": "string",
        },
        min_size=0,
        minimum_instance_lifetime=0,
        multiple_metrics={
            "expressions": [{
                "expression": "string",
                "name": "string",
            }],
            "metrics": [{
                "metric_name": "string",
                "name": "string",
                "namespace": "string",
                "dimensions": [{
                    "name": "string",
                    "value": "string",
                }],
                "extended_statistic": "string",
                "statistic": "string",
                "unit": "string",
            }],
        },
        name="string",
        network_interfaces=[{
            "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=[{
            "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=[{
            "should_tag_amis": False,
            "should_tag_enis": False,
            "should_tag_snapshots": False,
            "should_tag_volumes": False,
        }],
        restrict_single_az=False,
        revert_to_spot={
            "perform_at": "string",
            "time_windows": ["string"],
        },
        scaling_down_policies=[{
            "metric_name": "string",
            "policy_name": "string",
            "namespace": "string",
            "minimum": "string",
            "operator": "string",
            "is_enabled": False,
            "max_target_capacity": "string",
            "maximum": "string",
            "dimensions": [{
                "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": [{
                "action": {
                    "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=[{
            "terminate_at_end_of_billing_hour": False,
            "termination_policy": "string",
        }],
        scaling_target_policies=[{
            "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": [{
                "name": "string",
                "value": "string",
            }],
            "unit": "string",
        }],
        scaling_up_policies=[{
            "metric_name": "string",
            "policy_name": "string",
            "namespace": "string",
            "minimum": "string",
            "operator": "string",
            "is_enabled": False,
            "max_target_capacity": "string",
            "maximum": "string",
            "dimensions": [{
                "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": [{
                "action": {
                    "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=[{
            "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=[{
            "name": "string",
            "timeout": 0,
        }],
        spot_percentage=0,
        stateful_deallocation={
            "should_delete_images": False,
            "should_delete_network_interfaces": False,
            "should_delete_snapshots": False,
            "should_delete_volumes": False,
        },
        stateful_instance_actions=[{
            "stateful_instance_id": "string",
            "type": "string",
        }],
        subnet_ids=["string"],
        tags=[{
            "key": "string",
            "value": "string",
        }],
        target_group_arns=["string"],
        update_policy={
            "should_resume_stateful": False,
            "should_roll": False,
            "auto_apply_tags": False,
            "roll_config": {
                "batch_size_percentage": 0,
                "grace_period": 0,
                "health_check_type": "string",
                "strategy": {
                    "action": "string",
                    "batch_min_healthy_percentage": 0,
                    "on_failure": {
                        "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"],
        autoHealing: false,
        availabilityZones: ["string"],
        blockDevicesMode: "string",
        capacityUnit: "string",
        considerOdPricing: false,
        cpuCredits: "string",
        cpuOptions: {
            threadsPerCore: 0,
        },
        description: "string",
        desiredCapacity: 0,
        drainingTimeout: 0,
        ebsBlockDevices: [{
            deviceName: "string",
            deleteOnTermination: false,
            dynamicIops: {
                baseSize: 0,
                resource: "string",
                sizePerResourceUnit: 0,
            },
            dynamicVolumeSize: {
                baseSize: 0,
                resource: "string",
                sizePerResourceUnit: 0,
            },
            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,
        }],
        restrictSingleAz: 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:
        autoHealing: false
        availabilityZones:
            - string
        blockDevicesMode: string
        capacityUnit: string
        considerOdPricing: false
        cpuCredits: string
        cpuOptions:
            threadsPerCore: 0
        description: string
        desiredCapacity: 0
        drainingTimeout: 0
        ebsBlockDevices:
            - deleteOnTermination: false
              deviceName: string
              dynamicIops:
                baseSize: 0
                resource: string
                sizePerResourceUnit: 0
              dynamicVolumeSize:
                baseSize: 0
                resource: string
                sizePerResourceUnit: 0
              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
        restrictSingleAz: 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

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

    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.
    AutoHealing bool
    Auto-healing replacement won't be triggered if this parameter value is "false". In a case of a stateful group - no recycling will start if this parameter value is "false".
    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.
    RestrictSingleAz bool
    Elastigroup will automatically scale your instances in the most available and cost efficient availability zone. Every evaluation will be done when there are no active instances in the group.
    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.
    AutoHealing bool
    Auto-healing replacement won't be triggered if this parameter value is "false". In a case of a stateful group - no recycling will start if this parameter value is "false".
    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.
    RestrictSingleAz bool
    Elastigroup will automatically scale your instances in the most available and cost efficient availability zone. Every evaluation will be done when there are no active instances in the group.
    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.
    autoHealing Boolean
    Auto-healing replacement won't be triggered if this parameter value is "false". In a case of a stateful group - no recycling will start if this parameter value is "false".
    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.
    restrictSingleAz Boolean
    Elastigroup will automatically scale your instances in the most available and cost efficient availability zone. Every evaluation will be done when there are no active instances in the group.
    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.
    autoHealing boolean
    Auto-healing replacement won't be triggered if this parameter value is "false". In a case of a stateful group - no recycling will start if this parameter value is "false".
    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.
    restrictSingleAz boolean
    Elastigroup will automatically scale your instances in the most available and cost efficient availability zone. Every evaluation will be done when there are no active instances in the group.
    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.
    auto_healing bool
    Auto-healing replacement won't be triggered if this parameter value is "false". In a case of a stateful group - no recycling will start if this parameter value is "false".
    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.
    restrict_single_az bool
    Elastigroup will automatically scale your instances in the most available and cost efficient availability zone. Every evaluation will be done when there are no active instances in the group.
    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.
    autoHealing Boolean
    Auto-healing replacement won't be triggered if this parameter value is "false". In a case of a stateful group - no recycling will start if this parameter value is "false".
    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.
    restrictSingleAz Boolean
    Elastigroup will automatically scale your instances in the most available and cost efficient availability zone. Every evaluation will be done when there are no active instances in the group.
    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,
            auto_healing: Optional[bool] = 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,
            restrict_single_az: Optional[bool] = 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:
    AutoHealing bool
    Auto-healing replacement won't be triggered if this parameter value is "false". In a case of a stateful group - no recycling will start if this parameter value is "false".
    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.
    RestrictSingleAz bool
    Elastigroup will automatically scale your instances in the most available and cost efficient availability zone. Every evaluation will be done when there are no active instances in the group.
    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.
    AutoHealing bool
    Auto-healing replacement won't be triggered if this parameter value is "false". In a case of a stateful group - no recycling will start if this parameter value is "false".
    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.
    RestrictSingleAz bool
    Elastigroup will automatically scale your instances in the most available and cost efficient availability zone. Every evaluation will be done when there are no active instances in the group.
    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.
    autoHealing Boolean
    Auto-healing replacement won't be triggered if this parameter value is "false". In a case of a stateful group - no recycling will start if this parameter value is "false".
    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.
    restrictSingleAz Boolean
    Elastigroup will automatically scale your instances in the most available and cost efficient availability zone. Every evaluation will be done when there are no active instances in the group.
    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.
    autoHealing boolean
    Auto-healing replacement won't be triggered if this parameter value is "false". In a case of a stateful group - no recycling will start if this parameter value is "false".
    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.
    restrictSingleAz boolean
    Elastigroup will automatically scale your instances in the most available and cost efficient availability zone. Every evaluation will be done when there are no active instances in the group.
    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.
    auto_healing bool
    Auto-healing replacement won't be triggered if this parameter value is "false". In a case of a stateful group - no recycling will start if this parameter value is "false".
    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.
    restrict_single_az bool
    Elastigroup will automatically scale your instances in the most available and cost efficient availability zone. Every evaluation will be done when there are no active instances in the group.
    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.
    autoHealing Boolean
    Auto-healing replacement won't be triggered if this parameter value is "false". In a case of a stateful group - no recycling will start if this parameter value is "false".
    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.
    restrictSingleAz Boolean
    Elastigroup will automatically scale your instances in the most available and cost efficient availability zone. Every evaluation will be done when there are no active instances in the group.
    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.
    DynamicIops Pulumi.SpotInst.Aws.Inputs.ElastigroupEbsBlockDeviceDynamicIops
    Set dynamic IOPS properties. When using this object, you cannot use the iops object. You must use one or the other.
    DynamicVolumeSize Pulumi.SpotInst.Aws.Inputs.ElastigroupEbsBlockDeviceDynamicVolumeSize
    Set dynamic volume size properties. When using this object, you cannot use volume_size. You must use one or the other.
    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.
    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.
    DynamicIops ElastigroupEbsBlockDeviceDynamicIops
    Set dynamic IOPS properties. When using this object, you cannot use the iops object. You must use one or the other.
    DynamicVolumeSize ElastigroupEbsBlockDeviceDynamicVolumeSize
    Set dynamic volume size properties. When using this object, you cannot use volume_size. You must use one or the other.
    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.
    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.
    dynamicIops ElastigroupEbsBlockDeviceDynamicIops
    Set dynamic IOPS properties. When using this object, you cannot use the iops object. You must use one or the other.
    dynamicVolumeSize ElastigroupEbsBlockDeviceDynamicVolumeSize
    Set dynamic volume size properties. When using this object, you cannot use volume_size. You must use one or the other.
    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.
    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.
    dynamicIops ElastigroupEbsBlockDeviceDynamicIops
    Set dynamic IOPS properties. When using this object, you cannot use the iops object. You must use one or the other.
    dynamicVolumeSize ElastigroupEbsBlockDeviceDynamicVolumeSize
    Set dynamic volume size properties. When using this object, you cannot use volume_size. You must use one or the other.
    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.
    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.
    dynamic_iops ElastigroupEbsBlockDeviceDynamicIops
    Set dynamic IOPS properties. When using this object, you cannot use the iops object. You must use one or the other.
    dynamic_volume_size ElastigroupEbsBlockDeviceDynamicVolumeSize
    Set dynamic volume size properties. When using this object, you cannot use volume_size. You must use one or the other.
    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.
    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.
    dynamicIops Property Map
    Set dynamic IOPS properties. When using this object, you cannot use the iops object. You must use one or the other.
    dynamicVolumeSize Property Map
    Set dynamic volume size properties. When using this object, you cannot use volume_size. You must use one or the other.
    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.
    volumeSize Number
    The size of the volume in gigabytes.
    volumeType String
    The type of volume. Can be "standard", "gp2", "gp3", "io1", "st1" or "sc1".

    ElastigroupEbsBlockDeviceDynamicIops, ElastigroupEbsBlockDeviceDynamicIopsArgs

    BaseSize int
    Initial size for IOPS.
    Resource string
    Type of resource, valid values: "CPU", "MEMORY".
    SizePerResourceUnit int

    Additional size per resource unit (in IOPS).

    Modifying any ebs_block_device currently requires resource replacement.

    Usage:

    BaseSize int
    Initial size for IOPS.
    Resource string
    Type of resource, valid values: "CPU", "MEMORY".
    SizePerResourceUnit int

    Additional size per resource unit (in IOPS).

    Modifying any ebs_block_device currently requires resource replacement.

    Usage:

    baseSize Integer
    Initial size for IOPS.
    resource String
    Type of resource, valid values: "CPU", "MEMORY".
    sizePerResourceUnit Integer

    Additional size per resource unit (in IOPS).

    Modifying any ebs_block_device currently requires resource replacement.

    Usage:

    baseSize number
    Initial size for IOPS.
    resource string
    Type of resource, valid values: "CPU", "MEMORY".
    sizePerResourceUnit number

    Additional size per resource unit (in IOPS).

    Modifying any ebs_block_device currently requires resource replacement.

    Usage:

    base_size int
    Initial size for IOPS.
    resource str
    Type of resource, valid values: "CPU", "MEMORY".
    size_per_resource_unit int

    Additional size per resource unit (in IOPS).

    Modifying any ebs_block_device currently requires resource replacement.

    Usage:

    baseSize Number
    Initial size for IOPS.
    resource String
    Type of resource, valid values: "CPU", "MEMORY".
    sizePerResourceUnit Number

    Additional size per resource unit (in IOPS).

    Modifying any ebs_block_device currently requires resource replacement.

    Usage:

    ElastigroupEbsBlockDeviceDynamicVolumeSize, ElastigroupEbsBlockDeviceDynamicVolumeSizeArgs

    BaseSize int
    Initial size for volume.
    Resource string
    Type of resource, valid values: "CPU", "MEMORY".
    SizePerResourceUnit int
    Additional size per resource unit (in GB).
    BaseSize int
    Initial size for volume.
    Resource string
    Type of resource, valid values: "CPU", "MEMORY".
    SizePerResourceUnit int
    Additional size per resource unit (in GB).
    baseSize Integer
    Initial size for volume.
    resource String
    Type of resource, valid values: "CPU", "MEMORY".
    sizePerResourceUnit Integer
    Additional size per resource unit (in GB).
    baseSize number
    Initial size for volume.
    resource string
    Type of resource, valid values: "CPU", "MEMORY".
    sizePerResourceUnit number
    Additional size per resource unit (in GB).
    base_size int
    Initial size for volume.
    resource str
    Type of resource, valid values: "CPU", "MEMORY".
    size_per_resource_unit int
    Additional size per resource unit (in GB).
    baseSize Number
    Initial size for volume.
    resource String
    Type of resource, valid values: "CPU", "MEMORY".
    sizePerResourceUnit Number
    Additional size per resource unit (in GB).

    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

    deploymentPreferences Property Map
    Preferences when performing a roll
    environmentId String
    managedActions Property Map
    Managed Actions parameters

    ElastigroupIntegrationBeanstalkDeploymentPreferences, ElastigroupIntegrationBeanstalkDeploymentPreferencesArgs

    automaticRoll Boolean
    Should roll perform automatically
    batchSizePercentage Number
    gracePeriod Number
    strategy Property Map

    ElastigroupIntegrationBeanstalkDeploymentPreferencesStrategy, ElastigroupIntegrationBeanstalkDeploymentPreferencesStrategyArgs

    ElastigroupIntegrationBeanstalkManagedActions, ElastigroupIntegrationBeanstalkManagedActionsArgs

    platformUpdate Property Map
    Platform Update parameters

    ElastigroupIntegrationBeanstalkManagedActionsPlatformUpdate, ElastigroupIntegrationBeanstalkManagedActionsPlatformUpdateArgs

    PerformAt string
    TimeWindow string
    Time Window for when action occurs ex. Mon:23:50-Tue:00:20
    UpdateLevel string

    Level to update

    Usage:

    PerformAt string
    TimeWindow string
    Time Window for when action occurs ex. Mon:23:50-Tue:00:20
    UpdateLevel string

    Level to update

    Usage:

    performAt String
    timeWindow String
    Time Window for when action occurs ex. Mon:23:50-Tue:00:20
    updateLevel String

    Level to update

    Usage:

    performAt string
    timeWindow string
    Time Window for when action occurs ex. Mon:23:50-Tue:00:20
    updateLevel string

    Level to update

    Usage:

    perform_at str
    time_window str
    Time Window for when action occurs ex. Mon:23:50-Tue:00:20
    update_level str

    Level to update

    Usage:

    performAt String
    timeWindow String
    Time Window for when action occurs ex. Mon:23:50-Tue:00:20
    updateLevel String

    Level to update

    Usage:

    ElastigroupIntegrationCodedeploy, ElastigroupIntegrationCodedeployArgs

    CleanupOnFailure bool
    Cleanup automatically after a failed deploy.
    DeploymentGroups List<Pulumi.SpotInst.Aws.Inputs.ElastigroupIntegrationCodedeployDeploymentGroup>
    Specify the deployment groups details.
    TerminateInstanceOnFailure bool
    Terminate the instance automatically after a failed deploy.
    CleanupOnFailure bool
    Cleanup automatically after a failed deploy.
    DeploymentGroups []ElastigroupIntegrationCodedeployDeploymentGroup
    Specify the deployment groups details.
    TerminateInstanceOnFailure bool
    Terminate the instance automatically after a failed deploy.
    cleanupOnFailure Boolean
    Cleanup automatically after a failed deploy.
    deploymentGroups List<ElastigroupIntegrationCodedeployDeploymentGroup>
    Specify the deployment groups details.
    terminateInstanceOnFailure Boolean
    Terminate the instance automatically after a failed deploy.
    cleanupOnFailure boolean
    Cleanup automatically after a failed deploy.
    deploymentGroups ElastigroupIntegrationCodedeployDeploymentGroup[]
    Specify the deployment groups details.
    terminateInstanceOnFailure boolean
    Terminate the instance automatically after a failed deploy.
    cleanup_on_failure bool
    Cleanup automatically after a failed deploy.
    deployment_groups Sequence[ElastigroupIntegrationCodedeployDeploymentGroup]
    Specify the deployment groups details.
    terminate_instance_on_failure bool
    Terminate the instance automatically after a failed deploy.
    cleanupOnFailure Boolean
    Cleanup automatically after a failed deploy.
    deploymentGroups List<Property Map>
    Specify the deployment groups details.
    terminateInstanceOnFailure Boolean
    Terminate the instance automatically after a failed deploy.

    ElastigroupIntegrationCodedeployDeploymentGroup, ElastigroupIntegrationCodedeployDeploymentGroupArgs

    ApplicationName string
    The application name.
    DeploymentGroupName string

    The deployment group name.

    Usage:

    ApplicationName string
    The application name.
    DeploymentGroupName string

    The deployment group name.

    Usage:

    applicationName String
    The application name.
    deploymentGroupName String

    The deployment group name.

    Usage:

    applicationName string
    The application name.
    deploymentGroupName string

    The deployment group name.

    Usage:

    application_name str
    The application name.
    deployment_group_name str

    The deployment group name.

    Usage:

    applicationName String
    The application name.
    deploymentGroupName String

    The deployment group name.

    Usage:

    ElastigroupIntegrationDockerSwarm, ElastigroupIntegrationDockerSwarmArgs

    ElastigroupIntegrationDockerSwarmAutoscaleDown, ElastigroupIntegrationDockerSwarmAutoscaleDownArgs

    ElastigroupIntegrationDockerSwarmAutoscaleHeadroom, ElastigroupIntegrationDockerSwarmAutoscaleHeadroomArgs

    cpuPerUnit Integer
    memoryPerUnit Integer
    numOfUnits Integer

    ElastigroupIntegrationEcs, ElastigroupIntegrationEcsArgs

    ClusterName string
    The name of the EC2 Container Service cluster.
    AutoscaleAttributes []ElastigroupIntegrationEcsAutoscaleAttribute
    A key/value mapping of tags to assign to the resource.
    AutoscaleCooldown int
    AutoscaleDown ElastigroupIntegrationEcsAutoscaleDown
    AutoscaleHeadroom ElastigroupIntegrationEcsAutoscaleHeadroom
    AutoscaleIsAutoConfig bool
    AutoscaleIsEnabled bool
    AutoscaleScaleDownNonServiceTasks bool
    Determines whether to scale down non-service tasks.
    Batch ElastigroupIntegrationEcsBatch
    Batch configuration object:
    clusterName String
    The name of the EC2 Container Service cluster.
    autoscaleAttributes List<ElastigroupIntegrationEcsAutoscaleAttribute>
    A key/value mapping of tags to assign to the resource.
    autoscaleCooldown Integer
    autoscaleDown ElastigroupIntegrationEcsAutoscaleDown
    autoscaleHeadroom ElastigroupIntegrationEcsAutoscaleHeadroom
    autoscaleIsAutoConfig Boolean
    autoscaleIsEnabled Boolean
    autoscaleScaleDownNonServiceTasks Boolean
    Determines whether to scale down non-service tasks.
    batch ElastigroupIntegrationEcsBatch
    Batch configuration object:
    clusterName string
    The name of the EC2 Container Service cluster.
    autoscaleAttributes ElastigroupIntegrationEcsAutoscaleAttribute[]
    A key/value mapping of tags to assign to the resource.
    autoscaleCooldown number
    autoscaleDown ElastigroupIntegrationEcsAutoscaleDown
    autoscaleHeadroom ElastigroupIntegrationEcsAutoscaleHeadroom
    autoscaleIsAutoConfig boolean
    autoscaleIsEnabled boolean
    autoscaleScaleDownNonServiceTasks boolean
    Determines whether to scale down non-service tasks.
    batch ElastigroupIntegrationEcsBatch
    Batch configuration object:
    clusterName String
    The name of the EC2 Container Service cluster.
    autoscaleAttributes List<Property Map>
    A key/value mapping of tags to assign to the resource.
    autoscaleCooldown Number
    autoscaleDown Property Map
    autoscaleHeadroom Property Map
    autoscaleIsAutoConfig Boolean
    autoscaleIsEnabled Boolean
    autoscaleScaleDownNonServiceTasks Boolean
    Determines whether to scale down non-service tasks.
    batch Property Map
    Batch configuration object:

    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>

    Array of strings.

    Usage:

    JobQueueNames []string

    Array of strings.

    Usage:

    jobQueueNames List<String>

    Array of strings.

    Usage:

    jobQueueNames string[]

    Array of strings.

    Usage:

    job_queue_names Sequence[str]

    Array of strings.

    Usage:

    jobQueueNames List<String>

    Array of strings.

    Usage:

    ElastigroupIntegrationGitlab, ElastigroupIntegrationGitlabArgs

    Runner ElastigroupIntegrationGitlabRunner
    Settings for Gitlab runner.
    runner ElastigroupIntegrationGitlabRunner
    Settings for Gitlab runner.
    runner ElastigroupIntegrationGitlabRunner
    Settings for Gitlab runner.
    runner ElastigroupIntegrationGitlabRunner
    Settings for Gitlab runner.
    runner Property Map
    Settings for Gitlab runner.

    ElastigroupIntegrationGitlabRunner, ElastigroupIntegrationGitlabRunnerArgs

    isEnabled Boolean
    isEnabled boolean
    isEnabled Boolean

    ElastigroupIntegrationKubernetes, ElastigroupIntegrationKubernetesArgs

    apiServer String
    autoscaleCooldown Number
    autoscaleDown Property Map
    autoscaleHeadroom Property Map
    autoscaleIsAutoConfig Boolean
    autoscaleIsEnabled Boolean
    autoscaleLabels List<Property Map>

    A key/value mapping of tags to assign to the resource.

    Usage:

    clusterIdentifier String
    integrationMode String
    Valid values: "saas", "pod".
    token String
    Kubernetes Token

    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

    masterHost String
    masterPort Number
    aclToken String
    Nomad ACL Token
    autoscaleConstraints List<Property Map>

    A key/value mapping of tags to assign to the resource.

    Usage:

    autoscaleCooldown Number
    autoscaleDown Property Map
    autoscaleHeadroom Property Map
    autoscaleIsEnabled Boolean

    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
    The access key of the Rancher API.
    MasterHost string
    SecretKey string
    The secret key of the Rancher API.
    Version string
    The Rancher version. Must be "1" or "2". If this field is omitted, it’s assumed that the Rancher cluster is version 1. Note that Kubernetes is required when using Rancher version 2^. Usage:
    AccessKey string
    The access key of the Rancher API.
    MasterHost string
    SecretKey string
    The secret key of the Rancher API.
    Version string
    The Rancher version. Must be "1" or "2". If this field is omitted, it’s assumed that the Rancher cluster is version 1. Note that Kubernetes is required when using Rancher version 2^. Usage:
    accessKey String
    The access key of the Rancher API.
    masterHost String
    secretKey String
    The secret key of the Rancher API.
    version String
    The Rancher version. Must be "1" or "2". If this field is omitted, it’s assumed that the Rancher cluster is version 1. Note that Kubernetes is required when using Rancher version 2^. Usage:
    accessKey string
    The access key of the Rancher API.
    masterHost string
    secretKey string
    The secret key of the Rancher API.
    version string
    The Rancher version. Must be "1" or "2". If this field is omitted, it’s assumed that the Rancher cluster is version 1. Note that Kubernetes is required when using Rancher version 2^. Usage:
    access_key str
    The access key of the Rancher API.
    master_host str
    secret_key str
    The secret key of the Rancher API.
    version str
    The Rancher version. Must be "1" or "2". If this field is omitted, it’s assumed that the Rancher cluster is version 1. Note that Kubernetes is required when using Rancher version 2^. Usage:
    accessKey String
    The access key of the Rancher API.
    masterHost String
    secretKey String
    The secret key of the Rancher API.
    version String
    The Rancher version. Must be "1" or "2". If this field is omitted, it’s assumed that the Rancher cluster is version 1. Note that Kubernetes is required when using Rancher version 2^. Usage:

    ElastigroupIntegrationRoute53, ElastigroupIntegrationRoute53Args

    Domains []ElastigroupIntegrationRoute53Domain
    Collection of one or more domains to register.
    domains List<ElastigroupIntegrationRoute53Domain>
    Collection of one or more domains to register.
    domains ElastigroupIntegrationRoute53Domain[]
    Collection of one or more domains to register.
    domains Sequence[ElastigroupIntegrationRoute53Domain]
    Collection of one or more domains to register.
    domains List<Property Map>
    Collection of one or more domains to register.

    ElastigroupIntegrationRoute53Domain, ElastigroupIntegrationRoute53DomainArgs

    HostedZoneId string
    The id associated with a hosted zone.
    RecordSets List<Pulumi.SpotInst.Aws.Inputs.ElastigroupIntegrationRoute53DomainRecordSet>
    Collection of records containing authoritative DNS information for the specified domain name.
    RecordSetType string
    The type of the record set. Valid values: "a", "cname".
    SpotinstAcctId string
    The Spotinst account ID that is linked to the AWS account that holds the Route 53 Hosted Zone ID. The default is the user Spotinst account provided as a URL parameter.
    HostedZoneId string
    The id associated with a hosted zone.
    RecordSets []ElastigroupIntegrationRoute53DomainRecordSet
    Collection of records containing authoritative DNS information for the specified domain name.
    RecordSetType string
    The type of the record set. Valid values: "a", "cname".
    SpotinstAcctId string
    The Spotinst account ID that is linked to the AWS account that holds the Route 53 Hosted Zone ID. The default is the user Spotinst account provided as a URL parameter.
    hostedZoneId String
    The id associated with a hosted zone.
    recordSets List<ElastigroupIntegrationRoute53DomainRecordSet>
    Collection of records containing authoritative DNS information for the specified domain name.
    recordSetType String
    The type of the record set. Valid values: "a", "cname".
    spotinstAcctId String
    The Spotinst account ID that is linked to the AWS account that holds the Route 53 Hosted Zone ID. The default is the user Spotinst account provided as a URL parameter.
    hostedZoneId string
    The id associated with a hosted zone.
    recordSets ElastigroupIntegrationRoute53DomainRecordSet[]
    Collection of records containing authoritative DNS information for the specified domain name.
    recordSetType string
    The type of the record set. Valid values: "a", "cname".
    spotinstAcctId string
    The Spotinst account ID that is linked to the AWS account that holds the Route 53 Hosted Zone ID. The default is the user Spotinst account provided as a URL parameter.
    hosted_zone_id str
    The id associated with a hosted zone.
    record_sets Sequence[ElastigroupIntegrationRoute53DomainRecordSet]
    Collection of records containing authoritative DNS information for the specified domain name.
    record_set_type str
    The type of the record set. Valid values: "a", "cname".
    spotinst_acct_id str
    The Spotinst account ID that is linked to the AWS account that holds the Route 53 Hosted Zone ID. The default is the user Spotinst account provided as a URL parameter.
    hostedZoneId String
    The id associated with a hosted zone.
    recordSets List<Property Map>
    Collection of records containing authoritative DNS information for the specified domain name.
    recordSetType String
    The type of the record set. Valid values: "a", "cname".
    spotinstAcctId String
    The Spotinst account ID that is linked to the AWS account that holds the Route 53 Hosted Zone ID. The default is the user Spotinst account provided as a URL parameter.

    ElastigroupIntegrationRoute53DomainRecordSet, ElastigroupIntegrationRoute53DomainRecordSetArgs

    Name string
    The group name.
    UsePublicDns bool

    Designates whether the DNS address should be exposed to connections outside the VPC.

    Usage:

    UsePublicIp bool
    Designates whether the IP address should be exposed to connections outside the VPC.
    Name string
    The group name.
    UsePublicDns bool

    Designates whether the DNS address should be exposed to connections outside the VPC.

    Usage:

    UsePublicIp bool
    Designates whether the IP address should be exposed to connections outside the VPC.
    name String
    The group name.
    usePublicDns Boolean

    Designates whether the DNS address should be exposed to connections outside the VPC.

    Usage:

    usePublicIp Boolean
    Designates whether the IP address should be exposed to connections outside the VPC.
    name string
    The group name.
    usePublicDns boolean

    Designates whether the DNS address should be exposed to connections outside the VPC.

    Usage:

    usePublicIp boolean
    Designates whether the IP address should be exposed to connections outside the VPC.
    name str
    The group name.
    use_public_dns bool

    Designates whether the DNS address should be exposed to connections outside the VPC.

    Usage:

    use_public_ip bool
    Designates whether the IP address should be exposed to connections outside the VPC.
    name String
    The group name.
    usePublicDns Boolean

    Designates whether the DNS address should be exposed to connections outside the VPC.

    Usage:

    usePublicIp Boolean
    Designates whether the IP address should be exposed to connections outside the VPC.

    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

    S3s List<Pulumi.SpotInst.Aws.Inputs.ElastigroupLoggingExportS3>
    Exports your cluster's logs to the S3 bucket and subdir configured on the S3 data integration given.
    S3s []ElastigroupLoggingExportS3
    Exports your cluster's logs to the S3 bucket and subdir configured on the S3 data integration given.
    s3s List<ElastigroupLoggingExportS3>
    Exports your cluster's logs to the S3 bucket and subdir configured on the S3 data integration given.
    s3s ElastigroupLoggingExportS3[]
    Exports your cluster's logs to the S3 bucket and subdir configured on the S3 data integration given.
    s3s Sequence[ElastigroupLoggingExportS3]
    Exports your cluster's logs to the S3 bucket and subdir configured on the S3 data integration given.
    s3s List<Property Map>
    Exports your cluster's logs to the S3 bucket and subdir configured on the S3 data integration given.

    ElastigroupLoggingExportS3, ElastigroupLoggingExportS3Args

    Id string
    The identifier of The S3 data integration to export the logs to.
    Id string
    The identifier of The S3 data integration to export the logs to.
    id String
    The identifier of The S3 data integration to export the logs to.
    id string
    The identifier of The S3 data integration to export the logs to.
    id str
    The identifier of The S3 data integration to export the logs to.
    id String
    The identifier of The S3 data integration to export the logs to.

    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

    Expressions []ElastigroupMultipleMetricsExpression
    Array of objects (Expression config)
    Metrics []ElastigroupMultipleMetricsMetric
    Array of objects (Metric config)
    expressions List<ElastigroupMultipleMetricsExpression>
    Array of objects (Expression config)
    metrics List<ElastigroupMultipleMetricsMetric>
    Array of objects (Metric config)
    expressions ElastigroupMultipleMetricsExpression[]
    Array of objects (Expression config)
    metrics ElastigroupMultipleMetricsMetric[]
    Array of objects (Metric config)
    expressions List<Property Map>
    Array of objects (Expression config)
    metrics List<Property Map>
    Array of objects (Metric config)

    ElastigroupMultipleMetricsExpression, ElastigroupMultipleMetricsExpressionArgs

    Expression string
    An expression consisting of the metric names listed in the 'metrics' array.
    Name string
    The group name.
    Expression string
    An expression consisting of the metric names listed in the 'metrics' array.
    Name string
    The group name.
    expression String
    An expression consisting of the metric names listed in the 'metrics' array.
    name String
    The group name.
    expression string
    An expression consisting of the metric names listed in the 'metrics' array.
    name string
    The group name.
    expression str
    An expression consisting of the metric names listed in the 'metrics' array.
    name str
    The group name.
    expression String
    An expression consisting of the metric names listed in the 'metrics' array.
    name String
    The group name.

    ElastigroupMultipleMetricsMetric, ElastigroupMultipleMetricsMetricArgs

    MetricName string
    Name string
    The group name.
    Namespace string
    Dimensions List<Pulumi.SpotInst.Aws.Inputs.ElastigroupMultipleMetricsMetricDimension>
    ExtendedStatistic string
    Percentile statistic. Valid values: "p0.1" - "p100".
    Statistic string
    Unit string
    MetricName string
    Name string
    The group name.
    Namespace string
    Dimensions []ElastigroupMultipleMetricsMetricDimension
    ExtendedStatistic string
    Percentile statistic. Valid values: "p0.1" - "p100".
    Statistic string
    Unit string
    metricName String
    name String
    The group name.
    namespace String
    dimensions List<ElastigroupMultipleMetricsMetricDimension>
    extendedStatistic String
    Percentile statistic. Valid values: "p0.1" - "p100".
    statistic String
    unit String
    metricName string
    name string
    The group name.
    namespace string
    dimensions ElastigroupMultipleMetricsMetricDimension[]
    extendedStatistic string
    Percentile statistic. Valid values: "p0.1" - "p100".
    statistic string
    unit string
    metric_name str
    name str
    The group name.
    namespace str
    dimensions Sequence[ElastigroupMultipleMetricsMetricDimension]
    extended_statistic str
    Percentile statistic. Valid values: "p0.1" - "p100".
    statistic str
    unit str
    metricName String
    name String
    The group name.
    namespace String
    dimensions List<Property Map>
    extendedStatistic String
    Percentile statistic. Valid values: "p0.1" - "p100".
    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

    DeviceIndex string
    The index of the device on the instance for the network interface attachment.
    AssociateIpv6Address bool

    Indicates whether to assign IPV6 addresses to your instance. Requires a subnet with IPV6 CIDR block ranges.

    Usage:

    AssociatePublicIpAddress bool
    Indicates whether to assign a public IP address to an instance you launch in a VPC. The public IP address can only be assigned to a network interface for eth0, and can only be assigned to a new network interface, not an existing one.
    DeleteOnTermination bool
    If set to true, the interface is deleted when the instance is terminated.
    Description string
    The description of the network interface.
    NetworkInterfaceId string
    The ID of the network interface.
    PrivateIpAddress string
    The private IP address of the network interface.
    SecondaryPrivateIpAddressCount string
    The number of secondary private IP addresses.
    DeviceIndex string
    The index of the device on the instance for the network interface attachment.
    AssociateIpv6Address bool

    Indicates whether to assign IPV6 addresses to your instance. Requires a subnet with IPV6 CIDR block ranges.

    Usage:

    AssociatePublicIpAddress bool
    Indicates whether to assign a public IP address to an instance you launch in a VPC. The public IP address can only be assigned to a network interface for eth0, and can only be assigned to a new network interface, not an existing one.
    DeleteOnTermination bool
    If set to true, the interface is deleted when the instance is terminated.
    Description string
    The description of the network interface.
    NetworkInterfaceId string
    The ID of the network interface.
    PrivateIpAddress string
    The private IP address of the network interface.
    SecondaryPrivateIpAddressCount string
    The number of secondary private IP addresses.
    deviceIndex String
    The index of the device on the instance for the network interface attachment.
    associateIpv6Address Boolean

    Indicates whether to assign IPV6 addresses to your instance. Requires a subnet with IPV6 CIDR block ranges.

    Usage:

    associatePublicIpAddress Boolean
    Indicates whether to assign a public IP address to an instance you launch in a VPC. The public IP address can only be assigned to a network interface for eth0, and can only be assigned to a new network interface, not an existing one.
    deleteOnTermination Boolean
    If set to true, the interface is deleted when the instance is terminated.
    description String
    The description of the network interface.
    networkInterfaceId String
    The ID of the network interface.
    privateIpAddress String
    The private IP address of the network interface.
    secondaryPrivateIpAddressCount String
    The number of secondary private IP addresses.
    deviceIndex string
    The index of the device on the instance for the network interface attachment.
    associateIpv6Address boolean

    Indicates whether to assign IPV6 addresses to your instance. Requires a subnet with IPV6 CIDR block ranges.

    Usage:

    associatePublicIpAddress boolean
    Indicates whether to assign a public IP address to an instance you launch in a VPC. The public IP address can only be assigned to a network interface for eth0, and can only be assigned to a new network interface, not an existing one.
    deleteOnTermination boolean
    If set to true, the interface is deleted when the instance is terminated.
    description string
    The description of the network interface.
    networkInterfaceId string
    The ID of the network interface.
    privateIpAddress string
    The private IP address of the network interface.
    secondaryPrivateIpAddressCount string
    The number of secondary private IP addresses.
    device_index str
    The index of the device on the instance for the network interface attachment.
    associate_ipv6_address bool

    Indicates whether to assign IPV6 addresses to your instance. Requires a subnet with IPV6 CIDR block ranges.

    Usage:

    associate_public_ip_address bool
    Indicates whether to assign a public IP address to an instance you launch in a VPC. The public IP address can only be assigned to a network interface for eth0, and can only be assigned to a new network interface, not an existing one.
    delete_on_termination bool
    If set to true, the interface is deleted when the instance is terminated.
    description str
    The description of the network interface.
    network_interface_id str
    The ID of the network interface.
    private_ip_address str
    The private IP address of the network interface.
    secondary_private_ip_address_count str
    The number of secondary private IP addresses.
    deviceIndex String
    The index of the device on the instance for the network interface attachment.
    associateIpv6Address Boolean

    Indicates whether to assign IPV6 addresses to your instance. Requires a subnet with IPV6 CIDR block ranges.

    Usage:

    associatePublicIpAddress Boolean
    Indicates whether to assign a public IP address to an instance you launch in a VPC. The public IP address can only be assigned to a network interface for eth0, and can only be assigned to a new network interface, not an existing one.
    deleteOnTermination Boolean
    If set to true, the interface is deleted when the instance is terminated.
    description String
    The description of the network interface.
    networkInterfaceId String
    The ID of the network interface.
    privateIpAddress String
    The private IP address of the network interface.
    secondaryPrivateIpAddressCount String
    The number of secondary private IP addresses.

    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

    ShouldDeleteImages bool
    For stateful groups: remove persistent images.
    ShouldDeleteNetworkInterfaces bool
    For stateful groups: remove network interfaces.
    ShouldDeleteSnapshots bool

    For stateful groups: remove snapshots.

    Usage:

    ShouldDeleteVolumes bool
    For stateful groups: remove persistent volumes.
    ShouldDeleteImages bool
    For stateful groups: remove persistent images.
    ShouldDeleteNetworkInterfaces bool
    For stateful groups: remove network interfaces.
    ShouldDeleteSnapshots bool

    For stateful groups: remove snapshots.

    Usage:

    ShouldDeleteVolumes bool
    For stateful groups: remove persistent volumes.
    shouldDeleteImages Boolean
    For stateful groups: remove persistent images.
    shouldDeleteNetworkInterfaces Boolean
    For stateful groups: remove network interfaces.
    shouldDeleteSnapshots Boolean

    For stateful groups: remove snapshots.

    Usage:

    shouldDeleteVolumes Boolean
    For stateful groups: remove persistent volumes.
    shouldDeleteImages boolean
    For stateful groups: remove persistent images.
    shouldDeleteNetworkInterfaces boolean
    For stateful groups: remove network interfaces.
    shouldDeleteSnapshots boolean

    For stateful groups: remove snapshots.

    Usage:

    shouldDeleteVolumes boolean
    For stateful groups: remove persistent volumes.
    should_delete_images bool
    For stateful groups: remove persistent images.
    should_delete_network_interfaces bool
    For stateful groups: remove network interfaces.
    should_delete_snapshots bool

    For stateful groups: remove snapshots.

    Usage:

    should_delete_volumes bool
    For stateful groups: remove persistent volumes.
    shouldDeleteImages Boolean
    For stateful groups: remove persistent images.
    shouldDeleteNetworkInterfaces Boolean
    For stateful groups: remove network interfaces.
    shouldDeleteSnapshots Boolean

    For stateful groups: remove snapshots.

    Usage:

    shouldDeleteVolumes Boolean
    For stateful groups: remove persistent volumes.

    ElastigroupStatefulInstanceAction, ElastigroupStatefulInstanceActionArgs

    StatefulInstanceId string
    String, Stateful Instance ID on which the action should be performed.
    Type string

    String, Action type. Supported action types: pause, resume, recycle, deallocate.

    Usage:

    StatefulInstanceId string
    String, Stateful Instance ID on which the action should be performed.
    Type string

    String, Action type. Supported action types: pause, resume, recycle, deallocate.

    Usage:

    statefulInstanceId String
    String, Stateful Instance ID on which the action should be performed.
    type String

    String, Action type. Supported action types: pause, resume, recycle, deallocate.

    Usage:

    statefulInstanceId string
    String, Stateful Instance ID on which the action should be performed.
    type string

    String, Action type. Supported action types: pause, resume, recycle, deallocate.

    Usage:

    stateful_instance_id str
    String, Stateful Instance ID on which the action should be performed.
    type str

    String, Action type. Supported action types: pause, resume, recycle, deallocate.

    Usage:

    statefulInstanceId String
    String, Stateful Instance ID on which the action should be performed.
    type String

    String, Action type. Supported action types: pause, resume, recycle, deallocate.

    Usage:

    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

    ShouldResumeStateful bool
    This will apply resuming action for Stateful instances in the Elastigroup upon scale up or capacity changes. Example usage will be for Elastigroups that will have scheduling rules to set a target capacity of 0 instances in the night and automatically restore the same state of the instances in the morning.
    ShouldRoll bool
    Sets the enablement of the roll option.
    AutoApplyTags bool
    Enables updates to tags without rolling the group when set to true.
    RollConfig Pulumi.SpotInst.Aws.Inputs.ElastigroupUpdatePolicyRollConfig
    While used, you can control whether the group should perform a deployment after an update to the configuration.
    ShouldResumeStateful bool
    This will apply resuming action for Stateful instances in the Elastigroup upon scale up or capacity changes. Example usage will be for Elastigroups that will have scheduling rules to set a target capacity of 0 instances in the night and automatically restore the same state of the instances in the morning.
    ShouldRoll bool
    Sets the enablement of the roll option.
    AutoApplyTags bool
    Enables updates to tags without rolling the group when set to true.
    RollConfig ElastigroupUpdatePolicyRollConfig
    While used, you can control whether the group should perform a deployment after an update to the configuration.
    shouldResumeStateful Boolean
    This will apply resuming action for Stateful instances in the Elastigroup upon scale up or capacity changes. Example usage will be for Elastigroups that will have scheduling rules to set a target capacity of 0 instances in the night and automatically restore the same state of the instances in the morning.
    shouldRoll Boolean
    Sets the enablement of the roll option.
    autoApplyTags Boolean
    Enables updates to tags without rolling the group when set to true.
    rollConfig ElastigroupUpdatePolicyRollConfig
    While used, you can control whether the group should perform a deployment after an update to the configuration.
    shouldResumeStateful boolean
    This will apply resuming action for Stateful instances in the Elastigroup upon scale up or capacity changes. Example usage will be for Elastigroups that will have scheduling rules to set a target capacity of 0 instances in the night and automatically restore the same state of the instances in the morning.
    shouldRoll boolean
    Sets the enablement of the roll option.
    autoApplyTags boolean
    Enables updates to tags without rolling the group when set to true.
    rollConfig ElastigroupUpdatePolicyRollConfig
    While used, you can control whether the group should perform a deployment after an update to the configuration.
    should_resume_stateful bool
    This will apply resuming action for Stateful instances in the Elastigroup upon scale up or capacity changes. Example usage will be for Elastigroups that will have scheduling rules to set a target capacity of 0 instances in the night and automatically restore the same state of the instances in the morning.
    should_roll bool
    Sets the enablement of the roll option.
    auto_apply_tags bool
    Enables updates to tags without rolling the group when set to true.
    roll_config ElastigroupUpdatePolicyRollConfig
    While used, you can control whether the group should perform a deployment after an update to the configuration.
    shouldResumeStateful Boolean
    This will apply resuming action for Stateful instances in the Elastigroup upon scale up or capacity changes. Example usage will be for Elastigroups that will have scheduling rules to set a target capacity of 0 instances in the night and automatically restore the same state of the instances in the morning.
    shouldRoll Boolean
    Sets the enablement of the roll option.
    autoApplyTags Boolean
    Enables updates to tags without rolling the group when set to true.
    rollConfig Property Map
    While used, you can control whether the group should perform a deployment after an update to the configuration.

    ElastigroupUpdatePolicyRollConfig, ElastigroupUpdatePolicyRollConfigArgs

    BatchSizePercentage int
    Sets the percentage of the instances to deploy in each batch.
    GracePeriod int
    Sets the grace period for new instances to become healthy.
    HealthCheckType string
    Sets the health check type to use. Valid values: "EC2", "ECS_CLUSTER_INSTANCE", "ELB", "HCS", "TARGET_GROUP", "NONE".
    Strategy Pulumi.SpotInst.Aws.Inputs.ElastigroupUpdatePolicyRollConfigStrategy
    Strategy parameters
    WaitForRollPercentage double
    For use with should_roll. Sets minimum % of roll required to complete before continuing the plan. Required if wait_for_roll_timeout is set.
    WaitForRollTimeout int
    For use with should_roll. Sets how long to wait for the deployed % of a roll to exceed wait_for_roll_percentage before continuing the plan. Required if wait_for_roll_percentage is set.
    BatchSizePercentage int
    Sets the percentage of the instances to deploy in each batch.
    GracePeriod int
    Sets the grace period for new instances to become healthy.
    HealthCheckType string
    Sets the health check type to use. Valid values: "EC2", "ECS_CLUSTER_INSTANCE", "ELB", "HCS", "TARGET_GROUP", "NONE".
    Strategy ElastigroupUpdatePolicyRollConfigStrategy
    Strategy parameters
    WaitForRollPercentage float64
    For use with should_roll. Sets minimum % of roll required to complete before continuing the plan. Required if wait_for_roll_timeout is set.
    WaitForRollTimeout int
    For use with should_roll. Sets how long to wait for the deployed % of a roll to exceed wait_for_roll_percentage before continuing the plan. Required if wait_for_roll_percentage is set.
    batchSizePercentage Integer
    Sets the percentage of the instances to deploy in each batch.
    gracePeriod Integer
    Sets the grace period for new instances to become healthy.
    healthCheckType String
    Sets the health check type to use. Valid values: "EC2", "ECS_CLUSTER_INSTANCE", "ELB", "HCS", "TARGET_GROUP", "NONE".
    strategy ElastigroupUpdatePolicyRollConfigStrategy
    Strategy parameters
    waitForRollPercentage Double
    For use with should_roll. Sets minimum % of roll required to complete before continuing the plan. Required if wait_for_roll_timeout is set.
    waitForRollTimeout Integer
    For use with should_roll. Sets how long to wait for the deployed % of a roll to exceed wait_for_roll_percentage before continuing the plan. Required if wait_for_roll_percentage is set.
    batchSizePercentage number
    Sets the percentage of the instances to deploy in each batch.
    gracePeriod number
    Sets the grace period for new instances to become healthy.
    healthCheckType string
    Sets the health check type to use. Valid values: "EC2", "ECS_CLUSTER_INSTANCE", "ELB", "HCS", "TARGET_GROUP", "NONE".
    strategy ElastigroupUpdatePolicyRollConfigStrategy
    Strategy parameters
    waitForRollPercentage number
    For use with should_roll. Sets minimum % of roll required to complete before continuing the plan. Required if wait_for_roll_timeout is set.
    waitForRollTimeout number
    For use with should_roll. Sets how long to wait for the deployed % of a roll to exceed wait_for_roll_percentage before continuing the plan. Required if wait_for_roll_percentage is set.
    batch_size_percentage int
    Sets the percentage of the instances to deploy in each batch.
    grace_period int
    Sets the grace period for new instances to become healthy.
    health_check_type str
    Sets the health check type to use. Valid values: "EC2", "ECS_CLUSTER_INSTANCE", "ELB", "HCS", "TARGET_GROUP", "NONE".
    strategy ElastigroupUpdatePolicyRollConfigStrategy
    Strategy parameters
    wait_for_roll_percentage float
    For use with should_roll. Sets minimum % of roll required to complete before continuing the plan. Required if wait_for_roll_timeout is set.
    wait_for_roll_timeout int
    For use with should_roll. Sets how long to wait for the deployed % of a roll to exceed wait_for_roll_percentage before continuing the plan. Required if wait_for_roll_percentage is set.
    batchSizePercentage Number
    Sets the percentage of the instances to deploy in each batch.
    gracePeriod Number
    Sets the grace period for new instances to become healthy.
    healthCheckType String
    Sets the health check type to use. Valid values: "EC2", "ECS_CLUSTER_INSTANCE", "ELB", "HCS", "TARGET_GROUP", "NONE".
    strategy Property Map
    Strategy parameters
    waitForRollPercentage Number
    For use with should_roll. Sets minimum % of roll required to complete before continuing the plan. Required if wait_for_roll_timeout is set.
    waitForRollTimeout Number
    For use with should_roll. Sets how long to wait for the deployed % of a roll to exceed wait_for_roll_percentage before continuing the plan. Required if wait_for_roll_percentage is set.

    ElastigroupUpdatePolicyRollConfigStrategy, ElastigroupUpdatePolicyRollConfigStrategyArgs

    Action string
    Action to take. Valid values: REPLACE_SERVER, RESTART_SERVER.
    BatchMinHealthyPercentage int
    Indicates the threshold of minimum healthy instances in single batch. If the amount of healthy instances in single batch is under the threshold, the deployment will fail. Range 1 - 100.
    OnFailure Pulumi.SpotInst.Aws.Inputs.ElastigroupUpdatePolicyRollConfigStrategyOnFailure
    Set detach options to the deployment.
    ShouldDrainInstances bool
    Specify whether to drain incoming TCP connections before terminating a server.
    Action string
    Action to take. Valid values: REPLACE_SERVER, RESTART_SERVER.
    BatchMinHealthyPercentage int
    Indicates the threshold of minimum healthy instances in single batch. If the amount of healthy instances in single batch is under the threshold, the deployment will fail. Range 1 - 100.
    OnFailure ElastigroupUpdatePolicyRollConfigStrategyOnFailure
    Set detach options to the deployment.
    ShouldDrainInstances bool
    Specify whether to drain incoming TCP connections before terminating a server.
    action String
    Action to take. Valid values: REPLACE_SERVER, RESTART_SERVER.
    batchMinHealthyPercentage Integer
    Indicates the threshold of minimum healthy instances in single batch. If the amount of healthy instances in single batch is under the threshold, the deployment will fail. Range 1 - 100.
    onFailure ElastigroupUpdatePolicyRollConfigStrategyOnFailure
    Set detach options to the deployment.
    shouldDrainInstances Boolean
    Specify whether to drain incoming TCP connections before terminating a server.
    action string
    Action to take. Valid values: REPLACE_SERVER, RESTART_SERVER.
    batchMinHealthyPercentage number
    Indicates the threshold of minimum healthy instances in single batch. If the amount of healthy instances in single batch is under the threshold, the deployment will fail. Range 1 - 100.
    onFailure ElastigroupUpdatePolicyRollConfigStrategyOnFailure
    Set detach options to the deployment.
    shouldDrainInstances boolean
    Specify whether to drain incoming TCP connections before terminating a server.
    action str
    Action to take. Valid values: REPLACE_SERVER, RESTART_SERVER.
    batch_min_healthy_percentage int
    Indicates the threshold of minimum healthy instances in single batch. If the amount of healthy instances in single batch is under the threshold, the deployment will fail. Range 1 - 100.
    on_failure ElastigroupUpdatePolicyRollConfigStrategyOnFailure
    Set detach options to the deployment.
    should_drain_instances bool
    Specify whether to drain incoming TCP connections before terminating a server.
    action String
    Action to take. Valid values: REPLACE_SERVER, RESTART_SERVER.
    batchMinHealthyPercentage Number
    Indicates the threshold of minimum healthy instances in single batch. If the amount of healthy instances in single batch is under the threshold, the deployment will fail. Range 1 - 100.
    onFailure Property Map
    Set detach options to the deployment.
    shouldDrainInstances Boolean
    Specify whether to drain incoming TCP connections before terminating a server.

    ElastigroupUpdatePolicyRollConfigStrategyOnFailure, ElastigroupUpdatePolicyRollConfigStrategyOnFailureArgs

    ActionType string
    Sets the action that will take place, Accepted values are: DETACH_OLD, DETACH_NEW.
    BatchNum int
    DrainingTimeout int
    Indicates (in seconds) the timeout to wait until instance are detached.
    ShouldDecrementTargetCapacity bool
    Decrementing the group target capacity after detaching the instances.
    ShouldHandleAllBatches bool
    Indicator if the action should apply to all batches of the deployment or only the latest batch.
    ActionType string
    Sets the action that will take place, Accepted values are: DETACH_OLD, DETACH_NEW.
    BatchNum int
    DrainingTimeout int
    Indicates (in seconds) the timeout to wait until instance are detached.
    ShouldDecrementTargetCapacity bool
    Decrementing the group target capacity after detaching the instances.
    ShouldHandleAllBatches bool
    Indicator if the action should apply to all batches of the deployment or only the latest batch.
    actionType String
    Sets the action that will take place, Accepted values are: DETACH_OLD, DETACH_NEW.
    batchNum Integer
    drainingTimeout Integer
    Indicates (in seconds) the timeout to wait until instance are detached.
    shouldDecrementTargetCapacity Boolean
    Decrementing the group target capacity after detaching the instances.
    shouldHandleAllBatches Boolean
    Indicator if the action should apply to all batches of the deployment or only the latest batch.
    actionType string
    Sets the action that will take place, Accepted values are: DETACH_OLD, DETACH_NEW.
    batchNum number
    drainingTimeout number
    Indicates (in seconds) the timeout to wait until instance are detached.
    shouldDecrementTargetCapacity boolean
    Decrementing the group target capacity after detaching the instances.
    shouldHandleAllBatches boolean
    Indicator if the action should apply to all batches of the deployment or only the latest batch.
    action_type str
    Sets the action that will take place, Accepted values are: DETACH_OLD, DETACH_NEW.
    batch_num int
    draining_timeout int
    Indicates (in seconds) the timeout to wait until instance are detached.
    should_decrement_target_capacity bool
    Decrementing the group target capacity after detaching the instances.
    should_handle_all_batches bool
    Indicator if the action should apply to all batches of the deployment or only the latest batch.
    actionType String
    Sets the action that will take place, Accepted values are: DETACH_OLD, DETACH_NEW.
    batchNum Number
    drainingTimeout Number
    Indicates (in seconds) the timeout to wait until instance are detached.
    shouldDecrementTargetCapacity Boolean
    Decrementing the group target capacity after detaching the instances.
    shouldHandleAllBatches Boolean
    Indicator if the action should apply to all batches of the deployment or only the latest batch.

    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.100.0 published on Wednesday, Nov 20, 2024 by Pulumi