1. Packages
  2. Spotinst
  3. API Docs
  4. gcp
  5. Elastigroup
Spotinst v3.75.0 published on Monday, Apr 22, 2024 by Pulumi

spotinst.gcp.Elastigroup

Explore with Pulumi AI

spotinst logo
Spotinst v3.75.0 published on Monday, Apr 22, 2024 by Pulumi

    Provides a Spotinst elastigroup GCP resource.

    Example Usage

    import * as pulumi from "@pulumi/pulumi";
    import * as spotinst from "@pulumi/spotinst";
    
    const example = new spotinst.gcp.Elastigroup("example", {
        name: "example-gcp",
        description: "spotinst gcp group",
        serviceAccount: "example@myProject.iam.gservicecct.com",
        startupScript: "",
        instanceNamePrefix: "test-123a",
        minSize: 0,
        maxSize: 1,
        desiredCapacity: 1,
        availabilityZones: [
            "asia-east1-c",
            "us-central1-a",
        ],
        preemptiblePercentage: 50,
        fallbackToOndemand: true,
        drainingTimeout: 180,
        provisioningModel: "SPOT",
        labels: [{
            key: "test_key",
            value: "test_value",
        }],
        tags: [
            "http",
            "https",
        ],
        backendServices: [{
            serviceName: "spotinst-elb-backend-service",
            locationType: "regional",
            scheme: "INTERNAL",
            namedPorts: [{
                name: "port-name",
                ports: [
                    "8000",
                    "6000",
                ],
            }],
        }],
        disks: [{
            deviceName: "device",
            mode: "READ_WRITE",
            type: "PERSISTENT",
            autoDelete: true,
            boot: true,
            "interface": "SCSI",
            initializeParams: [{
                diskSizeGb: "10",
                diskType: "pd-standard",
                sourceImage: "",
            }],
        }],
        networkInterfaces: [{
            network: "spot-network",
        }],
        instanceTypesOndemand: "n1-standard-1",
        instanceTypesPreemptibles: [
            "n1-standard-1",
            "n1-standard-2",
        ],
        instanceTypesCustoms: [{
            vcpu: 2,
            memoryGib: 7,
        }],
        subnets: [{
            region: "asia-east1",
            subnetNames: ["default"],
        }],
        scalingUpPolicies: [{
            policyName: "scale_up_1",
            source: "stackdriver",
            metricName: "instance/disk/read_ops_count",
            namespace: "compute",
            statistic: "average",
            unit: "percent",
            threshold: 10000,
            period: 300,
            cooldown: 300,
            operator: "gte",
            evaluationPeriods: 1,
            actionType: "adjustment",
            adjustment: 1,
            dimensions: [{
                name: "storage_type",
                value: "pd-ssd",
            }],
        }],
    });
    
    import pulumi
    import pulumi_spotinst as spotinst
    
    example = spotinst.gcp.Elastigroup("example",
        name="example-gcp",
        description="spotinst gcp group",
        service_account="example@myProject.iam.gservicecct.com",
        startup_script="",
        instance_name_prefix="test-123a",
        min_size=0,
        max_size=1,
        desired_capacity=1,
        availability_zones=[
            "asia-east1-c",
            "us-central1-a",
        ],
        preemptible_percentage=50,
        fallback_to_ondemand=True,
        draining_timeout=180,
        provisioning_model="SPOT",
        labels=[spotinst.gcp.ElastigroupLabelArgs(
            key="test_key",
            value="test_value",
        )],
        tags=[
            "http",
            "https",
        ],
        backend_services=[spotinst.gcp.ElastigroupBackendServiceArgs(
            service_name="spotinst-elb-backend-service",
            location_type="regional",
            scheme="INTERNAL",
            named_ports=[spotinst.gcp.ElastigroupBackendServiceNamedPortArgs(
                name="port-name",
                ports=[
                    "8000",
                    "6000",
                ],
            )],
        )],
        disks=[spotinst.gcp.ElastigroupDiskArgs(
            device_name="device",
            mode="READ_WRITE",
            type="PERSISTENT",
            auto_delete=True,
            boot=True,
            interface="SCSI",
            initialize_params=[spotinst.gcp.ElastigroupDiskInitializeParamArgs(
                disk_size_gb="10",
                disk_type="pd-standard",
                source_image="",
            )],
        )],
        network_interfaces=[spotinst.gcp.ElastigroupNetworkInterfaceArgs(
            network="spot-network",
        )],
        instance_types_ondemand="n1-standard-1",
        instance_types_preemptibles=[
            "n1-standard-1",
            "n1-standard-2",
        ],
        instance_types_customs=[spotinst.gcp.ElastigroupInstanceTypesCustomArgs(
            vcpu=2,
            memory_gib=7,
        )],
        subnets=[spotinst.gcp.ElastigroupSubnetArgs(
            region="asia-east1",
            subnet_names=["default"],
        )],
        scaling_up_policies=[spotinst.gcp.ElastigroupScalingUpPolicyArgs(
            policy_name="scale_up_1",
            source="stackdriver",
            metric_name="instance/disk/read_ops_count",
            namespace="compute",
            statistic="average",
            unit="percent",
            threshold=10000,
            period=300,
            cooldown=300,
            operator="gte",
            evaluation_periods=1,
            action_type="adjustment",
            adjustment=1,
            dimensions=[spotinst.gcp.ElastigroupScalingUpPolicyDimensionArgs(
                name="storage_type",
                value="pd-ssd",
            )],
        )])
    
    package main
    
    import (
    	"github.com/pulumi/pulumi-spotinst/sdk/v3/go/spotinst/gcp"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		_, err := gcp.NewElastigroup(ctx, "example", &gcp.ElastigroupArgs{
    			Name:               pulumi.String("example-gcp"),
    			Description:        pulumi.String("spotinst gcp group"),
    			ServiceAccount:     pulumi.String("example@myProject.iam.gservicecct.com"),
    			StartupScript:      pulumi.String(""),
    			InstanceNamePrefix: pulumi.String("test-123a"),
    			MinSize:            pulumi.Int(0),
    			MaxSize:            pulumi.Int(1),
    			DesiredCapacity:    pulumi.Int(1),
    			AvailabilityZones: pulumi.StringArray{
    				pulumi.String("asia-east1-c"),
    				pulumi.String("us-central1-a"),
    			},
    			PreemptiblePercentage: pulumi.Int(50),
    			FallbackToOndemand:    pulumi.Bool(true),
    			DrainingTimeout:       pulumi.Int(180),
    			ProvisioningModel:     pulumi.String("SPOT"),
    			Labels: gcp.ElastigroupLabelArray{
    				&gcp.ElastigroupLabelArgs{
    					Key:   pulumi.String("test_key"),
    					Value: pulumi.String("test_value"),
    				},
    			},
    			Tags: pulumi.StringArray{
    				pulumi.String("http"),
    				pulumi.String("https"),
    			},
    			BackendServices: gcp.ElastigroupBackendServiceArray{
    				&gcp.ElastigroupBackendServiceArgs{
    					ServiceName:  pulumi.String("spotinst-elb-backend-service"),
    					LocationType: pulumi.String("regional"),
    					Scheme:       pulumi.String("INTERNAL"),
    					NamedPorts: gcp.ElastigroupBackendServiceNamedPortArray{
    						&gcp.ElastigroupBackendServiceNamedPortArgs{
    							Name: pulumi.String("port-name"),
    							Ports: pulumi.StringArray{
    								pulumi.String("8000"),
    								pulumi.String("6000"),
    							},
    						},
    					},
    				},
    			},
    			Disks: gcp.ElastigroupDiskArray{
    				&gcp.ElastigroupDiskArgs{
    					DeviceName: pulumi.String("device"),
    					Mode:       pulumi.String("READ_WRITE"),
    					Type:       pulumi.String("PERSISTENT"),
    					AutoDelete: pulumi.Bool(true),
    					Boot:       pulumi.Bool(true),
    					Interface:  pulumi.String("SCSI"),
    					InitializeParams: gcp.ElastigroupDiskInitializeParamArray{
    						&gcp.ElastigroupDiskInitializeParamArgs{
    							DiskSizeGb:  pulumi.String("10"),
    							DiskType:    pulumi.String("pd-standard"),
    							SourceImage: pulumi.String(""),
    						},
    					},
    				},
    			},
    			NetworkInterfaces: gcp.ElastigroupNetworkInterfaceArray{
    				&gcp.ElastigroupNetworkInterfaceArgs{
    					Network: pulumi.String("spot-network"),
    				},
    			},
    			InstanceTypesOndemand: pulumi.String("n1-standard-1"),
    			InstanceTypesPreemptibles: pulumi.StringArray{
    				pulumi.String("n1-standard-1"),
    				pulumi.String("n1-standard-2"),
    			},
    			InstanceTypesCustoms: gcp.ElastigroupInstanceTypesCustomArray{
    				&gcp.ElastigroupInstanceTypesCustomArgs{
    					Vcpu:      pulumi.Int(2),
    					MemoryGib: pulumi.Int(7),
    				},
    			},
    			Subnets: gcp.ElastigroupSubnetArray{
    				&gcp.ElastigroupSubnetArgs{
    					Region: pulumi.String("asia-east1"),
    					SubnetNames: pulumi.StringArray{
    						pulumi.String("default"),
    					},
    				},
    			},
    			ScalingUpPolicies: gcp.ElastigroupScalingUpPolicyArray{
    				&gcp.ElastigroupScalingUpPolicyArgs{
    					PolicyName:        pulumi.String("scale_up_1"),
    					Source:            pulumi.String("stackdriver"),
    					MetricName:        pulumi.String("instance/disk/read_ops_count"),
    					Namespace:         pulumi.String("compute"),
    					Statistic:         pulumi.String("average"),
    					Unit:              pulumi.String("percent"),
    					Threshold:         pulumi.Float64(10000),
    					Period:            pulumi.Int(300),
    					Cooldown:          pulumi.Int(300),
    					Operator:          pulumi.String("gte"),
    					EvaluationPeriods: pulumi.Int(1),
    					ActionType:        pulumi.String("adjustment"),
    					Adjustment:        pulumi.Int(1),
    					Dimensions: gcp.ElastigroupScalingUpPolicyDimensionArray{
    						&gcp.ElastigroupScalingUpPolicyDimensionArgs{
    							Name:  pulumi.String("storage_type"),
    							Value: pulumi.String("pd-ssd"),
    						},
    					},
    				},
    			},
    		})
    		if err != nil {
    			return err
    		}
    		return nil
    	})
    }
    
    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using SpotInst = Pulumi.SpotInst;
    
    return await Deployment.RunAsync(() => 
    {
        var example = new SpotInst.Gcp.Elastigroup("example", new()
        {
            Name = "example-gcp",
            Description = "spotinst gcp group",
            ServiceAccount = "example@myProject.iam.gservicecct.com",
            StartupScript = "",
            InstanceNamePrefix = "test-123a",
            MinSize = 0,
            MaxSize = 1,
            DesiredCapacity = 1,
            AvailabilityZones = new[]
            {
                "asia-east1-c",
                "us-central1-a",
            },
            PreemptiblePercentage = 50,
            FallbackToOndemand = true,
            DrainingTimeout = 180,
            ProvisioningModel = "SPOT",
            Labels = new[]
            {
                new SpotInst.Gcp.Inputs.ElastigroupLabelArgs
                {
                    Key = "test_key",
                    Value = "test_value",
                },
            },
            Tags = new[]
            {
                "http",
                "https",
            },
            BackendServices = new[]
            {
                new SpotInst.Gcp.Inputs.ElastigroupBackendServiceArgs
                {
                    ServiceName = "spotinst-elb-backend-service",
                    LocationType = "regional",
                    Scheme = "INTERNAL",
                    NamedPorts = new[]
                    {
                        new SpotInst.Gcp.Inputs.ElastigroupBackendServiceNamedPortArgs
                        {
                            Name = "port-name",
                            Ports = new[]
                            {
                                "8000",
                                "6000",
                            },
                        },
                    },
                },
            },
            Disks = new[]
            {
                new SpotInst.Gcp.Inputs.ElastigroupDiskArgs
                {
                    DeviceName = "device",
                    Mode = "READ_WRITE",
                    Type = "PERSISTENT",
                    AutoDelete = true,
                    Boot = true,
                    Interface = "SCSI",
                    InitializeParams = new[]
                    {
                        new SpotInst.Gcp.Inputs.ElastigroupDiskInitializeParamArgs
                        {
                            DiskSizeGb = "10",
                            DiskType = "pd-standard",
                            SourceImage = "",
                        },
                    },
                },
            },
            NetworkInterfaces = new[]
            {
                new SpotInst.Gcp.Inputs.ElastigroupNetworkInterfaceArgs
                {
                    Network = "spot-network",
                },
            },
            InstanceTypesOndemand = "n1-standard-1",
            InstanceTypesPreemptibles = new[]
            {
                "n1-standard-1",
                "n1-standard-2",
            },
            InstanceTypesCustoms = new[]
            {
                new SpotInst.Gcp.Inputs.ElastigroupInstanceTypesCustomArgs
                {
                    Vcpu = 2,
                    MemoryGib = 7,
                },
            },
            Subnets = new[]
            {
                new SpotInst.Gcp.Inputs.ElastigroupSubnetArgs
                {
                    Region = "asia-east1",
                    SubnetNames = new[]
                    {
                        "default",
                    },
                },
            },
            ScalingUpPolicies = new[]
            {
                new SpotInst.Gcp.Inputs.ElastigroupScalingUpPolicyArgs
                {
                    PolicyName = "scale_up_1",
                    Source = "stackdriver",
                    MetricName = "instance/disk/read_ops_count",
                    Namespace = "compute",
                    Statistic = "average",
                    Unit = "percent",
                    Threshold = 10000,
                    Period = 300,
                    Cooldown = 300,
                    Operator = "gte",
                    EvaluationPeriods = 1,
                    ActionType = "adjustment",
                    Adjustment = 1,
                    Dimensions = new[]
                    {
                        new SpotInst.Gcp.Inputs.ElastigroupScalingUpPolicyDimensionArgs
                        {
                            Name = "storage_type",
                            Value = "pd-ssd",
                        },
                    },
                },
            },
        });
    
    });
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import com.pulumi.spotinst.gcp.Elastigroup;
    import com.pulumi.spotinst.gcp.ElastigroupArgs;
    import com.pulumi.spotinst.gcp.inputs.ElastigroupLabelArgs;
    import com.pulumi.spotinst.gcp.inputs.ElastigroupBackendServiceArgs;
    import com.pulumi.spotinst.gcp.inputs.ElastigroupDiskArgs;
    import com.pulumi.spotinst.gcp.inputs.ElastigroupNetworkInterfaceArgs;
    import com.pulumi.spotinst.gcp.inputs.ElastigroupInstanceTypesCustomArgs;
    import com.pulumi.spotinst.gcp.inputs.ElastigroupSubnetArgs;
    import com.pulumi.spotinst.gcp.inputs.ElastigroupScalingUpPolicyArgs;
    import java.util.List;
    import java.util.ArrayList;
    import java.util.Map;
    import java.io.File;
    import java.nio.file.Files;
    import java.nio.file.Paths;
    
    public class App {
        public static void main(String[] args) {
            Pulumi.run(App::stack);
        }
    
        public static void stack(Context ctx) {
            var example = new Elastigroup("example", ElastigroupArgs.builder()        
                .name("example-gcp")
                .description("spotinst gcp group")
                .serviceAccount("example@myProject.iam.gservicecct.com")
                .startupScript("")
                .instanceNamePrefix("test-123a")
                .minSize(0)
                .maxSize(1)
                .desiredCapacity(1)
                .availabilityZones(            
                    "asia-east1-c",
                    "us-central1-a")
                .preemptiblePercentage(50)
                .fallbackToOndemand(true)
                .drainingTimeout(180)
                .provisioningModel("SPOT")
                .labels(ElastigroupLabelArgs.builder()
                    .key("test_key")
                    .value("test_value")
                    .build())
                .tags(            
                    "http",
                    "https")
                .backendServices(ElastigroupBackendServiceArgs.builder()
                    .serviceName("spotinst-elb-backend-service")
                    .locationType("regional")
                    .scheme("INTERNAL")
                    .namedPorts(ElastigroupBackendServiceNamedPortArgs.builder()
                        .name("port-name")
                        .ports(                    
                            8000,
                            6000)
                        .build())
                    .build())
                .disks(ElastigroupDiskArgs.builder()
                    .deviceName("device")
                    .mode("READ_WRITE")
                    .type("PERSISTENT")
                    .autoDelete(true)
                    .boot(true)
                    .interface_("SCSI")
                    .initializeParams(ElastigroupDiskInitializeParamArgs.builder()
                        .diskSizeGb(10)
                        .diskType("pd-standard")
                        .sourceImage("")
                        .build())
                    .build())
                .networkInterfaces(ElastigroupNetworkInterfaceArgs.builder()
                    .network("spot-network")
                    .build())
                .instanceTypesOndemand("n1-standard-1")
                .instanceTypesPreemptibles(            
                    "n1-standard-1",
                    "n1-standard-2")
                .instanceTypesCustoms(ElastigroupInstanceTypesCustomArgs.builder()
                    .vcpu(2)
                    .memoryGib(7)
                    .build())
                .subnets(ElastigroupSubnetArgs.builder()
                    .region("asia-east1")
                    .subnetNames("default")
                    .build())
                .scalingUpPolicies(ElastigroupScalingUpPolicyArgs.builder()
                    .policyName("scale_up_1")
                    .source("stackdriver")
                    .metricName("instance/disk/read_ops_count")
                    .namespace("compute")
                    .statistic("average")
                    .unit("percent")
                    .threshold(10000)
                    .period(300)
                    .cooldown(300)
                    .operator("gte")
                    .evaluationPeriods(1)
                    .actionType("adjustment")
                    .adjustment(1)
                    .dimensions(ElastigroupScalingUpPolicyDimensionArgs.builder()
                        .name("storage_type")
                        .value("pd-ssd")
                        .build())
                    .build())
                .build());
    
        }
    }
    
    resources:
      example:
        type: spotinst:gcp:Elastigroup
        properties:
          name: example-gcp
          description: spotinst gcp group
          serviceAccount: example@myProject.iam.gservicecct.com
          startupScript:
          instanceNamePrefix: test-123a
          minSize: 0
          maxSize: 1
          desiredCapacity: 1
          availabilityZones:
            - asia-east1-c
            - us-central1-a
          preemptiblePercentage: 50 # on_demand_count      = 2
          fallbackToOndemand: true
          drainingTimeout: 180
          provisioningModel: SPOT
          labels:
            - key: test_key
              value: test_value
          tags:
            - http
            - https
          backendServices:
            - serviceName: spotinst-elb-backend-service
              locationType: regional
              scheme: INTERNAL
              namedPorts:
                - name: port-name
                  ports:
                    - 8000
                    - 6000
          disks:
            - deviceName: device
              mode: READ_WRITE
              type: PERSISTENT
              autoDelete: true
              boot: true
              interface: SCSI
              initializeParams:
                - diskSizeGb: 10
                  diskType: pd-standard
                  sourceImage:
          networkInterfaces:
            - network: spot-network
          instanceTypesOndemand: n1-standard-1
          instanceTypesPreemptibles:
            - n1-standard-1
            - n1-standard-2
          instanceTypesCustoms:
            - vcpu: 2
              memoryGib: 7
          subnets:
            - region: asia-east1
              subnetNames:
                - default
          scalingUpPolicies:
            - policyName: scale_up_1
              source: stackdriver
              metricName: instance/disk/read_ops_count
              namespace: compute
              statistic: average
              unit: percent
              threshold: 10000
              period: 300
              cooldown: 300
              operator: gte
              evaluationPeriods: 1
              actionType: adjustment
              adjustment: 1
              dimensions:
                - name: storage_type
                  value: pd-ssd
    

    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,
                    desired_capacity: Optional[int] = None,
                    labels: Optional[Sequence[ElastigroupLabelArgs]] = None,
                    availability_zones: Optional[Sequence[str]] = None,
                    description: Optional[str] = None,
                    auto_healing: Optional[bool] = None,
                    disks: Optional[Sequence[ElastigroupDiskArgs]] = None,
                    max_size: Optional[int] = None,
                    fallback_to_ondemand: Optional[bool] = None,
                    gpu: Optional[Sequence[ElastigroupGpuArgs]] = None,
                    health_check_grace_period: Optional[int] = None,
                    health_check_type: Optional[str] = None,
                    instance_name_prefix: Optional[str] = None,
                    instance_types_customs: Optional[Sequence[ElastigroupInstanceTypesCustomArgs]] = None,
                    instance_types_ondemand: Optional[str] = None,
                    instance_types_preemptibles: Optional[Sequence[str]] = None,
                    integration_docker_swarm: Optional[ElastigroupIntegrationDockerSwarmArgs] = None,
                    integration_gke: Optional[ElastigroupIntegrationGkeArgs] = None,
                    tags: Optional[Sequence[str]] = None,
                    backend_services: Optional[Sequence[ElastigroupBackendServiceArgs]] = None,
                    draining_timeout: Optional[int] = None,
                    metadatas: Optional[Sequence[ElastigroupMetadataArgs]] = None,
                    min_size: Optional[int] = None,
                    name: Optional[str] = None,
                    network_interfaces: Optional[Sequence[ElastigroupNetworkInterfaceArgs]] = None,
                    ondemand_count: Optional[int] = None,
                    preemptible_percentage: Optional[int] = None,
                    provisioning_model: Optional[str] = None,
                    scaling_down_policies: Optional[Sequence[ElastigroupScalingDownPolicyArgs]] = None,
                    scaling_up_policies: Optional[Sequence[ElastigroupScalingUpPolicyArgs]] = None,
                    scheduled_tasks: Optional[Sequence[ElastigroupScheduledTaskArgs]] = None,
                    service_account: Optional[str] = None,
                    shutdown_script: Optional[str] = None,
                    startup_script: Optional[str] = None,
                    subnets: Optional[Sequence[ElastigroupSubnetArgs]] = None,
                    ip_forwarding: Optional[bool] = None,
                    unhealthy_duration: 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:gcp:Elastigroup
    properties: # The arguments to resource properties.
    options: # Bag of options to control resource's behavior.
    
    

    Parameters

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

    Example

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

    var exampleelastigroupResourceResourceFromGcpelastigroup = new SpotInst.Gcp.Elastigroup("exampleelastigroupResourceResourceFromGcpelastigroup", new()
    {
        DesiredCapacity = 0,
        Labels = new[]
        {
            new SpotInst.Gcp.Inputs.ElastigroupLabelArgs
            {
                Key = "string",
                Value = "string",
            },
        },
        Description = "string",
        AutoHealing = false,
        Disks = new[]
        {
            new SpotInst.Gcp.Inputs.ElastigroupDiskArgs
            {
                AutoDelete = false,
                Boot = false,
                DeviceName = "string",
                InitializeParams = new[]
                {
                    new SpotInst.Gcp.Inputs.ElastigroupDiskInitializeParamArgs
                    {
                        SourceImage = "string",
                        DiskSizeGb = "string",
                        DiskType = "string",
                    },
                },
                Interface = "string",
                Mode = "string",
                Source = "string",
                Type = "string",
            },
        },
        MaxSize = 0,
        FallbackToOndemand = false,
        Gpu = new[]
        {
            new SpotInst.Gcp.Inputs.ElastigroupGpuArgs
            {
                Count = 0,
                Type = "string",
            },
        },
        HealthCheckGracePeriod = 0,
        HealthCheckType = "string",
        InstanceNamePrefix = "string",
        InstanceTypesCustoms = new[]
        {
            new SpotInst.Gcp.Inputs.ElastigroupInstanceTypesCustomArgs
            {
                MemoryGib = 0,
                Vcpu = 0,
            },
        },
        InstanceTypesOndemand = "string",
        InstanceTypesPreemptibles = new[]
        {
            "string",
        },
        IntegrationDockerSwarm = new SpotInst.Gcp.Inputs.ElastigroupIntegrationDockerSwarmArgs
        {
            MasterHost = "string",
            MasterPort = 0,
        },
        IntegrationGke = new SpotInst.Gcp.Inputs.ElastigroupIntegrationGkeArgs
        {
            AutoUpdate = false,
            AutoscaleCooldown = 0,
            AutoscaleDown = new SpotInst.Gcp.Inputs.ElastigroupIntegrationGkeAutoscaleDownArgs
            {
                EvaluationPeriods = 0,
            },
            AutoscaleHeadroom = new SpotInst.Gcp.Inputs.ElastigroupIntegrationGkeAutoscaleHeadroomArgs
            {
                CpuPerUnit = 0,
                MemoryPerUnit = 0,
                NumOfUnits = 0,
            },
            AutoscaleIsAutoConfig = false,
            AutoscaleIsEnabled = false,
            AutoscaleLabels = new[]
            {
                new SpotInst.Gcp.Inputs.ElastigroupIntegrationGkeAutoscaleLabelArgs
                {
                    Key = "string",
                    Value = "string",
                },
            },
            ClusterId = "string",
            Location = "string",
        },
        Tags = new[]
        {
            "string",
        },
        BackendServices = new[]
        {
            new SpotInst.Gcp.Inputs.ElastigroupBackendServiceArgs
            {
                ServiceName = "string",
                LocationType = "string",
                NamedPorts = new[]
                {
                    new SpotInst.Gcp.Inputs.ElastigroupBackendServiceNamedPortArgs
                    {
                        Name = "string",
                        Ports = new[]
                        {
                            "string",
                        },
                    },
                },
                Scheme = "string",
            },
        },
        DrainingTimeout = 0,
        Metadatas = new[]
        {
            new SpotInst.Gcp.Inputs.ElastigroupMetadataArgs
            {
                Key = "string",
                Value = "string",
            },
        },
        MinSize = 0,
        Name = "string",
        NetworkInterfaces = new[]
        {
            new SpotInst.Gcp.Inputs.ElastigroupNetworkInterfaceArgs
            {
                Network = "string",
                AccessConfigs = new[]
                {
                    new SpotInst.Gcp.Inputs.ElastigroupNetworkInterfaceAccessConfigArgs
                    {
                        Name = "string",
                        Type = "string",
                    },
                },
                AliasIpRanges = new[]
                {
                    new SpotInst.Gcp.Inputs.ElastigroupNetworkInterfaceAliasIpRangeArgs
                    {
                        IpCidrRange = "string",
                        SubnetworkRangeName = "string",
                    },
                },
            },
        },
        OndemandCount = 0,
        PreemptiblePercentage = 0,
        ProvisioningModel = "string",
        ScalingDownPolicies = new[]
        {
            new SpotInst.Gcp.Inputs.ElastigroupScalingDownPolicyArgs
            {
                PolicyName = "string",
                MetricName = "string",
                Unit = "string",
                Threshold = 0,
                Namespace = "string",
                EvaluationPeriods = 0,
                Adjustment = 0,
                Operator = "string",
                Source = "string",
                ActionType = "string",
                Period = 0,
                Statistic = "string",
                Dimensions = new[]
                {
                    new SpotInst.Gcp.Inputs.ElastigroupScalingDownPolicyDimensionArgs
                    {
                        Name = "string",
                        Value = "string",
                    },
                },
                Cooldown = 0,
            },
        },
        ScalingUpPolicies = new[]
        {
            new SpotInst.Gcp.Inputs.ElastigroupScalingUpPolicyArgs
            {
                PolicyName = "string",
                MetricName = "string",
                Unit = "string",
                Threshold = 0,
                Namespace = "string",
                EvaluationPeriods = 0,
                Adjustment = 0,
                Operator = "string",
                Source = "string",
                ActionType = "string",
                Period = 0,
                Statistic = "string",
                Dimensions = new[]
                {
                    new SpotInst.Gcp.Inputs.ElastigroupScalingUpPolicyDimensionArgs
                    {
                        Name = "string",
                        Value = "string",
                    },
                },
                Cooldown = 0,
            },
        },
        ScheduledTasks = new[]
        {
            new SpotInst.Gcp.Inputs.ElastigroupScheduledTaskArgs
            {
                TaskType = "string",
                CronExpression = "string",
                IsEnabled = false,
                MaxCapacity = "string",
                MinCapacity = "string",
                TargetCapacity = "string",
            },
        },
        ServiceAccount = "string",
        ShutdownScript = "string",
        StartupScript = "string",
        Subnets = new[]
        {
            new SpotInst.Gcp.Inputs.ElastigroupSubnetArgs
            {
                Region = "string",
                SubnetNames = new[]
                {
                    "string",
                },
            },
        },
        IpForwarding = false,
        UnhealthyDuration = 0,
    });
    
    example, err := gcp.NewElastigroup(ctx, "exampleelastigroupResourceResourceFromGcpelastigroup", &gcp.ElastigroupArgs{
    	DesiredCapacity: pulumi.Int(0),
    	Labels: gcp.ElastigroupLabelArray{
    		&gcp.ElastigroupLabelArgs{
    			Key:   pulumi.String("string"),
    			Value: pulumi.String("string"),
    		},
    	},
    	Description: pulumi.String("string"),
    	AutoHealing: pulumi.Bool(false),
    	Disks: gcp.ElastigroupDiskArray{
    		&gcp.ElastigroupDiskArgs{
    			AutoDelete: pulumi.Bool(false),
    			Boot:       pulumi.Bool(false),
    			DeviceName: pulumi.String("string"),
    			InitializeParams: gcp.ElastigroupDiskInitializeParamArray{
    				&gcp.ElastigroupDiskInitializeParamArgs{
    					SourceImage: pulumi.String("string"),
    					DiskSizeGb:  pulumi.String("string"),
    					DiskType:    pulumi.String("string"),
    				},
    			},
    			Interface: pulumi.String("string"),
    			Mode:      pulumi.String("string"),
    			Source:    pulumi.String("string"),
    			Type:      pulumi.String("string"),
    		},
    	},
    	MaxSize:            pulumi.Int(0),
    	FallbackToOndemand: pulumi.Bool(false),
    	Gpu: gcp.ElastigroupGpuArray{
    		&gcp.ElastigroupGpuArgs{
    			Count: pulumi.Int(0),
    			Type:  pulumi.String("string"),
    		},
    	},
    	HealthCheckGracePeriod: pulumi.Int(0),
    	HealthCheckType:        pulumi.String("string"),
    	InstanceNamePrefix:     pulumi.String("string"),
    	InstanceTypesCustoms: gcp.ElastigroupInstanceTypesCustomArray{
    		&gcp.ElastigroupInstanceTypesCustomArgs{
    			MemoryGib: pulumi.Int(0),
    			Vcpu:      pulumi.Int(0),
    		},
    	},
    	InstanceTypesOndemand: pulumi.String("string"),
    	InstanceTypesPreemptibles: pulumi.StringArray{
    		pulumi.String("string"),
    	},
    	IntegrationDockerSwarm: &gcp.ElastigroupIntegrationDockerSwarmArgs{
    		MasterHost: pulumi.String("string"),
    		MasterPort: pulumi.Int(0),
    	},
    	IntegrationGke: &gcp.ElastigroupIntegrationGkeArgs{
    		AutoUpdate:        pulumi.Bool(false),
    		AutoscaleCooldown: pulumi.Int(0),
    		AutoscaleDown: &gcp.ElastigroupIntegrationGkeAutoscaleDownArgs{
    			EvaluationPeriods: pulumi.Int(0),
    		},
    		AutoscaleHeadroom: &gcp.ElastigroupIntegrationGkeAutoscaleHeadroomArgs{
    			CpuPerUnit:    pulumi.Int(0),
    			MemoryPerUnit: pulumi.Int(0),
    			NumOfUnits:    pulumi.Int(0),
    		},
    		AutoscaleIsAutoConfig: pulumi.Bool(false),
    		AutoscaleIsEnabled:    pulumi.Bool(false),
    		AutoscaleLabels: gcp.ElastigroupIntegrationGkeAutoscaleLabelArray{
    			&gcp.ElastigroupIntegrationGkeAutoscaleLabelArgs{
    				Key:   pulumi.String("string"),
    				Value: pulumi.String("string"),
    			},
    		},
    		ClusterId: pulumi.String("string"),
    		Location:  pulumi.String("string"),
    	},
    	Tags: pulumi.StringArray{
    		pulumi.String("string"),
    	},
    	BackendServices: gcp.ElastigroupBackendServiceArray{
    		&gcp.ElastigroupBackendServiceArgs{
    			ServiceName:  pulumi.String("string"),
    			LocationType: pulumi.String("string"),
    			NamedPorts: gcp.ElastigroupBackendServiceNamedPortArray{
    				&gcp.ElastigroupBackendServiceNamedPortArgs{
    					Name: pulumi.String("string"),
    					Ports: pulumi.StringArray{
    						pulumi.String("string"),
    					},
    				},
    			},
    			Scheme: pulumi.String("string"),
    		},
    	},
    	DrainingTimeout: pulumi.Int(0),
    	Metadatas: gcp.ElastigroupMetadataArray{
    		&gcp.ElastigroupMetadataArgs{
    			Key:   pulumi.String("string"),
    			Value: pulumi.String("string"),
    		},
    	},
    	MinSize: pulumi.Int(0),
    	Name:    pulumi.String("string"),
    	NetworkInterfaces: gcp.ElastigroupNetworkInterfaceArray{
    		&gcp.ElastigroupNetworkInterfaceArgs{
    			Network: pulumi.String("string"),
    			AccessConfigs: gcp.ElastigroupNetworkInterfaceAccessConfigArray{
    				&gcp.ElastigroupNetworkInterfaceAccessConfigArgs{
    					Name: pulumi.String("string"),
    					Type: pulumi.String("string"),
    				},
    			},
    			AliasIpRanges: gcp.ElastigroupNetworkInterfaceAliasIpRangeArray{
    				&gcp.ElastigroupNetworkInterfaceAliasIpRangeArgs{
    					IpCidrRange:         pulumi.String("string"),
    					SubnetworkRangeName: pulumi.String("string"),
    				},
    			},
    		},
    	},
    	OndemandCount:         pulumi.Int(0),
    	PreemptiblePercentage: pulumi.Int(0),
    	ProvisioningModel:     pulumi.String("string"),
    	ScalingDownPolicies: gcp.ElastigroupScalingDownPolicyArray{
    		&gcp.ElastigroupScalingDownPolicyArgs{
    			PolicyName:        pulumi.String("string"),
    			MetricName:        pulumi.String("string"),
    			Unit:              pulumi.String("string"),
    			Threshold:         pulumi.Float64(0),
    			Namespace:         pulumi.String("string"),
    			EvaluationPeriods: pulumi.Int(0),
    			Adjustment:        pulumi.Int(0),
    			Operator:          pulumi.String("string"),
    			Source:            pulumi.String("string"),
    			ActionType:        pulumi.String("string"),
    			Period:            pulumi.Int(0),
    			Statistic:         pulumi.String("string"),
    			Dimensions: gcp.ElastigroupScalingDownPolicyDimensionArray{
    				&gcp.ElastigroupScalingDownPolicyDimensionArgs{
    					Name:  pulumi.String("string"),
    					Value: pulumi.String("string"),
    				},
    			},
    			Cooldown: pulumi.Int(0),
    		},
    	},
    	ScalingUpPolicies: gcp.ElastigroupScalingUpPolicyArray{
    		&gcp.ElastigroupScalingUpPolicyArgs{
    			PolicyName:        pulumi.String("string"),
    			MetricName:        pulumi.String("string"),
    			Unit:              pulumi.String("string"),
    			Threshold:         pulumi.Float64(0),
    			Namespace:         pulumi.String("string"),
    			EvaluationPeriods: pulumi.Int(0),
    			Adjustment:        pulumi.Int(0),
    			Operator:          pulumi.String("string"),
    			Source:            pulumi.String("string"),
    			ActionType:        pulumi.String("string"),
    			Period:            pulumi.Int(0),
    			Statistic:         pulumi.String("string"),
    			Dimensions: gcp.ElastigroupScalingUpPolicyDimensionArray{
    				&gcp.ElastigroupScalingUpPolicyDimensionArgs{
    					Name:  pulumi.String("string"),
    					Value: pulumi.String("string"),
    				},
    			},
    			Cooldown: pulumi.Int(0),
    		},
    	},
    	ScheduledTasks: gcp.ElastigroupScheduledTaskArray{
    		&gcp.ElastigroupScheduledTaskArgs{
    			TaskType:       pulumi.String("string"),
    			CronExpression: pulumi.String("string"),
    			IsEnabled:      pulumi.Bool(false),
    			MaxCapacity:    pulumi.String("string"),
    			MinCapacity:    pulumi.String("string"),
    			TargetCapacity: pulumi.String("string"),
    		},
    	},
    	ServiceAccount: pulumi.String("string"),
    	ShutdownScript: pulumi.String("string"),
    	StartupScript:  pulumi.String("string"),
    	Subnets: gcp.ElastigroupSubnetArray{
    		&gcp.ElastigroupSubnetArgs{
    			Region: pulumi.String("string"),
    			SubnetNames: pulumi.StringArray{
    				pulumi.String("string"),
    			},
    		},
    	},
    	IpForwarding:      pulumi.Bool(false),
    	UnhealthyDuration: pulumi.Int(0),
    })
    
    var exampleelastigroupResourceResourceFromGcpelastigroup = new Elastigroup("exampleelastigroupResourceResourceFromGcpelastigroup", ElastigroupArgs.builder()        
        .desiredCapacity(0)
        .labels(ElastigroupLabelArgs.builder()
            .key("string")
            .value("string")
            .build())
        .description("string")
        .autoHealing(false)
        .disks(ElastigroupDiskArgs.builder()
            .autoDelete(false)
            .boot(false)
            .deviceName("string")
            .initializeParams(ElastigroupDiskInitializeParamArgs.builder()
                .sourceImage("string")
                .diskSizeGb("string")
                .diskType("string")
                .build())
            .interface_("string")
            .mode("string")
            .source("string")
            .type("string")
            .build())
        .maxSize(0)
        .fallbackToOndemand(false)
        .gpu(ElastigroupGpuArgs.builder()
            .count(0)
            .type("string")
            .build())
        .healthCheckGracePeriod(0)
        .healthCheckType("string")
        .instanceNamePrefix("string")
        .instanceTypesCustoms(ElastigroupInstanceTypesCustomArgs.builder()
            .memoryGib(0)
            .vcpu(0)
            .build())
        .instanceTypesOndemand("string")
        .instanceTypesPreemptibles("string")
        .integrationDockerSwarm(ElastigroupIntegrationDockerSwarmArgs.builder()
            .masterHost("string")
            .masterPort(0)
            .build())
        .integrationGke(ElastigroupIntegrationGkeArgs.builder()
            .autoUpdate(false)
            .autoscaleCooldown(0)
            .autoscaleDown(ElastigroupIntegrationGkeAutoscaleDownArgs.builder()
                .evaluationPeriods(0)
                .build())
            .autoscaleHeadroom(ElastigroupIntegrationGkeAutoscaleHeadroomArgs.builder()
                .cpuPerUnit(0)
                .memoryPerUnit(0)
                .numOfUnits(0)
                .build())
            .autoscaleIsAutoConfig(false)
            .autoscaleIsEnabled(false)
            .autoscaleLabels(ElastigroupIntegrationGkeAutoscaleLabelArgs.builder()
                .key("string")
                .value("string")
                .build())
            .clusterId("string")
            .location("string")
            .build())
        .tags("string")
        .backendServices(ElastigroupBackendServiceArgs.builder()
            .serviceName("string")
            .locationType("string")
            .namedPorts(ElastigroupBackendServiceNamedPortArgs.builder()
                .name("string")
                .ports("string")
                .build())
            .scheme("string")
            .build())
        .drainingTimeout(0)
        .metadatas(ElastigroupMetadataArgs.builder()
            .key("string")
            .value("string")
            .build())
        .minSize(0)
        .name("string")
        .networkInterfaces(ElastigroupNetworkInterfaceArgs.builder()
            .network("string")
            .accessConfigs(ElastigroupNetworkInterfaceAccessConfigArgs.builder()
                .name("string")
                .type("string")
                .build())
            .aliasIpRanges(ElastigroupNetworkInterfaceAliasIpRangeArgs.builder()
                .ipCidrRange("string")
                .subnetworkRangeName("string")
                .build())
            .build())
        .ondemandCount(0)
        .preemptiblePercentage(0)
        .provisioningModel("string")
        .scalingDownPolicies(ElastigroupScalingDownPolicyArgs.builder()
            .policyName("string")
            .metricName("string")
            .unit("string")
            .threshold(0)
            .namespace("string")
            .evaluationPeriods(0)
            .adjustment(0)
            .operator("string")
            .source("string")
            .actionType("string")
            .period(0)
            .statistic("string")
            .dimensions(ElastigroupScalingDownPolicyDimensionArgs.builder()
                .name("string")
                .value("string")
                .build())
            .cooldown(0)
            .build())
        .scalingUpPolicies(ElastigroupScalingUpPolicyArgs.builder()
            .policyName("string")
            .metricName("string")
            .unit("string")
            .threshold(0)
            .namespace("string")
            .evaluationPeriods(0)
            .adjustment(0)
            .operator("string")
            .source("string")
            .actionType("string")
            .period(0)
            .statistic("string")
            .dimensions(ElastigroupScalingUpPolicyDimensionArgs.builder()
                .name("string")
                .value("string")
                .build())
            .cooldown(0)
            .build())
        .scheduledTasks(ElastigroupScheduledTaskArgs.builder()
            .taskType("string")
            .cronExpression("string")
            .isEnabled(false)
            .maxCapacity("string")
            .minCapacity("string")
            .targetCapacity("string")
            .build())
        .serviceAccount("string")
        .shutdownScript("string")
        .startupScript("string")
        .subnets(ElastigroupSubnetArgs.builder()
            .region("string")
            .subnetNames("string")
            .build())
        .ipForwarding(false)
        .unhealthyDuration(0)
        .build());
    
    exampleelastigroup_resource_resource_from_gcpelastigroup = spotinst.gcp.Elastigroup("exampleelastigroupResourceResourceFromGcpelastigroup",
        desired_capacity=0,
        labels=[spotinst.gcp.ElastigroupLabelArgs(
            key="string",
            value="string",
        )],
        description="string",
        auto_healing=False,
        disks=[spotinst.gcp.ElastigroupDiskArgs(
            auto_delete=False,
            boot=False,
            device_name="string",
            initialize_params=[spotinst.gcp.ElastigroupDiskInitializeParamArgs(
                source_image="string",
                disk_size_gb="string",
                disk_type="string",
            )],
            interface="string",
            mode="string",
            source="string",
            type="string",
        )],
        max_size=0,
        fallback_to_ondemand=False,
        gpu=[spotinst.gcp.ElastigroupGpuArgs(
            count=0,
            type="string",
        )],
        health_check_grace_period=0,
        health_check_type="string",
        instance_name_prefix="string",
        instance_types_customs=[spotinst.gcp.ElastigroupInstanceTypesCustomArgs(
            memory_gib=0,
            vcpu=0,
        )],
        instance_types_ondemand="string",
        instance_types_preemptibles=["string"],
        integration_docker_swarm=spotinst.gcp.ElastigroupIntegrationDockerSwarmArgs(
            master_host="string",
            master_port=0,
        ),
        integration_gke=spotinst.gcp.ElastigroupIntegrationGkeArgs(
            auto_update=False,
            autoscale_cooldown=0,
            autoscale_down=spotinst.gcp.ElastigroupIntegrationGkeAutoscaleDownArgs(
                evaluation_periods=0,
            ),
            autoscale_headroom=spotinst.gcp.ElastigroupIntegrationGkeAutoscaleHeadroomArgs(
                cpu_per_unit=0,
                memory_per_unit=0,
                num_of_units=0,
            ),
            autoscale_is_auto_config=False,
            autoscale_is_enabled=False,
            autoscale_labels=[spotinst.gcp.ElastigroupIntegrationGkeAutoscaleLabelArgs(
                key="string",
                value="string",
            )],
            cluster_id="string",
            location="string",
        ),
        tags=["string"],
        backend_services=[spotinst.gcp.ElastigroupBackendServiceArgs(
            service_name="string",
            location_type="string",
            named_ports=[spotinst.gcp.ElastigroupBackendServiceNamedPortArgs(
                name="string",
                ports=["string"],
            )],
            scheme="string",
        )],
        draining_timeout=0,
        metadatas=[spotinst.gcp.ElastigroupMetadataArgs(
            key="string",
            value="string",
        )],
        min_size=0,
        name="string",
        network_interfaces=[spotinst.gcp.ElastigroupNetworkInterfaceArgs(
            network="string",
            access_configs=[spotinst.gcp.ElastigroupNetworkInterfaceAccessConfigArgs(
                name="string",
                type="string",
            )],
            alias_ip_ranges=[spotinst.gcp.ElastigroupNetworkInterfaceAliasIpRangeArgs(
                ip_cidr_range="string",
                subnetwork_range_name="string",
            )],
        )],
        ondemand_count=0,
        preemptible_percentage=0,
        provisioning_model="string",
        scaling_down_policies=[spotinst.gcp.ElastigroupScalingDownPolicyArgs(
            policy_name="string",
            metric_name="string",
            unit="string",
            threshold=0,
            namespace="string",
            evaluation_periods=0,
            adjustment=0,
            operator="string",
            source="string",
            action_type="string",
            period=0,
            statistic="string",
            dimensions=[spotinst.gcp.ElastigroupScalingDownPolicyDimensionArgs(
                name="string",
                value="string",
            )],
            cooldown=0,
        )],
        scaling_up_policies=[spotinst.gcp.ElastigroupScalingUpPolicyArgs(
            policy_name="string",
            metric_name="string",
            unit="string",
            threshold=0,
            namespace="string",
            evaluation_periods=0,
            adjustment=0,
            operator="string",
            source="string",
            action_type="string",
            period=0,
            statistic="string",
            dimensions=[spotinst.gcp.ElastigroupScalingUpPolicyDimensionArgs(
                name="string",
                value="string",
            )],
            cooldown=0,
        )],
        scheduled_tasks=[spotinst.gcp.ElastigroupScheduledTaskArgs(
            task_type="string",
            cron_expression="string",
            is_enabled=False,
            max_capacity="string",
            min_capacity="string",
            target_capacity="string",
        )],
        service_account="string",
        shutdown_script="string",
        startup_script="string",
        subnets=[spotinst.gcp.ElastigroupSubnetArgs(
            region="string",
            subnet_names=["string"],
        )],
        ip_forwarding=False,
        unhealthy_duration=0)
    
    const exampleelastigroupResourceResourceFromGcpelastigroup = new spotinst.gcp.Elastigroup("exampleelastigroupResourceResourceFromGcpelastigroup", {
        desiredCapacity: 0,
        labels: [{
            key: "string",
            value: "string",
        }],
        description: "string",
        autoHealing: false,
        disks: [{
            autoDelete: false,
            boot: false,
            deviceName: "string",
            initializeParams: [{
                sourceImage: "string",
                diskSizeGb: "string",
                diskType: "string",
            }],
            "interface": "string",
            mode: "string",
            source: "string",
            type: "string",
        }],
        maxSize: 0,
        fallbackToOndemand: false,
        gpu: [{
            count: 0,
            type: "string",
        }],
        healthCheckGracePeriod: 0,
        healthCheckType: "string",
        instanceNamePrefix: "string",
        instanceTypesCustoms: [{
            memoryGib: 0,
            vcpu: 0,
        }],
        instanceTypesOndemand: "string",
        instanceTypesPreemptibles: ["string"],
        integrationDockerSwarm: {
            masterHost: "string",
            masterPort: 0,
        },
        integrationGke: {
            autoUpdate: false,
            autoscaleCooldown: 0,
            autoscaleDown: {
                evaluationPeriods: 0,
            },
            autoscaleHeadroom: {
                cpuPerUnit: 0,
                memoryPerUnit: 0,
                numOfUnits: 0,
            },
            autoscaleIsAutoConfig: false,
            autoscaleIsEnabled: false,
            autoscaleLabels: [{
                key: "string",
                value: "string",
            }],
            clusterId: "string",
            location: "string",
        },
        tags: ["string"],
        backendServices: [{
            serviceName: "string",
            locationType: "string",
            namedPorts: [{
                name: "string",
                ports: ["string"],
            }],
            scheme: "string",
        }],
        drainingTimeout: 0,
        metadatas: [{
            key: "string",
            value: "string",
        }],
        minSize: 0,
        name: "string",
        networkInterfaces: [{
            network: "string",
            accessConfigs: [{
                name: "string",
                type: "string",
            }],
            aliasIpRanges: [{
                ipCidrRange: "string",
                subnetworkRangeName: "string",
            }],
        }],
        ondemandCount: 0,
        preemptiblePercentage: 0,
        provisioningModel: "string",
        scalingDownPolicies: [{
            policyName: "string",
            metricName: "string",
            unit: "string",
            threshold: 0,
            namespace: "string",
            evaluationPeriods: 0,
            adjustment: 0,
            operator: "string",
            source: "string",
            actionType: "string",
            period: 0,
            statistic: "string",
            dimensions: [{
                name: "string",
                value: "string",
            }],
            cooldown: 0,
        }],
        scalingUpPolicies: [{
            policyName: "string",
            metricName: "string",
            unit: "string",
            threshold: 0,
            namespace: "string",
            evaluationPeriods: 0,
            adjustment: 0,
            operator: "string",
            source: "string",
            actionType: "string",
            period: 0,
            statistic: "string",
            dimensions: [{
                name: "string",
                value: "string",
            }],
            cooldown: 0,
        }],
        scheduledTasks: [{
            taskType: "string",
            cronExpression: "string",
            isEnabled: false,
            maxCapacity: "string",
            minCapacity: "string",
            targetCapacity: "string",
        }],
        serviceAccount: "string",
        shutdownScript: "string",
        startupScript: "string",
        subnets: [{
            region: "string",
            subnetNames: ["string"],
        }],
        ipForwarding: false,
        unhealthyDuration: 0,
    });
    
    type: spotinst:gcp:Elastigroup
    properties:
        autoHealing: false
        backendServices:
            - locationType: string
              namedPorts:
                - name: string
                  ports:
                    - string
              scheme: string
              serviceName: string
        description: string
        desiredCapacity: 0
        disks:
            - autoDelete: false
              boot: false
              deviceName: string
              initializeParams:
                - diskSizeGb: string
                  diskType: string
                  sourceImage: string
              interface: string
              mode: string
              source: string
              type: string
        drainingTimeout: 0
        fallbackToOndemand: false
        gpu:
            - count: 0
              type: string
        healthCheckGracePeriod: 0
        healthCheckType: string
        instanceNamePrefix: string
        instanceTypesCustoms:
            - memoryGib: 0
              vcpu: 0
        instanceTypesOndemand: string
        instanceTypesPreemptibles:
            - string
        integrationDockerSwarm:
            masterHost: string
            masterPort: 0
        integrationGke:
            autoUpdate: false
            autoscaleCooldown: 0
            autoscaleDown:
                evaluationPeriods: 0
            autoscaleHeadroom:
                cpuPerUnit: 0
                memoryPerUnit: 0
                numOfUnits: 0
            autoscaleIsAutoConfig: false
            autoscaleIsEnabled: false
            autoscaleLabels:
                - key: string
                  value: string
            clusterId: string
            location: string
        ipForwarding: false
        labels:
            - key: string
              value: string
        maxSize: 0
        metadatas:
            - key: string
              value: string
        minSize: 0
        name: string
        networkInterfaces:
            - accessConfigs:
                - name: string
                  type: string
              aliasIpRanges:
                - ipCidrRange: string
                  subnetworkRangeName: string
              network: string
        ondemandCount: 0
        preemptiblePercentage: 0
        provisioningModel: string
        scalingDownPolicies:
            - actionType: string
              adjustment: 0
              cooldown: 0
              dimensions:
                - name: string
                  value: string
              evaluationPeriods: 0
              metricName: string
              namespace: string
              operator: string
              period: 0
              policyName: string
              source: string
              statistic: string
              threshold: 0
              unit: string
        scalingUpPolicies:
            - actionType: string
              adjustment: 0
              cooldown: 0
              dimensions:
                - name: string
                  value: string
              evaluationPeriods: 0
              metricName: string
              namespace: string
              operator: string
              period: 0
              policyName: string
              source: string
              statistic: string
              threshold: 0
              unit: string
        scheduledTasks:
            - cronExpression: string
              isEnabled: false
              maxCapacity: string
              minCapacity: string
              targetCapacity: string
              taskType: string
        serviceAccount: string
        shutdownScript: string
        startupScript: string
        subnets:
            - region: string
              subnetNames:
                - string
        tags:
            - string
        unhealthyDuration: 0
    

    Elastigroup Resource Properties

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

    Inputs

    The Elastigroup resource accepts the following input properties:

    DesiredCapacity int
    The desired number of instances the group should have at any time.
    AutoHealing bool
    Enable auto-replacement of unhealthy instances.
    AvailabilityZones List<string>
    List of availability zones for the group.

    Deprecated: This field will soon be handled by Region in Subnets

    BackendServices List<Pulumi.SpotInst.Gcp.Inputs.ElastigroupBackendService>
    Describes the backend service configurations.
    Description string
    The region your GCP group will be created in.
    Disks List<Pulumi.SpotInst.Gcp.Inputs.ElastigroupDisk>
    DrainingTimeout int
    Time (seconds) the instance is allowed to run after it is detached from the group. This is to allow the instance time to drain all the current TCP connections before terminating it.
    FallbackToOndemand bool
    Activate fallback-to-on-demand. When provisioning an instance, if no Preemptible market is available, fallback-to-on-demand will provision an On-Demand instance to maintain the group capacity.
    Gpu List<Pulumi.SpotInst.Gcp.Inputs.ElastigroupGpu>
    Defines the GPU configuration.
    HealthCheckGracePeriod int
    Period of time (seconds) to wait for VM to reach healthiness before monitoring for unhealthiness.
    HealthCheckType string
    The kind of health check to perform when monitoring for unhealthiness.
    InstanceNamePrefix string
    Set an instance name prefix to be used for all launched instances and their boot disk. The prefix value should comply with the following limitations:

    • A maximal length of 25 characters.
    • The first character must be a lowercase letter, and all the following characters must be hyphens, lowercase letters, or digits, except the last character, which cannot be a hyphen.
    InstanceTypesCustoms List<Pulumi.SpotInst.Gcp.Inputs.ElastigroupInstanceTypesCustom>
    Defines a set of custom instance types. Required if instance_types_preemptible and instance_types_ondemand are not set.
    InstanceTypesOndemand string
    The regular VM instance type to use for mixed-type groups and when falling back to on-demand. Required if instance_types_preemptible is not set.
    InstanceTypesPreemptibles List<string>
    The preemptible VMs instance type. To maximize cost savings and market availability, select as many types as possible. Required if instance_types_ondemand is not set.
    IntegrationDockerSwarm Pulumi.SpotInst.Gcp.Inputs.ElastigroupIntegrationDockerSwarm
    Describes the Docker Swarm integration.
    IntegrationGke Pulumi.SpotInst.Gcp.Inputs.ElastigroupIntegrationGke
    IpForwarding bool
    Labels List<Pulumi.SpotInst.Gcp.Inputs.ElastigroupLabel>
    Array of objects with key-value pairs.
    MaxSize int
    The maximum number of instances the group should have at any time.
    Metadatas List<Pulumi.SpotInst.Gcp.Inputs.ElastigroupMetadata>
    Array of objects with key-value pairs.
    MinSize int
    The minimum number of instances the group should have at any time.
    Name string
    The group name.
    NetworkInterfaces List<Pulumi.SpotInst.Gcp.Inputs.ElastigroupNetworkInterface>
    Array of objects representing the network configuration for the elastigroup.
    OndemandCount int
    PreemptiblePercentage int
    Percentage of Preemptible VMs to spin up from the "desired_capacity".
    ProvisioningModel string
    Valid values: "SPOT", "PREEMPTIBLE". Define the provisioning model of the launched instances. Default value is "PREEMPTIBLE".
    ScalingDownPolicies List<Pulumi.SpotInst.Gcp.Inputs.ElastigroupScalingDownPolicy>

    Contains scaling policies for scaling the Elastigroup down.

    Each scaling_*_policy supports the following:

    ScalingUpPolicies List<Pulumi.SpotInst.Gcp.Inputs.ElastigroupScalingUpPolicy>
    Contains scaling policies for scaling the Elastigroup up.
    ScheduledTasks List<Pulumi.SpotInst.Gcp.Inputs.ElastigroupScheduledTask>
    ServiceAccount string
    The email of the service account in which the group instances will be launched.
    ShutdownScript string
    The Base64-encoded shutdown script that executes prior to instance termination, for more information please see: Shutdown Script
    StartupScript string
    Create and run your own startup scripts on your virtual machines to perform automated tasks every time your instance boots up.
    Subnets List<Pulumi.SpotInst.Gcp.Inputs.ElastigroupSubnet>
    A list of regions and subnets.
    Tags List<string>
    Tags to mark created instances.
    UnhealthyDuration int
    Period of time (seconds) to remain in an unhealthy status before a replacement is triggered.
    DesiredCapacity int
    The desired number of instances the group should have at any time.
    AutoHealing bool
    Enable auto-replacement of unhealthy instances.
    AvailabilityZones []string
    List of availability zones for the group.

    Deprecated: This field will soon be handled by Region in Subnets

    BackendServices []ElastigroupBackendServiceArgs
    Describes the backend service configurations.
    Description string
    The region your GCP group will be created in.
    Disks []ElastigroupDiskArgs
    DrainingTimeout int
    Time (seconds) the instance is allowed to run after it is detached from the group. This is to allow the instance time to drain all the current TCP connections before terminating it.
    FallbackToOndemand bool
    Activate fallback-to-on-demand. When provisioning an instance, if no Preemptible market is available, fallback-to-on-demand will provision an On-Demand instance to maintain the group capacity.
    Gpu []ElastigroupGpuArgs
    Defines the GPU configuration.
    HealthCheckGracePeriod int
    Period of time (seconds) to wait for VM to reach healthiness before monitoring for unhealthiness.
    HealthCheckType string
    The kind of health check to perform when monitoring for unhealthiness.
    InstanceNamePrefix string
    Set an instance name prefix to be used for all launched instances and their boot disk. The prefix value should comply with the following limitations:

    • A maximal length of 25 characters.
    • The first character must be a lowercase letter, and all the following characters must be hyphens, lowercase letters, or digits, except the last character, which cannot be a hyphen.
    InstanceTypesCustoms []ElastigroupInstanceTypesCustomArgs
    Defines a set of custom instance types. Required if instance_types_preemptible and instance_types_ondemand are not set.
    InstanceTypesOndemand string
    The regular VM instance type to use for mixed-type groups and when falling back to on-demand. Required if instance_types_preemptible is not set.
    InstanceTypesPreemptibles []string
    The preemptible VMs instance type. To maximize cost savings and market availability, select as many types as possible. Required if instance_types_ondemand is not set.
    IntegrationDockerSwarm ElastigroupIntegrationDockerSwarmArgs
    Describes the Docker Swarm integration.
    IntegrationGke ElastigroupIntegrationGkeArgs
    IpForwarding bool
    Labels []ElastigroupLabelArgs
    Array of objects with key-value pairs.
    MaxSize int
    The maximum number of instances the group should have at any time.
    Metadatas []ElastigroupMetadataArgs
    Array of objects with key-value pairs.
    MinSize int
    The minimum number of instances the group should have at any time.
    Name string
    The group name.
    NetworkInterfaces []ElastigroupNetworkInterfaceArgs
    Array of objects representing the network configuration for the elastigroup.
    OndemandCount int
    PreemptiblePercentage int
    Percentage of Preemptible VMs to spin up from the "desired_capacity".
    ProvisioningModel string
    Valid values: "SPOT", "PREEMPTIBLE". Define the provisioning model of the launched instances. Default value is "PREEMPTIBLE".
    ScalingDownPolicies []ElastigroupScalingDownPolicyArgs

    Contains scaling policies for scaling the Elastigroup down.

    Each scaling_*_policy supports the following:

    ScalingUpPolicies []ElastigroupScalingUpPolicyArgs
    Contains scaling policies for scaling the Elastigroup up.
    ScheduledTasks []ElastigroupScheduledTaskArgs
    ServiceAccount string
    The email of the service account in which the group instances will be launched.
    ShutdownScript string
    The Base64-encoded shutdown script that executes prior to instance termination, for more information please see: Shutdown Script
    StartupScript string
    Create and run your own startup scripts on your virtual machines to perform automated tasks every time your instance boots up.
    Subnets []ElastigroupSubnetArgs
    A list of regions and subnets.
    Tags []string
    Tags to mark created instances.
    UnhealthyDuration int
    Period of time (seconds) to remain in an unhealthy status before a replacement is triggered.
    desiredCapacity Integer
    The desired number of instances the group should have at any time.
    autoHealing Boolean
    Enable auto-replacement of unhealthy instances.
    availabilityZones List<String>
    List of availability zones for the group.

    Deprecated: This field will soon be handled by Region in Subnets

    backendServices List<ElastigroupBackendService>
    Describes the backend service configurations.
    description String
    The region your GCP group will be created in.
    disks List<ElastigroupDisk>
    drainingTimeout Integer
    Time (seconds) the instance is allowed to run after it is detached from the group. This is to allow the instance time to drain all the current TCP connections before terminating it.
    fallbackToOndemand Boolean
    Activate fallback-to-on-demand. When provisioning an instance, if no Preemptible market is available, fallback-to-on-demand will provision an On-Demand instance to maintain the group capacity.
    gpu List<ElastigroupGpu>
    Defines the GPU configuration.
    healthCheckGracePeriod Integer
    Period of time (seconds) to wait for VM to reach healthiness before monitoring for unhealthiness.
    healthCheckType String
    The kind of health check to perform when monitoring for unhealthiness.
    instanceNamePrefix String
    Set an instance name prefix to be used for all launched instances and their boot disk. The prefix value should comply with the following limitations:

    • A maximal length of 25 characters.
    • The first character must be a lowercase letter, and all the following characters must be hyphens, lowercase letters, or digits, except the last character, which cannot be a hyphen.
    instanceTypesCustoms List<ElastigroupInstanceTypesCustom>
    Defines a set of custom instance types. Required if instance_types_preemptible and instance_types_ondemand are not set.
    instanceTypesOndemand String
    The regular VM instance type to use for mixed-type groups and when falling back to on-demand. Required if instance_types_preemptible is not set.
    instanceTypesPreemptibles List<String>
    The preemptible VMs instance type. To maximize cost savings and market availability, select as many types as possible. Required if instance_types_ondemand is not set.
    integrationDockerSwarm ElastigroupIntegrationDockerSwarm
    Describes the Docker Swarm integration.
    integrationGke ElastigroupIntegrationGke
    ipForwarding Boolean
    labels List<ElastigroupLabel>
    Array of objects with key-value pairs.
    maxSize Integer
    The maximum number of instances the group should have at any time.
    metadatas List<ElastigroupMetadata>
    Array of objects with key-value pairs.
    minSize Integer
    The minimum number of instances the group should have at any time.
    name String
    The group name.
    networkInterfaces List<ElastigroupNetworkInterface>
    Array of objects representing the network configuration for the elastigroup.
    ondemandCount Integer
    preemptiblePercentage Integer
    Percentage of Preemptible VMs to spin up from the "desired_capacity".
    provisioningModel String
    Valid values: "SPOT", "PREEMPTIBLE". Define the provisioning model of the launched instances. Default value is "PREEMPTIBLE".
    scalingDownPolicies List<ElastigroupScalingDownPolicy>

    Contains scaling policies for scaling the Elastigroup down.

    Each scaling_*_policy supports the following:

    scalingUpPolicies List<ElastigroupScalingUpPolicy>
    Contains scaling policies for scaling the Elastigroup up.
    scheduledTasks List<ElastigroupScheduledTask>
    serviceAccount String
    The email of the service account in which the group instances will be launched.
    shutdownScript String
    The Base64-encoded shutdown script that executes prior to instance termination, for more information please see: Shutdown Script
    startupScript String
    Create and run your own startup scripts on your virtual machines to perform automated tasks every time your instance boots up.
    subnets List<ElastigroupSubnet>
    A list of regions and subnets.
    tags List<String>
    Tags to mark created instances.
    unhealthyDuration Integer
    Period of time (seconds) to remain in an unhealthy status before a replacement is triggered.
    desiredCapacity number
    The desired number of instances the group should have at any time.
    autoHealing boolean
    Enable auto-replacement of unhealthy instances.
    availabilityZones string[]
    List of availability zones for the group.

    Deprecated: This field will soon be handled by Region in Subnets

    backendServices ElastigroupBackendService[]
    Describes the backend service configurations.
    description string
    The region your GCP group will be created in.
    disks ElastigroupDisk[]
    drainingTimeout number
    Time (seconds) the instance is allowed to run after it is detached from the group. This is to allow the instance time to drain all the current TCP connections before terminating it.
    fallbackToOndemand boolean
    Activate fallback-to-on-demand. When provisioning an instance, if no Preemptible market is available, fallback-to-on-demand will provision an On-Demand instance to maintain the group capacity.
    gpu ElastigroupGpu[]
    Defines the GPU configuration.
    healthCheckGracePeriod number
    Period of time (seconds) to wait for VM to reach healthiness before monitoring for unhealthiness.
    healthCheckType string
    The kind of health check to perform when monitoring for unhealthiness.
    instanceNamePrefix string
    Set an instance name prefix to be used for all launched instances and their boot disk. The prefix value should comply with the following limitations:

    • A maximal length of 25 characters.
    • The first character must be a lowercase letter, and all the following characters must be hyphens, lowercase letters, or digits, except the last character, which cannot be a hyphen.
    instanceTypesCustoms ElastigroupInstanceTypesCustom[]
    Defines a set of custom instance types. Required if instance_types_preemptible and instance_types_ondemand are not set.
    instanceTypesOndemand string
    The regular VM instance type to use for mixed-type groups and when falling back to on-demand. Required if instance_types_preemptible is not set.
    instanceTypesPreemptibles string[]
    The preemptible VMs instance type. To maximize cost savings and market availability, select as many types as possible. Required if instance_types_ondemand is not set.
    integrationDockerSwarm ElastigroupIntegrationDockerSwarm
    Describes the Docker Swarm integration.
    integrationGke ElastigroupIntegrationGke
    ipForwarding boolean
    labels ElastigroupLabel[]
    Array of objects with key-value pairs.
    maxSize number
    The maximum number of instances the group should have at any time.
    metadatas ElastigroupMetadata[]
    Array of objects with key-value pairs.
    minSize number
    The minimum number of instances the group should have at any time.
    name string
    The group name.
    networkInterfaces ElastigroupNetworkInterface[]
    Array of objects representing the network configuration for the elastigroup.
    ondemandCount number
    preemptiblePercentage number
    Percentage of Preemptible VMs to spin up from the "desired_capacity".
    provisioningModel string
    Valid values: "SPOT", "PREEMPTIBLE". Define the provisioning model of the launched instances. Default value is "PREEMPTIBLE".
    scalingDownPolicies ElastigroupScalingDownPolicy[]

    Contains scaling policies for scaling the Elastigroup down.

    Each scaling_*_policy supports the following:

    scalingUpPolicies ElastigroupScalingUpPolicy[]
    Contains scaling policies for scaling the Elastigroup up.
    scheduledTasks ElastigroupScheduledTask[]
    serviceAccount string
    The email of the service account in which the group instances will be launched.
    shutdownScript string
    The Base64-encoded shutdown script that executes prior to instance termination, for more information please see: Shutdown Script
    startupScript string
    Create and run your own startup scripts on your virtual machines to perform automated tasks every time your instance boots up.
    subnets ElastigroupSubnet[]
    A list of regions and subnets.
    tags string[]
    Tags to mark created instances.
    unhealthyDuration number
    Period of time (seconds) to remain in an unhealthy status before a replacement is triggered.
    desired_capacity int
    The desired number of instances the group should have at any time.
    auto_healing bool
    Enable auto-replacement of unhealthy instances.
    availability_zones Sequence[str]
    List of availability zones for the group.

    Deprecated: This field will soon be handled by Region in Subnets

    backend_services Sequence[ElastigroupBackendServiceArgs]
    Describes the backend service configurations.
    description str
    The region your GCP group will be created in.
    disks Sequence[ElastigroupDiskArgs]
    draining_timeout int
    Time (seconds) the instance is allowed to run after it is detached from the group. This is to allow the instance time to drain all the current TCP connections before terminating it.
    fallback_to_ondemand bool
    Activate fallback-to-on-demand. When provisioning an instance, if no Preemptible market is available, fallback-to-on-demand will provision an On-Demand instance to maintain the group capacity.
    gpu Sequence[ElastigroupGpuArgs]
    Defines the GPU configuration.
    health_check_grace_period int
    Period of time (seconds) to wait for VM to reach healthiness before monitoring for unhealthiness.
    health_check_type str
    The kind of health check to perform when monitoring for unhealthiness.
    instance_name_prefix str
    Set an instance name prefix to be used for all launched instances and their boot disk. The prefix value should comply with the following limitations:

    • A maximal length of 25 characters.
    • The first character must be a lowercase letter, and all the following characters must be hyphens, lowercase letters, or digits, except the last character, which cannot be a hyphen.
    instance_types_customs Sequence[ElastigroupInstanceTypesCustomArgs]
    Defines a set of custom instance types. Required if instance_types_preemptible and instance_types_ondemand are not set.
    instance_types_ondemand str
    The regular VM instance type to use for mixed-type groups and when falling back to on-demand. Required if instance_types_preemptible is not set.
    instance_types_preemptibles Sequence[str]
    The preemptible VMs instance type. To maximize cost savings and market availability, select as many types as possible. Required if instance_types_ondemand is not set.
    integration_docker_swarm ElastigroupIntegrationDockerSwarmArgs
    Describes the Docker Swarm integration.
    integration_gke ElastigroupIntegrationGkeArgs
    ip_forwarding bool
    labels Sequence[ElastigroupLabelArgs]
    Array of objects with key-value pairs.
    max_size int
    The maximum number of instances the group should have at any time.
    metadatas Sequence[ElastigroupMetadataArgs]
    Array of objects with key-value pairs.
    min_size int
    The minimum number of instances the group should have at any time.
    name str
    The group name.
    network_interfaces Sequence[ElastigroupNetworkInterfaceArgs]
    Array of objects representing the network configuration for the elastigroup.
    ondemand_count int
    preemptible_percentage int
    Percentage of Preemptible VMs to spin up from the "desired_capacity".
    provisioning_model str
    Valid values: "SPOT", "PREEMPTIBLE". Define the provisioning model of the launched instances. Default value is "PREEMPTIBLE".
    scaling_down_policies Sequence[ElastigroupScalingDownPolicyArgs]

    Contains scaling policies for scaling the Elastigroup down.

    Each scaling_*_policy supports the following:

    scaling_up_policies Sequence[ElastigroupScalingUpPolicyArgs]
    Contains scaling policies for scaling the Elastigroup up.
    scheduled_tasks Sequence[ElastigroupScheduledTaskArgs]
    service_account str
    The email of the service account in which the group instances will be launched.
    shutdown_script str
    The Base64-encoded shutdown script that executes prior to instance termination, for more information please see: Shutdown Script
    startup_script str
    Create and run your own startup scripts on your virtual machines to perform automated tasks every time your instance boots up.
    subnets Sequence[ElastigroupSubnetArgs]
    A list of regions and subnets.
    tags Sequence[str]
    Tags to mark created instances.
    unhealthy_duration int
    Period of time (seconds) to remain in an unhealthy status before a replacement is triggered.
    desiredCapacity Number
    The desired number of instances the group should have at any time.
    autoHealing Boolean
    Enable auto-replacement of unhealthy instances.
    availabilityZones List<String>
    List of availability zones for the group.

    Deprecated: This field will soon be handled by Region in Subnets

    backendServices List<Property Map>
    Describes the backend service configurations.
    description String
    The region your GCP group will be created in.
    disks List<Property Map>
    drainingTimeout Number
    Time (seconds) the instance is allowed to run after it is detached from the group. This is to allow the instance time to drain all the current TCP connections before terminating it.
    fallbackToOndemand Boolean
    Activate fallback-to-on-demand. When provisioning an instance, if no Preemptible market is available, fallback-to-on-demand will provision an On-Demand instance to maintain the group capacity.
    gpu List<Property Map>
    Defines the GPU configuration.
    healthCheckGracePeriod Number
    Period of time (seconds) to wait for VM to reach healthiness before monitoring for unhealthiness.
    healthCheckType String
    The kind of health check to perform when monitoring for unhealthiness.
    instanceNamePrefix String
    Set an instance name prefix to be used for all launched instances and their boot disk. The prefix value should comply with the following limitations:

    • A maximal length of 25 characters.
    • The first character must be a lowercase letter, and all the following characters must be hyphens, lowercase letters, or digits, except the last character, which cannot be a hyphen.
    instanceTypesCustoms List<Property Map>
    Defines a set of custom instance types. Required if instance_types_preemptible and instance_types_ondemand are not set.
    instanceTypesOndemand String
    The regular VM instance type to use for mixed-type groups and when falling back to on-demand. Required if instance_types_preemptible is not set.
    instanceTypesPreemptibles List<String>
    The preemptible VMs instance type. To maximize cost savings and market availability, select as many types as possible. Required if instance_types_ondemand is not set.
    integrationDockerSwarm Property Map
    Describes the Docker Swarm integration.
    integrationGke Property Map
    ipForwarding Boolean
    labels List<Property Map>
    Array of objects with key-value pairs.
    maxSize Number
    The maximum number of instances the group should have at any time.
    metadatas List<Property Map>
    Array of objects with key-value pairs.
    minSize Number
    The minimum number of instances the group should have at any time.
    name String
    The group name.
    networkInterfaces List<Property Map>
    Array of objects representing the network configuration for the elastigroup.
    ondemandCount Number
    preemptiblePercentage Number
    Percentage of Preemptible VMs to spin up from the "desired_capacity".
    provisioningModel String
    Valid values: "SPOT", "PREEMPTIBLE". Define the provisioning model of the launched instances. Default value is "PREEMPTIBLE".
    scalingDownPolicies List<Property Map>

    Contains scaling policies for scaling the Elastigroup down.

    Each scaling_*_policy supports the following:

    scalingUpPolicies List<Property Map>
    Contains scaling policies for scaling the Elastigroup up.
    scheduledTasks List<Property Map>
    serviceAccount String
    The email of the service account in which the group instances will be launched.
    shutdownScript String
    The Base64-encoded shutdown script that executes prior to instance termination, for more information please see: Shutdown Script
    startupScript String
    Create and run your own startup scripts on your virtual machines to perform automated tasks every time your instance boots up.
    subnets List<Property Map>
    A list of regions and subnets.
    tags List<String>
    Tags to mark created instances.
    unhealthyDuration Number
    Period of time (seconds) to remain in an unhealthy status before a replacement is triggered.

    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,
            backend_services: Optional[Sequence[ElastigroupBackendServiceArgs]] = None,
            description: Optional[str] = None,
            desired_capacity: Optional[int] = None,
            disks: Optional[Sequence[ElastigroupDiskArgs]] = None,
            draining_timeout: Optional[int] = None,
            fallback_to_ondemand: Optional[bool] = None,
            gpu: Optional[Sequence[ElastigroupGpuArgs]] = None,
            health_check_grace_period: Optional[int] = None,
            health_check_type: Optional[str] = None,
            instance_name_prefix: Optional[str] = None,
            instance_types_customs: Optional[Sequence[ElastigroupInstanceTypesCustomArgs]] = None,
            instance_types_ondemand: Optional[str] = None,
            instance_types_preemptibles: Optional[Sequence[str]] = None,
            integration_docker_swarm: Optional[ElastigroupIntegrationDockerSwarmArgs] = None,
            integration_gke: Optional[ElastigroupIntegrationGkeArgs] = None,
            ip_forwarding: Optional[bool] = None,
            labels: Optional[Sequence[ElastigroupLabelArgs]] = None,
            max_size: Optional[int] = None,
            metadatas: Optional[Sequence[ElastigroupMetadataArgs]] = None,
            min_size: Optional[int] = None,
            name: Optional[str] = None,
            network_interfaces: Optional[Sequence[ElastigroupNetworkInterfaceArgs]] = None,
            ondemand_count: Optional[int] = None,
            preemptible_percentage: Optional[int] = None,
            provisioning_model: Optional[str] = None,
            scaling_down_policies: Optional[Sequence[ElastigroupScalingDownPolicyArgs]] = None,
            scaling_up_policies: Optional[Sequence[ElastigroupScalingUpPolicyArgs]] = None,
            scheduled_tasks: Optional[Sequence[ElastigroupScheduledTaskArgs]] = None,
            service_account: Optional[str] = None,
            shutdown_script: Optional[str] = None,
            startup_script: Optional[str] = None,
            subnets: Optional[Sequence[ElastigroupSubnetArgs]] = None,
            tags: Optional[Sequence[str]] = None,
            unhealthy_duration: 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
    Enable auto-replacement of unhealthy instances.
    AvailabilityZones List<string>
    List of availability zones for the group.

    Deprecated: This field will soon be handled by Region in Subnets

    BackendServices List<Pulumi.SpotInst.Gcp.Inputs.ElastigroupBackendService>
    Describes the backend service configurations.
    Description string
    The region your GCP group will be created in.
    DesiredCapacity int
    The desired number of instances the group should have at any time.
    Disks List<Pulumi.SpotInst.Gcp.Inputs.ElastigroupDisk>
    DrainingTimeout int
    Time (seconds) the instance is allowed to run after it is detached from the group. This is to allow the instance time to drain all the current TCP connections before terminating it.
    FallbackToOndemand bool
    Activate fallback-to-on-demand. When provisioning an instance, if no Preemptible market is available, fallback-to-on-demand will provision an On-Demand instance to maintain the group capacity.
    Gpu List<Pulumi.SpotInst.Gcp.Inputs.ElastigroupGpu>
    Defines the GPU configuration.
    HealthCheckGracePeriod int
    Period of time (seconds) to wait for VM to reach healthiness before monitoring for unhealthiness.
    HealthCheckType string
    The kind of health check to perform when monitoring for unhealthiness.
    InstanceNamePrefix string
    Set an instance name prefix to be used for all launched instances and their boot disk. The prefix value should comply with the following limitations:

    • A maximal length of 25 characters.
    • The first character must be a lowercase letter, and all the following characters must be hyphens, lowercase letters, or digits, except the last character, which cannot be a hyphen.
    InstanceTypesCustoms List<Pulumi.SpotInst.Gcp.Inputs.ElastigroupInstanceTypesCustom>
    Defines a set of custom instance types. Required if instance_types_preemptible and instance_types_ondemand are not set.
    InstanceTypesOndemand string
    The regular VM instance type to use for mixed-type groups and when falling back to on-demand. Required if instance_types_preemptible is not set.
    InstanceTypesPreemptibles List<string>
    The preemptible VMs instance type. To maximize cost savings and market availability, select as many types as possible. Required if instance_types_ondemand is not set.
    IntegrationDockerSwarm Pulumi.SpotInst.Gcp.Inputs.ElastigroupIntegrationDockerSwarm
    Describes the Docker Swarm integration.
    IntegrationGke Pulumi.SpotInst.Gcp.Inputs.ElastigroupIntegrationGke
    IpForwarding bool
    Labels List<Pulumi.SpotInst.Gcp.Inputs.ElastigroupLabel>
    Array of objects with key-value pairs.
    MaxSize int
    The maximum number of instances the group should have at any time.
    Metadatas List<Pulumi.SpotInst.Gcp.Inputs.ElastigroupMetadata>
    Array of objects with key-value pairs.
    MinSize int
    The minimum number of instances the group should have at any time.
    Name string
    The group name.
    NetworkInterfaces List<Pulumi.SpotInst.Gcp.Inputs.ElastigroupNetworkInterface>
    Array of objects representing the network configuration for the elastigroup.
    OndemandCount int
    PreemptiblePercentage int
    Percentage of Preemptible VMs to spin up from the "desired_capacity".
    ProvisioningModel string
    Valid values: "SPOT", "PREEMPTIBLE". Define the provisioning model of the launched instances. Default value is "PREEMPTIBLE".
    ScalingDownPolicies List<Pulumi.SpotInst.Gcp.Inputs.ElastigroupScalingDownPolicy>

    Contains scaling policies for scaling the Elastigroup down.

    Each scaling_*_policy supports the following:

    ScalingUpPolicies List<Pulumi.SpotInst.Gcp.Inputs.ElastigroupScalingUpPolicy>
    Contains scaling policies for scaling the Elastigroup up.
    ScheduledTasks List<Pulumi.SpotInst.Gcp.Inputs.ElastigroupScheduledTask>
    ServiceAccount string
    The email of the service account in which the group instances will be launched.
    ShutdownScript string
    The Base64-encoded shutdown script that executes prior to instance termination, for more information please see: Shutdown Script
    StartupScript string
    Create and run your own startup scripts on your virtual machines to perform automated tasks every time your instance boots up.
    Subnets List<Pulumi.SpotInst.Gcp.Inputs.ElastigroupSubnet>
    A list of regions and subnets.
    Tags List<string>
    Tags to mark created instances.
    UnhealthyDuration int
    Period of time (seconds) to remain in an unhealthy status before a replacement is triggered.
    AutoHealing bool
    Enable auto-replacement of unhealthy instances.
    AvailabilityZones []string
    List of availability zones for the group.

    Deprecated: This field will soon be handled by Region in Subnets

    BackendServices []ElastigroupBackendServiceArgs
    Describes the backend service configurations.
    Description string
    The region your GCP group will be created in.
    DesiredCapacity int
    The desired number of instances the group should have at any time.
    Disks []ElastigroupDiskArgs
    DrainingTimeout int
    Time (seconds) the instance is allowed to run after it is detached from the group. This is to allow the instance time to drain all the current TCP connections before terminating it.
    FallbackToOndemand bool
    Activate fallback-to-on-demand. When provisioning an instance, if no Preemptible market is available, fallback-to-on-demand will provision an On-Demand instance to maintain the group capacity.
    Gpu []ElastigroupGpuArgs
    Defines the GPU configuration.
    HealthCheckGracePeriod int
    Period of time (seconds) to wait for VM to reach healthiness before monitoring for unhealthiness.
    HealthCheckType string
    The kind of health check to perform when monitoring for unhealthiness.
    InstanceNamePrefix string
    Set an instance name prefix to be used for all launched instances and their boot disk. The prefix value should comply with the following limitations:

    • A maximal length of 25 characters.
    • The first character must be a lowercase letter, and all the following characters must be hyphens, lowercase letters, or digits, except the last character, which cannot be a hyphen.
    InstanceTypesCustoms []ElastigroupInstanceTypesCustomArgs
    Defines a set of custom instance types. Required if instance_types_preemptible and instance_types_ondemand are not set.
    InstanceTypesOndemand string
    The regular VM instance type to use for mixed-type groups and when falling back to on-demand. Required if instance_types_preemptible is not set.
    InstanceTypesPreemptibles []string
    The preemptible VMs instance type. To maximize cost savings and market availability, select as many types as possible. Required if instance_types_ondemand is not set.
    IntegrationDockerSwarm ElastigroupIntegrationDockerSwarmArgs
    Describes the Docker Swarm integration.
    IntegrationGke ElastigroupIntegrationGkeArgs
    IpForwarding bool
    Labels []ElastigroupLabelArgs
    Array of objects with key-value pairs.
    MaxSize int
    The maximum number of instances the group should have at any time.
    Metadatas []ElastigroupMetadataArgs
    Array of objects with key-value pairs.
    MinSize int
    The minimum number of instances the group should have at any time.
    Name string
    The group name.
    NetworkInterfaces []ElastigroupNetworkInterfaceArgs
    Array of objects representing the network configuration for the elastigroup.
    OndemandCount int
    PreemptiblePercentage int
    Percentage of Preemptible VMs to spin up from the "desired_capacity".
    ProvisioningModel string
    Valid values: "SPOT", "PREEMPTIBLE". Define the provisioning model of the launched instances. Default value is "PREEMPTIBLE".
    ScalingDownPolicies []ElastigroupScalingDownPolicyArgs

    Contains scaling policies for scaling the Elastigroup down.

    Each scaling_*_policy supports the following:

    ScalingUpPolicies []ElastigroupScalingUpPolicyArgs
    Contains scaling policies for scaling the Elastigroup up.
    ScheduledTasks []ElastigroupScheduledTaskArgs
    ServiceAccount string
    The email of the service account in which the group instances will be launched.
    ShutdownScript string
    The Base64-encoded shutdown script that executes prior to instance termination, for more information please see: Shutdown Script
    StartupScript string
    Create and run your own startup scripts on your virtual machines to perform automated tasks every time your instance boots up.
    Subnets []ElastigroupSubnetArgs
    A list of regions and subnets.
    Tags []string
    Tags to mark created instances.
    UnhealthyDuration int
    Period of time (seconds) to remain in an unhealthy status before a replacement is triggered.
    autoHealing Boolean
    Enable auto-replacement of unhealthy instances.
    availabilityZones List<String>
    List of availability zones for the group.

    Deprecated: This field will soon be handled by Region in Subnets

    backendServices List<ElastigroupBackendService>
    Describes the backend service configurations.
    description String
    The region your GCP group will be created in.
    desiredCapacity Integer
    The desired number of instances the group should have at any time.
    disks List<ElastigroupDisk>
    drainingTimeout Integer
    Time (seconds) the instance is allowed to run after it is detached from the group. This is to allow the instance time to drain all the current TCP connections before terminating it.
    fallbackToOndemand Boolean
    Activate fallback-to-on-demand. When provisioning an instance, if no Preemptible market is available, fallback-to-on-demand will provision an On-Demand instance to maintain the group capacity.
    gpu List<ElastigroupGpu>
    Defines the GPU configuration.
    healthCheckGracePeriod Integer
    Period of time (seconds) to wait for VM to reach healthiness before monitoring for unhealthiness.
    healthCheckType String
    The kind of health check to perform when monitoring for unhealthiness.
    instanceNamePrefix String
    Set an instance name prefix to be used for all launched instances and their boot disk. The prefix value should comply with the following limitations:

    • A maximal length of 25 characters.
    • The first character must be a lowercase letter, and all the following characters must be hyphens, lowercase letters, or digits, except the last character, which cannot be a hyphen.
    instanceTypesCustoms List<ElastigroupInstanceTypesCustom>
    Defines a set of custom instance types. Required if instance_types_preemptible and instance_types_ondemand are not set.
    instanceTypesOndemand String
    The regular VM instance type to use for mixed-type groups and when falling back to on-demand. Required if instance_types_preemptible is not set.
    instanceTypesPreemptibles List<String>
    The preemptible VMs instance type. To maximize cost savings and market availability, select as many types as possible. Required if instance_types_ondemand is not set.
    integrationDockerSwarm ElastigroupIntegrationDockerSwarm
    Describes the Docker Swarm integration.
    integrationGke ElastigroupIntegrationGke
    ipForwarding Boolean
    labels List<ElastigroupLabel>
    Array of objects with key-value pairs.
    maxSize Integer
    The maximum number of instances the group should have at any time.
    metadatas List<ElastigroupMetadata>
    Array of objects with key-value pairs.
    minSize Integer
    The minimum number of instances the group should have at any time.
    name String
    The group name.
    networkInterfaces List<ElastigroupNetworkInterface>
    Array of objects representing the network configuration for the elastigroup.
    ondemandCount Integer
    preemptiblePercentage Integer
    Percentage of Preemptible VMs to spin up from the "desired_capacity".
    provisioningModel String
    Valid values: "SPOT", "PREEMPTIBLE". Define the provisioning model of the launched instances. Default value is "PREEMPTIBLE".
    scalingDownPolicies List<ElastigroupScalingDownPolicy>

    Contains scaling policies for scaling the Elastigroup down.

    Each scaling_*_policy supports the following:

    scalingUpPolicies List<ElastigroupScalingUpPolicy>
    Contains scaling policies for scaling the Elastigroup up.
    scheduledTasks List<ElastigroupScheduledTask>
    serviceAccount String
    The email of the service account in which the group instances will be launched.
    shutdownScript String
    The Base64-encoded shutdown script that executes prior to instance termination, for more information please see: Shutdown Script
    startupScript String
    Create and run your own startup scripts on your virtual machines to perform automated tasks every time your instance boots up.
    subnets List<ElastigroupSubnet>
    A list of regions and subnets.
    tags List<String>
    Tags to mark created instances.
    unhealthyDuration Integer
    Period of time (seconds) to remain in an unhealthy status before a replacement is triggered.
    autoHealing boolean
    Enable auto-replacement of unhealthy instances.
    availabilityZones string[]
    List of availability zones for the group.

    Deprecated: This field will soon be handled by Region in Subnets

    backendServices ElastigroupBackendService[]
    Describes the backend service configurations.
    description string
    The region your GCP group will be created in.
    desiredCapacity number
    The desired number of instances the group should have at any time.
    disks ElastigroupDisk[]
    drainingTimeout number
    Time (seconds) the instance is allowed to run after it is detached from the group. This is to allow the instance time to drain all the current TCP connections before terminating it.
    fallbackToOndemand boolean
    Activate fallback-to-on-demand. When provisioning an instance, if no Preemptible market is available, fallback-to-on-demand will provision an On-Demand instance to maintain the group capacity.
    gpu ElastigroupGpu[]
    Defines the GPU configuration.
    healthCheckGracePeriod number
    Period of time (seconds) to wait for VM to reach healthiness before monitoring for unhealthiness.
    healthCheckType string
    The kind of health check to perform when monitoring for unhealthiness.
    instanceNamePrefix string
    Set an instance name prefix to be used for all launched instances and their boot disk. The prefix value should comply with the following limitations:

    • A maximal length of 25 characters.
    • The first character must be a lowercase letter, and all the following characters must be hyphens, lowercase letters, or digits, except the last character, which cannot be a hyphen.
    instanceTypesCustoms ElastigroupInstanceTypesCustom[]
    Defines a set of custom instance types. Required if instance_types_preemptible and instance_types_ondemand are not set.
    instanceTypesOndemand string
    The regular VM instance type to use for mixed-type groups and when falling back to on-demand. Required if instance_types_preemptible is not set.
    instanceTypesPreemptibles string[]
    The preemptible VMs instance type. To maximize cost savings and market availability, select as many types as possible. Required if instance_types_ondemand is not set.
    integrationDockerSwarm ElastigroupIntegrationDockerSwarm
    Describes the Docker Swarm integration.
    integrationGke ElastigroupIntegrationGke
    ipForwarding boolean
    labels ElastigroupLabel[]
    Array of objects with key-value pairs.
    maxSize number
    The maximum number of instances the group should have at any time.
    metadatas ElastigroupMetadata[]
    Array of objects with key-value pairs.
    minSize number
    The minimum number of instances the group should have at any time.
    name string
    The group name.
    networkInterfaces ElastigroupNetworkInterface[]
    Array of objects representing the network configuration for the elastigroup.
    ondemandCount number
    preemptiblePercentage number
    Percentage of Preemptible VMs to spin up from the "desired_capacity".
    provisioningModel string
    Valid values: "SPOT", "PREEMPTIBLE". Define the provisioning model of the launched instances. Default value is "PREEMPTIBLE".
    scalingDownPolicies ElastigroupScalingDownPolicy[]

    Contains scaling policies for scaling the Elastigroup down.

    Each scaling_*_policy supports the following:

    scalingUpPolicies ElastigroupScalingUpPolicy[]
    Contains scaling policies for scaling the Elastigroup up.
    scheduledTasks ElastigroupScheduledTask[]
    serviceAccount string
    The email of the service account in which the group instances will be launched.
    shutdownScript string
    The Base64-encoded shutdown script that executes prior to instance termination, for more information please see: Shutdown Script
    startupScript string
    Create and run your own startup scripts on your virtual machines to perform automated tasks every time your instance boots up.
    subnets ElastigroupSubnet[]
    A list of regions and subnets.
    tags string[]
    Tags to mark created instances.
    unhealthyDuration number
    Period of time (seconds) to remain in an unhealthy status before a replacement is triggered.
    auto_healing bool
    Enable auto-replacement of unhealthy instances.
    availability_zones Sequence[str]
    List of availability zones for the group.

    Deprecated: This field will soon be handled by Region in Subnets

    backend_services Sequence[ElastigroupBackendServiceArgs]
    Describes the backend service configurations.
    description str
    The region your GCP group will be created in.
    desired_capacity int
    The desired number of instances the group should have at any time.
    disks Sequence[ElastigroupDiskArgs]
    draining_timeout int
    Time (seconds) the instance is allowed to run after it is detached from the group. This is to allow the instance time to drain all the current TCP connections before terminating it.
    fallback_to_ondemand bool
    Activate fallback-to-on-demand. When provisioning an instance, if no Preemptible market is available, fallback-to-on-demand will provision an On-Demand instance to maintain the group capacity.
    gpu Sequence[ElastigroupGpuArgs]
    Defines the GPU configuration.
    health_check_grace_period int
    Period of time (seconds) to wait for VM to reach healthiness before monitoring for unhealthiness.
    health_check_type str
    The kind of health check to perform when monitoring for unhealthiness.
    instance_name_prefix str
    Set an instance name prefix to be used for all launched instances and their boot disk. The prefix value should comply with the following limitations:

    • A maximal length of 25 characters.
    • The first character must be a lowercase letter, and all the following characters must be hyphens, lowercase letters, or digits, except the last character, which cannot be a hyphen.
    instance_types_customs Sequence[ElastigroupInstanceTypesCustomArgs]
    Defines a set of custom instance types. Required if instance_types_preemptible and instance_types_ondemand are not set.
    instance_types_ondemand str
    The regular VM instance type to use for mixed-type groups and when falling back to on-demand. Required if instance_types_preemptible is not set.
    instance_types_preemptibles Sequence[str]
    The preemptible VMs instance type. To maximize cost savings and market availability, select as many types as possible. Required if instance_types_ondemand is not set.
    integration_docker_swarm ElastigroupIntegrationDockerSwarmArgs
    Describes the Docker Swarm integration.
    integration_gke ElastigroupIntegrationGkeArgs
    ip_forwarding bool
    labels Sequence[ElastigroupLabelArgs]
    Array of objects with key-value pairs.
    max_size int
    The maximum number of instances the group should have at any time.
    metadatas Sequence[ElastigroupMetadataArgs]
    Array of objects with key-value pairs.
    min_size int
    The minimum number of instances the group should have at any time.
    name str
    The group name.
    network_interfaces Sequence[ElastigroupNetworkInterfaceArgs]
    Array of objects representing the network configuration for the elastigroup.
    ondemand_count int
    preemptible_percentage int
    Percentage of Preemptible VMs to spin up from the "desired_capacity".
    provisioning_model str
    Valid values: "SPOT", "PREEMPTIBLE". Define the provisioning model of the launched instances. Default value is "PREEMPTIBLE".
    scaling_down_policies Sequence[ElastigroupScalingDownPolicyArgs]

    Contains scaling policies for scaling the Elastigroup down.

    Each scaling_*_policy supports the following:

    scaling_up_policies Sequence[ElastigroupScalingUpPolicyArgs]
    Contains scaling policies for scaling the Elastigroup up.
    scheduled_tasks Sequence[ElastigroupScheduledTaskArgs]
    service_account str
    The email of the service account in which the group instances will be launched.
    shutdown_script str
    The Base64-encoded shutdown script that executes prior to instance termination, for more information please see: Shutdown Script
    startup_script str
    Create and run your own startup scripts on your virtual machines to perform automated tasks every time your instance boots up.
    subnets Sequence[ElastigroupSubnetArgs]
    A list of regions and subnets.
    tags Sequence[str]
    Tags to mark created instances.
    unhealthy_duration int
    Period of time (seconds) to remain in an unhealthy status before a replacement is triggered.
    autoHealing Boolean
    Enable auto-replacement of unhealthy instances.
    availabilityZones List<String>
    List of availability zones for the group.

    Deprecated: This field will soon be handled by Region in Subnets

    backendServices List<Property Map>
    Describes the backend service configurations.
    description String
    The region your GCP group will be created in.
    desiredCapacity Number
    The desired number of instances the group should have at any time.
    disks List<Property Map>
    drainingTimeout Number
    Time (seconds) the instance is allowed to run after it is detached from the group. This is to allow the instance time to drain all the current TCP connections before terminating it.
    fallbackToOndemand Boolean
    Activate fallback-to-on-demand. When provisioning an instance, if no Preemptible market is available, fallback-to-on-demand will provision an On-Demand instance to maintain the group capacity.
    gpu List<Property Map>
    Defines the GPU configuration.
    healthCheckGracePeriod Number
    Period of time (seconds) to wait for VM to reach healthiness before monitoring for unhealthiness.
    healthCheckType String
    The kind of health check to perform when monitoring for unhealthiness.
    instanceNamePrefix String
    Set an instance name prefix to be used for all launched instances and their boot disk. The prefix value should comply with the following limitations:

    • A maximal length of 25 characters.
    • The first character must be a lowercase letter, and all the following characters must be hyphens, lowercase letters, or digits, except the last character, which cannot be a hyphen.
    instanceTypesCustoms List<Property Map>
    Defines a set of custom instance types. Required if instance_types_preemptible and instance_types_ondemand are not set.
    instanceTypesOndemand String
    The regular VM instance type to use for mixed-type groups and when falling back to on-demand. Required if instance_types_preemptible is not set.
    instanceTypesPreemptibles List<String>
    The preemptible VMs instance type. To maximize cost savings and market availability, select as many types as possible. Required if instance_types_ondemand is not set.
    integrationDockerSwarm Property Map
    Describes the Docker Swarm integration.
    integrationGke Property Map
    ipForwarding Boolean
    labels List<Property Map>
    Array of objects with key-value pairs.
    maxSize Number
    The maximum number of instances the group should have at any time.
    metadatas List<Property Map>
    Array of objects with key-value pairs.
    minSize Number
    The minimum number of instances the group should have at any time.
    name String
    The group name.
    networkInterfaces List<Property Map>
    Array of objects representing the network configuration for the elastigroup.
    ondemandCount Number
    preemptiblePercentage Number
    Percentage of Preemptible VMs to spin up from the "desired_capacity".
    provisioningModel String
    Valid values: "SPOT", "PREEMPTIBLE". Define the provisioning model of the launched instances. Default value is "PREEMPTIBLE".
    scalingDownPolicies List<Property Map>

    Contains scaling policies for scaling the Elastigroup down.

    Each scaling_*_policy supports the following:

    scalingUpPolicies List<Property Map>
    Contains scaling policies for scaling the Elastigroup up.
    scheduledTasks List<Property Map>
    serviceAccount String
    The email of the service account in which the group instances will be launched.
    shutdownScript String
    The Base64-encoded shutdown script that executes prior to instance termination, for more information please see: Shutdown Script
    startupScript String
    Create and run your own startup scripts on your virtual machines to perform automated tasks every time your instance boots up.
    subnets List<Property Map>
    A list of regions and subnets.
    tags List<String>
    Tags to mark created instances.
    unhealthyDuration Number
    Period of time (seconds) to remain in an unhealthy status before a replacement is triggered.

    Supporting Types

    ElastigroupBackendService, ElastigroupBackendServiceArgs

    ServiceName string
    The name of the backend service.
    LocationType string
    Sets which location the backend services will be active. Valid values: regional, global.
    NamedPorts List<Pulumi.SpotInst.Gcp.Inputs.ElastigroupBackendServiceNamedPort>
    Describes a named port and a list of ports.
    Scheme string
    Use when location_type is "regional". Set the traffic for the backend service to either between the instances in the vpc or to traffic from the internet. Valid values: INTERNAL, EXTERNAL.
    ServiceName string
    The name of the backend service.
    LocationType string
    Sets which location the backend services will be active. Valid values: regional, global.
    NamedPorts []ElastigroupBackendServiceNamedPort
    Describes a named port and a list of ports.
    Scheme string
    Use when location_type is "regional". Set the traffic for the backend service to either between the instances in the vpc or to traffic from the internet. Valid values: INTERNAL, EXTERNAL.
    serviceName String
    The name of the backend service.
    locationType String
    Sets which location the backend services will be active. Valid values: regional, global.
    namedPorts List<ElastigroupBackendServiceNamedPort>
    Describes a named port and a list of ports.
    scheme String
    Use when location_type is "regional". Set the traffic for the backend service to either between the instances in the vpc or to traffic from the internet. Valid values: INTERNAL, EXTERNAL.
    serviceName string
    The name of the backend service.
    locationType string
    Sets which location the backend services will be active. Valid values: regional, global.
    namedPorts ElastigroupBackendServiceNamedPort[]
    Describes a named port and a list of ports.
    scheme string
    Use when location_type is "regional". Set the traffic for the backend service to either between the instances in the vpc or to traffic from the internet. Valid values: INTERNAL, EXTERNAL.
    service_name str
    The name of the backend service.
    location_type str
    Sets which location the backend services will be active. Valid values: regional, global.
    named_ports Sequence[ElastigroupBackendServiceNamedPort]
    Describes a named port and a list of ports.
    scheme str
    Use when location_type is "regional". Set the traffic for the backend service to either between the instances in the vpc or to traffic from the internet. Valid values: INTERNAL, EXTERNAL.
    serviceName String
    The name of the backend service.
    locationType String
    Sets which location the backend services will be active. Valid values: regional, global.
    namedPorts List<Property Map>
    Describes a named port and a list of ports.
    scheme String
    Use when location_type is "regional". Set the traffic for the backend service to either between the instances in the vpc or to traffic from the internet. Valid values: INTERNAL, EXTERNAL.

    ElastigroupBackendServiceNamedPort, ElastigroupBackendServiceNamedPortArgs

    Name string
    The group name.
    Ports List<string>

    A list of ports.

    Usage:

    Name string
    The group name.
    Ports []string

    A list of ports.

    Usage:

    name String
    The group name.
    ports List<String>

    A list of ports.

    Usage:

    name string
    The group name.
    ports string[]

    A list of ports.

    Usage:

    name str
    The group name.
    ports Sequence[str]

    A list of ports.

    Usage:

    name String
    The group name.
    ports List<String>

    A list of ports.

    Usage:

    ElastigroupDisk, ElastigroupDiskArgs

    AutoDelete bool
    Specifies whether the disk will be auto-deleted when the instance is deleted.
    Boot bool
    Indicates that this is a boot disk. The virtual machine will use the first partition of the disk for its root filesystem.
    DeviceName string
    Specifies a unique device name of your choice.
    InitializeParams List<Pulumi.SpotInst.Gcp.Inputs.ElastigroupDiskInitializeParam>
    Specifies the parameters for a new disk that will be created alongside the new instance. Use initialization parameters to create boot disks or local SSDs attached to the new instance.
    Interface string
    Specifies the disk interface to use for attaching this disk, which is either SCSI or NVME.
    Mode string
    The mode in which to attach this disk, either READ_WRITE or READ_ONLY.
    Source string
    Specifies a valid partial or full URL to an existing Persistent Disk resource. This field is only applicable for persistent disks.
    Type string
    Specifies the type of disk, either SCRATCH or PERSISTENT.
    AutoDelete bool
    Specifies whether the disk will be auto-deleted when the instance is deleted.
    Boot bool
    Indicates that this is a boot disk. The virtual machine will use the first partition of the disk for its root filesystem.
    DeviceName string
    Specifies a unique device name of your choice.
    InitializeParams []ElastigroupDiskInitializeParam
    Specifies the parameters for a new disk that will be created alongside the new instance. Use initialization parameters to create boot disks or local SSDs attached to the new instance.
    Interface string
    Specifies the disk interface to use for attaching this disk, which is either SCSI or NVME.
    Mode string
    The mode in which to attach this disk, either READ_WRITE or READ_ONLY.
    Source string
    Specifies a valid partial or full URL to an existing Persistent Disk resource. This field is only applicable for persistent disks.
    Type string
    Specifies the type of disk, either SCRATCH or PERSISTENT.
    autoDelete Boolean
    Specifies whether the disk will be auto-deleted when the instance is deleted.
    boot Boolean
    Indicates that this is a boot disk. The virtual machine will use the first partition of the disk for its root filesystem.
    deviceName String
    Specifies a unique device name of your choice.
    initializeParams List<ElastigroupDiskInitializeParam>
    Specifies the parameters for a new disk that will be created alongside the new instance. Use initialization parameters to create boot disks or local SSDs attached to the new instance.
    interface_ String
    Specifies the disk interface to use for attaching this disk, which is either SCSI or NVME.
    mode String
    The mode in which to attach this disk, either READ_WRITE or READ_ONLY.
    source String
    Specifies a valid partial or full URL to an existing Persistent Disk resource. This field is only applicable for persistent disks.
    type String
    Specifies the type of disk, either SCRATCH or PERSISTENT.
    autoDelete boolean
    Specifies whether the disk will be auto-deleted when the instance is deleted.
    boot boolean
    Indicates that this is a boot disk. The virtual machine will use the first partition of the disk for its root filesystem.
    deviceName string
    Specifies a unique device name of your choice.
    initializeParams ElastigroupDiskInitializeParam[]
    Specifies the parameters for a new disk that will be created alongside the new instance. Use initialization parameters to create boot disks or local SSDs attached to the new instance.
    interface string
    Specifies the disk interface to use for attaching this disk, which is either SCSI or NVME.
    mode string
    The mode in which to attach this disk, either READ_WRITE or READ_ONLY.
    source string
    Specifies a valid partial or full URL to an existing Persistent Disk resource. This field is only applicable for persistent disks.
    type string
    Specifies the type of disk, either SCRATCH or PERSISTENT.
    auto_delete bool
    Specifies whether the disk will be auto-deleted when the instance is deleted.
    boot bool
    Indicates that this is a boot disk. The virtual machine will use the first partition of the disk for its root filesystem.
    device_name str
    Specifies a unique device name of your choice.
    initialize_params Sequence[ElastigroupDiskInitializeParam]
    Specifies the parameters for a new disk that will be created alongside the new instance. Use initialization parameters to create boot disks or local SSDs attached to the new instance.
    interface str
    Specifies the disk interface to use for attaching this disk, which is either SCSI or NVME.
    mode str
    The mode in which to attach this disk, either READ_WRITE or READ_ONLY.
    source str
    Specifies a valid partial or full URL to an existing Persistent Disk resource. This field is only applicable for persistent disks.
    type str
    Specifies the type of disk, either SCRATCH or PERSISTENT.
    autoDelete Boolean
    Specifies whether the disk will be auto-deleted when the instance is deleted.
    boot Boolean
    Indicates that this is a boot disk. The virtual machine will use the first partition of the disk for its root filesystem.
    deviceName String
    Specifies a unique device name of your choice.
    initializeParams List<Property Map>
    Specifies the parameters for a new disk that will be created alongside the new instance. Use initialization parameters to create boot disks or local SSDs attached to the new instance.
    interface String
    Specifies the disk interface to use for attaching this disk, which is either SCSI or NVME.
    mode String
    The mode in which to attach this disk, either READ_WRITE or READ_ONLY.
    source String
    Specifies a valid partial or full URL to an existing Persistent Disk resource. This field is only applicable for persistent disks.
    type String
    Specifies the type of disk, either SCRATCH or PERSISTENT.

    ElastigroupDiskInitializeParam, ElastigroupDiskInitializeParamArgs

    SourceImage string

    A source image used to create the disk. You can provide a private (custom) image, and Compute Engine will use the corresponding image from your project.

    Usage:

    DiskSizeGb string
    Specifies disk size in gigabytes. Must be in increments of 2.
    DiskType string
    Specifies the disk type to use to create the instance. Valid values: pd-ssd, local-ssd.
    SourceImage string

    A source image used to create the disk. You can provide a private (custom) image, and Compute Engine will use the corresponding image from your project.

    Usage:

    DiskSizeGb string
    Specifies disk size in gigabytes. Must be in increments of 2.
    DiskType string
    Specifies the disk type to use to create the instance. Valid values: pd-ssd, local-ssd.
    sourceImage String

    A source image used to create the disk. You can provide a private (custom) image, and Compute Engine will use the corresponding image from your project.

    Usage:

    diskSizeGb String
    Specifies disk size in gigabytes. Must be in increments of 2.
    diskType String
    Specifies the disk type to use to create the instance. Valid values: pd-ssd, local-ssd.
    sourceImage string

    A source image used to create the disk. You can provide a private (custom) image, and Compute Engine will use the corresponding image from your project.

    Usage:

    diskSizeGb string
    Specifies disk size in gigabytes. Must be in increments of 2.
    diskType string
    Specifies the disk type to use to create the instance. Valid values: pd-ssd, local-ssd.
    source_image str

    A source image used to create the disk. You can provide a private (custom) image, and Compute Engine will use the corresponding image from your project.

    Usage:

    disk_size_gb str
    Specifies disk size in gigabytes. Must be in increments of 2.
    disk_type str
    Specifies the disk type to use to create the instance. Valid values: pd-ssd, local-ssd.
    sourceImage String

    A source image used to create the disk. You can provide a private (custom) image, and Compute Engine will use the corresponding image from your project.

    Usage:

    diskSizeGb String
    Specifies disk size in gigabytes. Must be in increments of 2.
    diskType String
    Specifies the disk type to use to create the instance. Valid values: pd-ssd, local-ssd.

    ElastigroupGpu, ElastigroupGpuArgs

    Count int

    The number of GPUs. Must be 0, 2, 4, 6, 8.

    Usage:

    Type string
    The type of GPU instance. Valid values: nvidia-tesla-v100, nvidia-tesla-p100, nvidia-tesla-k80.
    Count int

    The number of GPUs. Must be 0, 2, 4, 6, 8.

    Usage:

    Type string
    The type of GPU instance. Valid values: nvidia-tesla-v100, nvidia-tesla-p100, nvidia-tesla-k80.
    count Integer

    The number of GPUs. Must be 0, 2, 4, 6, 8.

    Usage:

    type String
    The type of GPU instance. Valid values: nvidia-tesla-v100, nvidia-tesla-p100, nvidia-tesla-k80.
    count number

    The number of GPUs. Must be 0, 2, 4, 6, 8.

    Usage:

    type string
    The type of GPU instance. Valid values: nvidia-tesla-v100, nvidia-tesla-p100, nvidia-tesla-k80.
    count int

    The number of GPUs. Must be 0, 2, 4, 6, 8.

    Usage:

    type str
    The type of GPU instance. Valid values: nvidia-tesla-v100, nvidia-tesla-p100, nvidia-tesla-k80.
    count Number

    The number of GPUs. Must be 0, 2, 4, 6, 8.

    Usage:

    type String
    The type of GPU instance. Valid values: nvidia-tesla-v100, nvidia-tesla-p100, nvidia-tesla-k80.

    ElastigroupInstanceTypesCustom, ElastigroupInstanceTypesCustomArgs

    MemoryGib int
    The memory (in GiB) in the custom instance types. GCP has a number of limitations on accepted memory values.For more information, see the GCP documentation (here.)[https://cloud.google.com/compute/docs/instances/creating-instance-with-custom-machine-type#specifications]
    Vcpu int
    MemoryGib int
    The memory (in GiB) in the custom instance types. GCP has a number of limitations on accepted memory values.For more information, see the GCP documentation (here.)[https://cloud.google.com/compute/docs/instances/creating-instance-with-custom-machine-type#specifications]
    Vcpu int
    memoryGib Integer
    The memory (in GiB) in the custom instance types. GCP has a number of limitations on accepted memory values.For more information, see the GCP documentation (here.)[https://cloud.google.com/compute/docs/instances/creating-instance-with-custom-machine-type#specifications]
    vcpu Integer
    memoryGib number
    The memory (in GiB) in the custom instance types. GCP has a number of limitations on accepted memory values.For more information, see the GCP documentation (here.)[https://cloud.google.com/compute/docs/instances/creating-instance-with-custom-machine-type#specifications]
    vcpu number
    memory_gib int
    The memory (in GiB) in the custom instance types. GCP has a number of limitations on accepted memory values.For more information, see the GCP documentation (here.)[https://cloud.google.com/compute/docs/instances/creating-instance-with-custom-machine-type#specifications]
    vcpu int
    memoryGib Number
    The memory (in GiB) in the custom instance types. GCP has a number of limitations on accepted memory values.For more information, see the GCP documentation (here.)[https://cloud.google.com/compute/docs/instances/creating-instance-with-custom-machine-type#specifications]
    vcpu Number

    ElastigroupIntegrationDockerSwarm, ElastigroupIntegrationDockerSwarmArgs

    MasterHost string
    IP or FQDN of one of your swarm managers.
    MasterPort int

    Network port used by your swarm.

    Usage:

    MasterHost string
    IP or FQDN of one of your swarm managers.
    MasterPort int

    Network port used by your swarm.

    Usage:

    masterHost String
    IP or FQDN of one of your swarm managers.
    masterPort Integer

    Network port used by your swarm.

    Usage:

    masterHost string
    IP or FQDN of one of your swarm managers.
    masterPort number

    Network port used by your swarm.

    Usage:

    master_host str
    IP or FQDN of one of your swarm managers.
    master_port int

    Network port used by your swarm.

    Usage:

    masterHost String
    IP or FQDN of one of your swarm managers.
    masterPort Number

    Network port used by your swarm.

    Usage:

    ElastigroupIntegrationGke, ElastigroupIntegrationGkeArgs

    ElastigroupIntegrationGkeAutoscaleDown, ElastigroupIntegrationGkeAutoscaleDownArgs

    EvaluationPeriods int
    Number of consecutive periods in which the threshold must be met in order to trigger a scaling action.
    EvaluationPeriods int
    Number of consecutive periods in which the threshold must be met in order to trigger a scaling action.
    evaluationPeriods Integer
    Number of consecutive periods in which the threshold must be met in order to trigger a scaling action.
    evaluationPeriods number
    Number of consecutive periods in which the threshold must be met in order to trigger a scaling action.
    evaluation_periods int
    Number of consecutive periods in which the threshold must be met in order to trigger a scaling action.
    evaluationPeriods Number
    Number of consecutive periods in which the threshold must be met in order to trigger a scaling action.

    ElastigroupIntegrationGkeAutoscaleHeadroom, ElastigroupIntegrationGkeAutoscaleHeadroomArgs

    cpuPerUnit Integer
    memoryPerUnit Integer
    numOfUnits Integer

    ElastigroupIntegrationGkeAutoscaleLabel, ElastigroupIntegrationGkeAutoscaleLabelArgs

    Key string
    Labels key.
    Value string
    Labels value.
    Key string
    Labels key.
    Value string
    Labels value.
    key String
    Labels key.
    value String
    Labels value.
    key string
    Labels key.
    value string
    Labels value.
    key str
    Labels key.
    value str
    Labels value.
    key String
    Labels key.
    value String
    Labels value.

    ElastigroupLabel, ElastigroupLabelArgs

    Key string
    Labels key.
    Value string
    Labels value.
    Key string
    Labels key.
    Value string
    Labels value.
    key String
    Labels key.
    value String
    Labels value.
    key string
    Labels key.
    value string
    Labels value.
    key str
    Labels key.
    value str
    Labels value.
    key String
    Labels key.
    value String
    Labels value.

    ElastigroupMetadata, ElastigroupMetadataArgs

    Key string
    Labels key.
    Value string
    Labels value.
    Key string
    Labels key.
    Value string
    Labels value.
    key String
    Labels key.
    value String
    Labels value.
    key string
    Labels key.
    value string
    Labels value.
    key str
    Labels key.
    value str
    Labels value.
    key String
    Labels key.
    value String
    Labels value.

    ElastigroupNetworkInterface, ElastigroupNetworkInterfaceArgs

    network String
    Network resource for this group.
    accessConfigs List<Property Map>
    Array of configurations.
    aliasIpRanges List<Property Map>

    ElastigroupNetworkInterfaceAccessConfig, ElastigroupNetworkInterfaceAccessConfigArgs

    Name string
    The group name.
    Type string
    Specifies the type of disk, either SCRATCH or PERSISTENT.
    Name string
    The group name.
    Type string
    Specifies the type of disk, either SCRATCH or PERSISTENT.
    name String
    The group name.
    type String
    Specifies the type of disk, either SCRATCH or PERSISTENT.
    name string
    The group name.
    type string
    Specifies the type of disk, either SCRATCH or PERSISTENT.
    name str
    The group name.
    type str
    Specifies the type of disk, either SCRATCH or PERSISTENT.
    name String
    The group name.
    type String
    Specifies the type of disk, either SCRATCH or PERSISTENT.

    ElastigroupNetworkInterfaceAliasIpRange, ElastigroupNetworkInterfaceAliasIpRangeArgs

    ElastigroupScalingDownPolicy, ElastigroupScalingDownPolicyArgs

    MetricName string
    Metric to monitor. Valid values: "Percentage CPU", "Network In", "Network Out", "Disk Read Bytes", "Disk Write Bytes", "Disk Write Operations/Sec", "Disk Read Operations/Sec".
    Namespace string
    PolicyName string
    Name of scaling policy.
    Threshold double
    The value at which the scaling action is triggered.
    Unit string
    ActionType string
    Type of scaling action to take when the scaling policy is triggered. Valid values: "adjustment", "setMinTarget", "updateCapacity", "percentageAdjustment"
    Adjustment int
    Value to which the action type will be adjusted. Required if using "numeric" or "percentageAdjustment" action types.
    Cooldown int
    Time (seconds) to wait after a scaling action before resuming monitoring.
    Dimensions List<Pulumi.SpotInst.Gcp.Inputs.ElastigroupScalingDownPolicyDimension>
    A list of dimensions describing qualities of the metric.
    EvaluationPeriods int
    Number of consecutive periods in which the threshold must be met in order to trigger a scaling action.
    Operator string
    The operator used to evaluate the threshold against the current metric value. Valid values: "gt" (greater than), "get" (greater-than or equal), "lt" (less than), "lte" (less than or equal).
    Period int
    Amount of time (seconds) for which the threshold must be met in order to trigger the scaling action.
    Source string
    Specifies a valid partial or full URL to an existing Persistent Disk resource. This field is only applicable for persistent disks.
    Statistic string
    Statistic by which to evaluate the selected metric. Valid values: "AVERAGE", "SAMPLE_COUNT", "SUM", "MINIMUM", "MAXIMUM", "PERCENTILE", "COUNT".
    MetricName string
    Metric to monitor. Valid values: "Percentage CPU", "Network In", "Network Out", "Disk Read Bytes", "Disk Write Bytes", "Disk Write Operations/Sec", "Disk Read Operations/Sec".
    Namespace string
    PolicyName string
    Name of scaling policy.
    Threshold float64
    The value at which the scaling action is triggered.
    Unit string
    ActionType string
    Type of scaling action to take when the scaling policy is triggered. Valid values: "adjustment", "setMinTarget", "updateCapacity", "percentageAdjustment"
    Adjustment int
    Value to which the action type will be adjusted. Required if using "numeric" or "percentageAdjustment" action types.
    Cooldown int
    Time (seconds) to wait after a scaling action before resuming monitoring.
    Dimensions []ElastigroupScalingDownPolicyDimension
    A list of dimensions describing qualities of the metric.
    EvaluationPeriods int
    Number of consecutive periods in which the threshold must be met in order to trigger a scaling action.
    Operator string
    The operator used to evaluate the threshold against the current metric value. Valid values: "gt" (greater than), "get" (greater-than or equal), "lt" (less than), "lte" (less than or equal).
    Period int
    Amount of time (seconds) for which the threshold must be met in order to trigger the scaling action.
    Source string
    Specifies a valid partial or full URL to an existing Persistent Disk resource. This field is only applicable for persistent disks.
    Statistic string
    Statistic by which to evaluate the selected metric. Valid values: "AVERAGE", "SAMPLE_COUNT", "SUM", "MINIMUM", "MAXIMUM", "PERCENTILE", "COUNT".
    metricName String
    Metric to monitor. Valid values: "Percentage CPU", "Network In", "Network Out", "Disk Read Bytes", "Disk Write Bytes", "Disk Write Operations/Sec", "Disk Read Operations/Sec".
    namespace String
    policyName String
    Name of scaling policy.
    threshold Double
    The value at which the scaling action is triggered.
    unit String
    actionType String
    Type of scaling action to take when the scaling policy is triggered. Valid values: "adjustment", "setMinTarget", "updateCapacity", "percentageAdjustment"
    adjustment Integer
    Value to which the action type will be adjusted. Required if using "numeric" or "percentageAdjustment" action types.
    cooldown Integer
    Time (seconds) to wait after a scaling action before resuming monitoring.
    dimensions List<ElastigroupScalingDownPolicyDimension>
    A list of dimensions describing qualities of the metric.
    evaluationPeriods Integer
    Number of consecutive periods in which the threshold must be met in order to trigger a scaling action.
    operator String
    The operator used to evaluate the threshold against the current metric value. Valid values: "gt" (greater than), "get" (greater-than or equal), "lt" (less than), "lte" (less than or equal).
    period Integer
    Amount of time (seconds) for which the threshold must be met in order to trigger the scaling action.
    source String
    Specifies a valid partial or full URL to an existing Persistent Disk resource. This field is only applicable for persistent disks.
    statistic String
    Statistic by which to evaluate the selected metric. Valid values: "AVERAGE", "SAMPLE_COUNT", "SUM", "MINIMUM", "MAXIMUM", "PERCENTILE", "COUNT".
    metricName string
    Metric to monitor. Valid values: "Percentage CPU", "Network In", "Network Out", "Disk Read Bytes", "Disk Write Bytes", "Disk Write Operations/Sec", "Disk Read Operations/Sec".
    namespace string
    policyName string
    Name of scaling policy.
    threshold number
    The value at which the scaling action is triggered.
    unit string
    actionType string
    Type of scaling action to take when the scaling policy is triggered. Valid values: "adjustment", "setMinTarget", "updateCapacity", "percentageAdjustment"
    adjustment number
    Value to which the action type will be adjusted. Required if using "numeric" or "percentageAdjustment" action types.
    cooldown number
    Time (seconds) to wait after a scaling action before resuming monitoring.
    dimensions ElastigroupScalingDownPolicyDimension[]
    A list of dimensions describing qualities of the metric.
    evaluationPeriods number
    Number of consecutive periods in which the threshold must be met in order to trigger a scaling action.
    operator string
    The operator used to evaluate the threshold against the current metric value. Valid values: "gt" (greater than), "get" (greater-than or equal), "lt" (less than), "lte" (less than or equal).
    period number
    Amount of time (seconds) for which the threshold must be met in order to trigger the scaling action.
    source string
    Specifies a valid partial or full URL to an existing Persistent Disk resource. This field is only applicable for persistent disks.
    statistic string
    Statistic by which to evaluate the selected metric. Valid values: "AVERAGE", "SAMPLE_COUNT", "SUM", "MINIMUM", "MAXIMUM", "PERCENTILE", "COUNT".
    metric_name str
    Metric to monitor. Valid values: "Percentage CPU", "Network In", "Network Out", "Disk Read Bytes", "Disk Write Bytes", "Disk Write Operations/Sec", "Disk Read Operations/Sec".
    namespace str
    policy_name str
    Name of scaling policy.
    threshold float
    The value at which the scaling action is triggered.
    unit str
    action_type str
    Type of scaling action to take when the scaling policy is triggered. Valid values: "adjustment", "setMinTarget", "updateCapacity", "percentageAdjustment"
    adjustment int
    Value to which the action type will be adjusted. Required if using "numeric" or "percentageAdjustment" action types.
    cooldown int
    Time (seconds) to wait after a scaling action before resuming monitoring.
    dimensions Sequence[ElastigroupScalingDownPolicyDimension]
    A list of dimensions describing qualities of the metric.
    evaluation_periods int
    Number of consecutive periods in which the threshold must be met in order to trigger a scaling action.
    operator str
    The operator used to evaluate the threshold against the current metric value. Valid values: "gt" (greater than), "get" (greater-than or equal), "lt" (less than), "lte" (less than or equal).
    period int
    Amount of time (seconds) for which the threshold must be met in order to trigger the scaling action.
    source str
    Specifies a valid partial or full URL to an existing Persistent Disk resource. This field is only applicable for persistent disks.
    statistic str
    Statistic by which to evaluate the selected metric. Valid values: "AVERAGE", "SAMPLE_COUNT", "SUM", "MINIMUM", "MAXIMUM", "PERCENTILE", "COUNT".
    metricName String
    Metric to monitor. Valid values: "Percentage CPU", "Network In", "Network Out", "Disk Read Bytes", "Disk Write Bytes", "Disk Write Operations/Sec", "Disk Read Operations/Sec".
    namespace String
    policyName String
    Name of scaling policy.
    threshold Number
    The value at which the scaling action is triggered.
    unit String
    actionType String
    Type of scaling action to take when the scaling policy is triggered. Valid values: "adjustment", "setMinTarget", "updateCapacity", "percentageAdjustment"
    adjustment Number
    Value to which the action type will be adjusted. Required if using "numeric" or "percentageAdjustment" action types.
    cooldown Number
    Time (seconds) to wait after a scaling action before resuming monitoring.
    dimensions List<Property Map>
    A list of dimensions describing qualities of the metric.
    evaluationPeriods Number
    Number of consecutive periods in which the threshold must be met in order to trigger a scaling action.
    operator String
    The operator used to evaluate the threshold against the current metric value. Valid values: "gt" (greater than), "get" (greater-than or equal), "lt" (less than), "lte" (less than or equal).
    period Number
    Amount of time (seconds) for which the threshold must be met in order to trigger the scaling action.
    source String
    Specifies a valid partial or full URL to an existing Persistent Disk resource. This field is only applicable for persistent disks.
    statistic String
    Statistic by which to evaluate the selected metric. Valid values: "AVERAGE", "SAMPLE_COUNT", "SUM", "MINIMUM", "MAXIMUM", "PERCENTILE", "COUNT".

    ElastigroupScalingDownPolicyDimension, ElastigroupScalingDownPolicyDimensionArgs

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

    ElastigroupScalingUpPolicy, ElastigroupScalingUpPolicyArgs

    MetricName string
    Metric to monitor. Valid values: "Percentage CPU", "Network In", "Network Out", "Disk Read Bytes", "Disk Write Bytes", "Disk Write Operations/Sec", "Disk Read Operations/Sec".
    Namespace string
    PolicyName string
    Name of scaling policy.
    Threshold double
    The value at which the scaling action is triggered.
    Unit string
    ActionType string
    Type of scaling action to take when the scaling policy is triggered. Valid values: "adjustment", "setMinTarget", "updateCapacity", "percentageAdjustment"
    Adjustment int
    Value to which the action type will be adjusted. Required if using "numeric" or "percentageAdjustment" action types.
    Cooldown int
    Time (seconds) to wait after a scaling action before resuming monitoring.
    Dimensions List<Pulumi.SpotInst.Gcp.Inputs.ElastigroupScalingUpPolicyDimension>
    A list of dimensions describing qualities of the metric.
    EvaluationPeriods int
    Number of consecutive periods in which the threshold must be met in order to trigger a scaling action.
    Operator string
    The operator used to evaluate the threshold against the current metric value. Valid values: "gt" (greater than), "get" (greater-than or equal), "lt" (less than), "lte" (less than or equal).
    Period int
    Amount of time (seconds) for which the threshold must be met in order to trigger the scaling action.
    Source string
    Specifies a valid partial or full URL to an existing Persistent Disk resource. This field is only applicable for persistent disks.
    Statistic string
    Statistic by which to evaluate the selected metric. Valid values: "AVERAGE", "SAMPLE_COUNT", "SUM", "MINIMUM", "MAXIMUM", "PERCENTILE", "COUNT".
    MetricName string
    Metric to monitor. Valid values: "Percentage CPU", "Network In", "Network Out", "Disk Read Bytes", "Disk Write Bytes", "Disk Write Operations/Sec", "Disk Read Operations/Sec".
    Namespace string
    PolicyName string
    Name of scaling policy.
    Threshold float64
    The value at which the scaling action is triggered.
    Unit string
    ActionType string
    Type of scaling action to take when the scaling policy is triggered. Valid values: "adjustment", "setMinTarget", "updateCapacity", "percentageAdjustment"
    Adjustment int
    Value to which the action type will be adjusted. Required if using "numeric" or "percentageAdjustment" action types.
    Cooldown int
    Time (seconds) to wait after a scaling action before resuming monitoring.
    Dimensions []ElastigroupScalingUpPolicyDimension
    A list of dimensions describing qualities of the metric.
    EvaluationPeriods int
    Number of consecutive periods in which the threshold must be met in order to trigger a scaling action.
    Operator string
    The operator used to evaluate the threshold against the current metric value. Valid values: "gt" (greater than), "get" (greater-than or equal), "lt" (less than), "lte" (less than or equal).
    Period int
    Amount of time (seconds) for which the threshold must be met in order to trigger the scaling action.
    Source string
    Specifies a valid partial or full URL to an existing Persistent Disk resource. This field is only applicable for persistent disks.
    Statistic string
    Statistic by which to evaluate the selected metric. Valid values: "AVERAGE", "SAMPLE_COUNT", "SUM", "MINIMUM", "MAXIMUM", "PERCENTILE", "COUNT".
    metricName String
    Metric to monitor. Valid values: "Percentage CPU", "Network In", "Network Out", "Disk Read Bytes", "Disk Write Bytes", "Disk Write Operations/Sec", "Disk Read Operations/Sec".
    namespace String
    policyName String
    Name of scaling policy.
    threshold Double
    The value at which the scaling action is triggered.
    unit String
    actionType String
    Type of scaling action to take when the scaling policy is triggered. Valid values: "adjustment", "setMinTarget", "updateCapacity", "percentageAdjustment"
    adjustment Integer
    Value to which the action type will be adjusted. Required if using "numeric" or "percentageAdjustment" action types.
    cooldown Integer
    Time (seconds) to wait after a scaling action before resuming monitoring.
    dimensions List<ElastigroupScalingUpPolicyDimension>
    A list of dimensions describing qualities of the metric.
    evaluationPeriods Integer
    Number of consecutive periods in which the threshold must be met in order to trigger a scaling action.
    operator String
    The operator used to evaluate the threshold against the current metric value. Valid values: "gt" (greater than), "get" (greater-than or equal), "lt" (less than), "lte" (less than or equal).
    period Integer
    Amount of time (seconds) for which the threshold must be met in order to trigger the scaling action.
    source String
    Specifies a valid partial or full URL to an existing Persistent Disk resource. This field is only applicable for persistent disks.
    statistic String
    Statistic by which to evaluate the selected metric. Valid values: "AVERAGE", "SAMPLE_COUNT", "SUM", "MINIMUM", "MAXIMUM", "PERCENTILE", "COUNT".
    metricName string
    Metric to monitor. Valid values: "Percentage CPU", "Network In", "Network Out", "Disk Read Bytes", "Disk Write Bytes", "Disk Write Operations/Sec", "Disk Read Operations/Sec".
    namespace string
    policyName string
    Name of scaling policy.
    threshold number
    The value at which the scaling action is triggered.
    unit string
    actionType string
    Type of scaling action to take when the scaling policy is triggered. Valid values: "adjustment", "setMinTarget", "updateCapacity", "percentageAdjustment"
    adjustment number
    Value to which the action type will be adjusted. Required if using "numeric" or "percentageAdjustment" action types.
    cooldown number
    Time (seconds) to wait after a scaling action before resuming monitoring.
    dimensions ElastigroupScalingUpPolicyDimension[]
    A list of dimensions describing qualities of the metric.
    evaluationPeriods number
    Number of consecutive periods in which the threshold must be met in order to trigger a scaling action.
    operator string
    The operator used to evaluate the threshold against the current metric value. Valid values: "gt" (greater than), "get" (greater-than or equal), "lt" (less than), "lte" (less than or equal).
    period number
    Amount of time (seconds) for which the threshold must be met in order to trigger the scaling action.
    source string
    Specifies a valid partial or full URL to an existing Persistent Disk resource. This field is only applicable for persistent disks.
    statistic string
    Statistic by which to evaluate the selected metric. Valid values: "AVERAGE", "SAMPLE_COUNT", "SUM", "MINIMUM", "MAXIMUM", "PERCENTILE", "COUNT".
    metric_name str
    Metric to monitor. Valid values: "Percentage CPU", "Network In", "Network Out", "Disk Read Bytes", "Disk Write Bytes", "Disk Write Operations/Sec", "Disk Read Operations/Sec".
    namespace str
    policy_name str
    Name of scaling policy.
    threshold float
    The value at which the scaling action is triggered.
    unit str
    action_type str
    Type of scaling action to take when the scaling policy is triggered. Valid values: "adjustment", "setMinTarget", "updateCapacity", "percentageAdjustment"
    adjustment int
    Value to which the action type will be adjusted. Required if using "numeric" or "percentageAdjustment" action types.
    cooldown int
    Time (seconds) to wait after a scaling action before resuming monitoring.
    dimensions Sequence[ElastigroupScalingUpPolicyDimension]
    A list of dimensions describing qualities of the metric.
    evaluation_periods int
    Number of consecutive periods in which the threshold must be met in order to trigger a scaling action.
    operator str
    The operator used to evaluate the threshold against the current metric value. Valid values: "gt" (greater than), "get" (greater-than or equal), "lt" (less than), "lte" (less than or equal).
    period int
    Amount of time (seconds) for which the threshold must be met in order to trigger the scaling action.
    source str
    Specifies a valid partial or full URL to an existing Persistent Disk resource. This field is only applicable for persistent disks.
    statistic str
    Statistic by which to evaluate the selected metric. Valid values: "AVERAGE", "SAMPLE_COUNT", "SUM", "MINIMUM", "MAXIMUM", "PERCENTILE", "COUNT".
    metricName String
    Metric to monitor. Valid values: "Percentage CPU", "Network In", "Network Out", "Disk Read Bytes", "Disk Write Bytes", "Disk Write Operations/Sec", "Disk Read Operations/Sec".
    namespace String
    policyName String
    Name of scaling policy.
    threshold Number
    The value at which the scaling action is triggered.
    unit String
    actionType String
    Type of scaling action to take when the scaling policy is triggered. Valid values: "adjustment", "setMinTarget", "updateCapacity", "percentageAdjustment"
    adjustment Number
    Value to which the action type will be adjusted. Required if using "numeric" or "percentageAdjustment" action types.
    cooldown Number
    Time (seconds) to wait after a scaling action before resuming monitoring.
    dimensions List<Property Map>
    A list of dimensions describing qualities of the metric.
    evaluationPeriods Number
    Number of consecutive periods in which the threshold must be met in order to trigger a scaling action.
    operator String
    The operator used to evaluate the threshold against the current metric value. Valid values: "gt" (greater than), "get" (greater-than or equal), "lt" (less than), "lte" (less than or equal).
    period Number
    Amount of time (seconds) for which the threshold must be met in order to trigger the scaling action.
    source String
    Specifies a valid partial or full URL to an existing Persistent Disk resource. This field is only applicable for persistent disks.
    statistic String
    Statistic by which to evaluate the selected metric. Valid values: "AVERAGE", "SAMPLE_COUNT", "SUM", "MINIMUM", "MAXIMUM", "PERCENTILE", "COUNT".

    ElastigroupScalingUpPolicyDimension, ElastigroupScalingUpPolicyDimensionArgs

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

    ElastigroupScheduledTask, ElastigroupScheduledTaskArgs

    TaskType string
    The task type to run. Valid values: "setCapacity".
    CronExpression string
    A valid cron expression. The cron is running in UTC time zone and is in Unix cron format.
    IsEnabled bool
    Setting the task to being enabled or disabled.
    MaxCapacity string

    The maximum number of instances the group should have.

    Usage:

    MinCapacity string
    The minimum number of instances the group should have.
    TargetCapacity string
    The desired number of instances the group should have.
    TaskType string
    The task type to run. Valid values: "setCapacity".
    CronExpression string
    A valid cron expression. The cron is running in UTC time zone and is in Unix cron format.
    IsEnabled bool
    Setting the task to being enabled or disabled.
    MaxCapacity string

    The maximum number of instances the group should have.

    Usage:

    MinCapacity string
    The minimum number of instances the group should have.
    TargetCapacity string
    The desired number of instances the group should have.
    taskType String
    The task type to run. Valid values: "setCapacity".
    cronExpression String
    A valid cron expression. The cron is running in UTC time zone and is in Unix cron format.
    isEnabled Boolean
    Setting the task to being enabled or disabled.
    maxCapacity String

    The maximum number of instances the group should have.

    Usage:

    minCapacity String
    The minimum number of instances the group should have.
    targetCapacity String
    The desired number of instances the group should have.
    taskType string
    The task type to run. Valid values: "setCapacity".
    cronExpression string
    A valid cron expression. The cron is running in UTC time zone and is in Unix cron format.
    isEnabled boolean
    Setting the task to being enabled or disabled.
    maxCapacity string

    The maximum number of instances the group should have.

    Usage:

    minCapacity string
    The minimum number of instances the group should have.
    targetCapacity string
    The desired number of instances the group should have.
    task_type str
    The task type to run. Valid values: "setCapacity".
    cron_expression str
    A valid cron expression. The cron is running in UTC time zone and is in Unix cron format.
    is_enabled bool
    Setting the task to being enabled or disabled.
    max_capacity str

    The maximum number of instances the group should have.

    Usage:

    min_capacity str
    The minimum number of instances the group should have.
    target_capacity str
    The desired number of instances the group should have.
    taskType String
    The task type to run. Valid values: "setCapacity".
    cronExpression String
    A valid cron expression. The cron is running in UTC time zone and is in Unix cron format.
    isEnabled Boolean
    Setting the task to being enabled or disabled.
    maxCapacity String

    The maximum number of instances the group should have.

    Usage:

    minCapacity String
    The minimum number of instances the group should have.
    targetCapacity String
    The desired number of instances the group should have.

    ElastigroupSubnet, ElastigroupSubnetArgs

    Region string
    The region for the group of subnets.
    SubnetNames List<string>
    The names of the subnets in the region.
    Region string
    The region for the group of subnets.
    SubnetNames []string
    The names of the subnets in the region.
    region String
    The region for the group of subnets.
    subnetNames List<String>
    The names of the subnets in the region.
    region string
    The region for the group of subnets.
    subnetNames string[]
    The names of the subnets in the region.
    region str
    The region for the group of subnets.
    subnet_names Sequence[str]
    The names of the subnets in the region.
    region String
    The region for the group of subnets.
    subnetNames List<String>
    The names of the subnets in the region.

    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.75.0 published on Monday, Apr 22, 2024 by Pulumi