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

spotinst.gcp.Elastigroup

Explore with Pulumi AI

spotinst logo
Spotinst v3.76.0 published on Wednesday, Apr 24, 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 spotinstElastigroupResource = new SpotInst.Gcp.Elastigroup("spotinstElastigroupResource", 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, "spotinstElastigroupResource", &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 spotinstElastigroupResource = new Elastigroup("spotinstElastigroupResource", 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());
    
    spotinst_elastigroup_resource = spotinst.gcp.Elastigroup("spotinstElastigroupResource",
        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 spotinstElastigroupResource = new spotinst.gcp.Elastigroup("spotinstElastigroupResource", {
        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
    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>
    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>
    HealthCheckGracePeriod int
    HealthCheckType string
    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
    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>
    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>
    ScalingUpPolicies List<Pulumi.SpotInst.Gcp.Inputs.ElastigroupScalingUpPolicy>
    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
    DesiredCapacity int
    The desired number of instances the group should have at any time.
    AutoHealing bool
    AvailabilityZones []string
    List of availability zones for the group.

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

    BackendServices []ElastigroupBackendServiceArgs
    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
    HealthCheckGracePeriod int
    HealthCheckType string
    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
    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
    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
    ScalingUpPolicies []ElastigroupScalingUpPolicyArgs
    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
    desiredCapacity Integer
    The desired number of instances the group should have at any time.
    autoHealing Boolean
    availabilityZones List<String>
    List of availability zones for the group.

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

    backendServices List<ElastigroupBackendService>
    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>
    healthCheckGracePeriod Integer
    healthCheckType String
    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
    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>
    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>
    scalingUpPolicies List<ElastigroupScalingUpPolicy>
    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
    desiredCapacity number
    The desired number of instances the group should have at any time.
    autoHealing boolean
    availabilityZones string[]
    List of availability zones for the group.

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

    backendServices ElastigroupBackendService[]
    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[]
    healthCheckGracePeriod number
    healthCheckType string
    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
    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[]
    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[]
    scalingUpPolicies ElastigroupScalingUpPolicy[]
    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
    desired_capacity int
    The desired number of instances the group should have at any time.
    auto_healing bool
    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]
    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]
    health_check_grace_period int
    health_check_type str
    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
    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]
    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]
    scaling_up_policies Sequence[ElastigroupScalingUpPolicyArgs]
    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
    desiredCapacity Number
    The desired number of instances the group should have at any time.
    autoHealing Boolean
    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>
    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>
    healthCheckGracePeriod Number
    healthCheckType String
    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
    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>
    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>
    scalingUpPolicies List<Property Map>
    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

    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
    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>
    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>
    HealthCheckGracePeriod int
    HealthCheckType string
    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
    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>
    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>
    ScalingUpPolicies List<Pulumi.SpotInst.Gcp.Inputs.ElastigroupScalingUpPolicy>
    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
    AutoHealing bool
    AvailabilityZones []string
    List of availability zones for the group.

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

    BackendServices []ElastigroupBackendServiceArgs
    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
    HealthCheckGracePeriod int
    HealthCheckType string
    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
    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
    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
    ScalingUpPolicies []ElastigroupScalingUpPolicyArgs
    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
    autoHealing Boolean
    availabilityZones List<String>
    List of availability zones for the group.

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

    backendServices List<ElastigroupBackendService>
    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>
    healthCheckGracePeriod Integer
    healthCheckType String
    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
    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>
    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>
    scalingUpPolicies List<ElastigroupScalingUpPolicy>
    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
    autoHealing boolean
    availabilityZones string[]
    List of availability zones for the group.

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

    backendServices ElastigroupBackendService[]
    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[]
    healthCheckGracePeriod number
    healthCheckType string
    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
    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[]
    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[]
    scalingUpPolicies ElastigroupScalingUpPolicy[]
    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
    auto_healing bool
    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]
    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]
    health_check_grace_period int
    health_check_type str
    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
    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]
    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]
    scaling_up_policies Sequence[ElastigroupScalingUpPolicyArgs]
    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
    autoHealing Boolean
    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>
    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>
    healthCheckGracePeriod Number
    healthCheckType String
    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
    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>
    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>
    scalingUpPolicies List<Property Map>
    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

    Supporting Types

    ElastigroupBackendService, ElastigroupBackendServiceArgs

    ElastigroupBackendServiceNamedPort, ElastigroupBackendServiceNamedPortArgs

    Name string
    The group name.
    Ports List<string>
    Name string
    The group name.
    Ports []string
    name String
    The group name.
    ports List<String>
    name string
    The group name.
    ports string[]
    name str
    The group name.
    ports Sequence[str]
    name String
    The group name.
    ports List<String>

    ElastigroupDisk, ElastigroupDiskArgs

    ElastigroupDiskInitializeParam, ElastigroupDiskInitializeParamArgs

    SourceImage string
    DiskSizeGb string
    DiskType string
    SourceImage string
    DiskSizeGb string
    DiskType string
    sourceImage String
    diskSizeGb String
    diskType String
    sourceImage string
    diskSizeGb string
    diskType string
    sourceImage String
    diskSizeGb String
    diskType String

    ElastigroupGpu, ElastigroupGpuArgs

    Count int
    Type string
    Count int
    Type string
    count Integer
    type String
    count number
    type string
    count int
    type str
    count Number
    type String

    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
    masterPort Integer
    masterHost string
    masterPort number
    masterHost String
    masterPort Number

    ElastigroupIntegrationGke, ElastigroupIntegrationGkeArgs

    ElastigroupIntegrationGkeAutoscaleDown, ElastigroupIntegrationGkeAutoscaleDownArgs

    ElastigroupIntegrationGkeAutoscaleHeadroom, ElastigroupIntegrationGkeAutoscaleHeadroomArgs

    cpuPerUnit Integer
    memoryPerUnit Integer
    numOfUnits Integer

    ElastigroupIntegrationGkeAutoscaleLabel, ElastigroupIntegrationGkeAutoscaleLabelArgs

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

    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
    Metadata key.
    Value string
    Metadata value.
    Key string
    Metadata key.
    Value string
    Metadata value.
    key String
    Metadata key.
    value String
    Metadata value.
    key string
    Metadata key.
    value string
    Metadata value.
    key str
    Metadata key.
    value str
    Metadata value.
    key String
    Metadata key.
    value String
    Metadata value.

    ElastigroupNetworkInterface, ElastigroupNetworkInterfaceArgs

    ElastigroupNetworkInterfaceAccessConfig, ElastigroupNetworkInterfaceAccessConfigArgs

    Name string
    The group name.
    Type string
    Name string
    The group name.
    Type string
    name String
    The group name.
    type String
    name string
    The group name.
    type string
    name str
    The group name.
    type str
    name String
    The group name.
    type String

    ElastigroupNetworkInterfaceAliasIpRange, ElastigroupNetworkInterfaceAliasIpRangeArgs

    ElastigroupScalingDownPolicy, ElastigroupScalingDownPolicyArgs

    ElastigroupScalingDownPolicyDimension, ElastigroupScalingDownPolicyDimensionArgs

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

    ElastigroupScalingUpPolicy, ElastigroupScalingUpPolicyArgs

    ElastigroupScalingUpPolicyDimension, ElastigroupScalingUpPolicyDimensionArgs

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

    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.76.0 published on Wednesday, Apr 24, 2024 by Pulumi