gcp.workstations.WorkstationConfig
Explore with Pulumi AI
Example Usage
Workstation Config Basic
import * as pulumi from "@pulumi/pulumi";
import * as gcp from "@pulumi/gcp";
const tagKey1 = new gcp.tags.TagKey("tag_key1", {
    parent: "organizations/123456789",
    shortName: "keyname",
});
const tagValue1 = new gcp.tags.TagValue("tag_value1", {
    parent: tagKey1.id,
    shortName: "valuename",
});
const _default = new gcp.compute.Network("default", {
    name: "workstation-cluster",
    autoCreateSubnetworks: false,
});
const defaultSubnetwork = new gcp.compute.Subnetwork("default", {
    name: "workstation-cluster",
    ipCidrRange: "10.0.0.0/24",
    region: "us-central1",
    network: _default.name,
});
const defaultWorkstationCluster = new gcp.workstations.WorkstationCluster("default", {
    workstationClusterId: "workstation-cluster",
    network: _default.id,
    subnetwork: defaultSubnetwork.id,
    location: "us-central1",
    labels: {
        label: "key",
    },
    annotations: {
        "label-one": "value-one",
    },
});
const defaultWorkstationConfig = new gcp.workstations.WorkstationConfig("default", {
    workstationConfigId: "workstation-config",
    workstationClusterId: defaultWorkstationCluster.workstationClusterId,
    location: "us-central1",
    idleTimeout: "600s",
    runningTimeout: "21600s",
    replicaZones: [
        "us-central1-a",
        "us-central1-b",
    ],
    annotations: {
        "label-one": "value-one",
    },
    labels: {
        label: "key",
    },
    maxUsableWorkstations: 1,
    host: {
        gceInstance: {
            machineType: "e2-standard-4",
            bootDiskSizeGb: 35,
            disablePublicIpAddresses: true,
            disableSsh: false,
            vmTags: pulumi.all([tagKey1.id, tagValue1.id]).apply(([tagKey1Id, tagValue1Id]) => {
                [tagKey1Id]: tagValue1Id,
            }),
        },
    },
});
import pulumi
import pulumi_gcp as gcp
tag_key1 = gcp.tags.TagKey("tag_key1",
    parent="organizations/123456789",
    short_name="keyname")
tag_value1 = gcp.tags.TagValue("tag_value1",
    parent=tag_key1.id,
    short_name="valuename")
default = gcp.compute.Network("default",
    name="workstation-cluster",
    auto_create_subnetworks=False)
default_subnetwork = gcp.compute.Subnetwork("default",
    name="workstation-cluster",
    ip_cidr_range="10.0.0.0/24",
    region="us-central1",
    network=default.name)
default_workstation_cluster = gcp.workstations.WorkstationCluster("default",
    workstation_cluster_id="workstation-cluster",
    network=default.id,
    subnetwork=default_subnetwork.id,
    location="us-central1",
    labels={
        "label": "key",
    },
    annotations={
        "label-one": "value-one",
    })
default_workstation_config = gcp.workstations.WorkstationConfig("default",
    workstation_config_id="workstation-config",
    workstation_cluster_id=default_workstation_cluster.workstation_cluster_id,
    location="us-central1",
    idle_timeout="600s",
    running_timeout="21600s",
    replica_zones=[
        "us-central1-a",
        "us-central1-b",
    ],
    annotations={
        "label-one": "value-one",
    },
    labels={
        "label": "key",
    },
    max_usable_workstations=1,
    host={
        "gce_instance": {
            "machine_type": "e2-standard-4",
            "boot_disk_size_gb": 35,
            "disable_public_ip_addresses": True,
            "disable_ssh": False,
            "vm_tags": pulumi.Output.all(
                tagKey1Id=tag_key1.id,
                tagValue1Id=tag_value1.id
).apply(lambda resolved_outputs: {
                resolved_outputs['tagKey1Id']: resolved_outputs['tagValue1Id'],
            })
,
        },
    })
package main
import (
	"github.com/pulumi/pulumi-gcp/sdk/v8/go/gcp/compute"
	"github.com/pulumi/pulumi-gcp/sdk/v8/go/gcp/tags"
	"github.com/pulumi/pulumi-gcp/sdk/v8/go/gcp/workstations"
	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
tagKey1, err := tags.NewTagKey(ctx, "tag_key1", &tags.TagKeyArgs{
Parent: pulumi.String("organizations/123456789"),
ShortName: pulumi.String("keyname"),
})
if err != nil {
return err
}
tagValue1, err := tags.NewTagValue(ctx, "tag_value1", &tags.TagValueArgs{
Parent: tagKey1.ID(),
ShortName: pulumi.String("valuename"),
})
if err != nil {
return err
}
_default, err := compute.NewNetwork(ctx, "default", &compute.NetworkArgs{
Name: pulumi.String("workstation-cluster"),
AutoCreateSubnetworks: pulumi.Bool(false),
})
if err != nil {
return err
}
defaultSubnetwork, err := compute.NewSubnetwork(ctx, "default", &compute.SubnetworkArgs{
Name: pulumi.String("workstation-cluster"),
IpCidrRange: pulumi.String("10.0.0.0/24"),
Region: pulumi.String("us-central1"),
Network: _default.Name,
})
if err != nil {
return err
}
defaultWorkstationCluster, err := workstations.NewWorkstationCluster(ctx, "default", &workstations.WorkstationClusterArgs{
WorkstationClusterId: pulumi.String("workstation-cluster"),
Network: _default.ID(),
Subnetwork: defaultSubnetwork.ID(),
Location: pulumi.String("us-central1"),
Labels: pulumi.StringMap{
"label": pulumi.String("key"),
},
Annotations: pulumi.StringMap{
"label-one": pulumi.String("value-one"),
},
})
if err != nil {
return err
}
_, err = workstations.NewWorkstationConfig(ctx, "default", &workstations.WorkstationConfigArgs{
WorkstationConfigId: pulumi.String("workstation-config"),
WorkstationClusterId: defaultWorkstationCluster.WorkstationClusterId,
Location: pulumi.String("us-central1"),
IdleTimeout: pulumi.String("600s"),
RunningTimeout: pulumi.String("21600s"),
ReplicaZones: pulumi.StringArray{
pulumi.String("us-central1-a"),
pulumi.String("us-central1-b"),
},
Annotations: pulumi.StringMap{
"label-one": pulumi.String("value-one"),
},
Labels: pulumi.StringMap{
"label": pulumi.String("key"),
},
MaxUsableWorkstations: pulumi.Int(1),
Host: &workstations.WorkstationConfigHostArgs{
GceInstance: &workstations.WorkstationConfigHostGceInstanceArgs{
MachineType: pulumi.String("e2-standard-4"),
BootDiskSizeGb: pulumi.Int(35),
DisablePublicIpAddresses: pulumi.Bool(true),
DisableSsh: pulumi.Bool(false),
VmTags: pulumi.All(tagKey1.ID(),tagValue1.ID()).ApplyT(func(_args []interface{}) (map[string]string, error) {
tagKey1Id := _args[0].(string)
tagValue1Id := _args[1].(string)
return map[string]string{
tagKey1Id: tagValue1Id,
}, nil
}).(pulumi.Map[string]stringOutput),
},
},
})
if err != nil {
return err
}
return nil
})
}
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Gcp = Pulumi.Gcp;
return await Deployment.RunAsync(() => 
{
    var tagKey1 = new Gcp.Tags.TagKey("tag_key1", new()
    {
        Parent = "organizations/123456789",
        ShortName = "keyname",
    });
    var tagValue1 = new Gcp.Tags.TagValue("tag_value1", new()
    {
        Parent = tagKey1.Id,
        ShortName = "valuename",
    });
    var @default = new Gcp.Compute.Network("default", new()
    {
        Name = "workstation-cluster",
        AutoCreateSubnetworks = false,
    });
    var defaultSubnetwork = new Gcp.Compute.Subnetwork("default", new()
    {
        Name = "workstation-cluster",
        IpCidrRange = "10.0.0.0/24",
        Region = "us-central1",
        Network = @default.Name,
    });
    var defaultWorkstationCluster = new Gcp.Workstations.WorkstationCluster("default", new()
    {
        WorkstationClusterId = "workstation-cluster",
        Network = @default.Id,
        Subnetwork = defaultSubnetwork.Id,
        Location = "us-central1",
        Labels = 
        {
            { "label", "key" },
        },
        Annotations = 
        {
            { "label-one", "value-one" },
        },
    });
    var defaultWorkstationConfig = new Gcp.Workstations.WorkstationConfig("default", new()
    {
        WorkstationConfigId = "workstation-config",
        WorkstationClusterId = defaultWorkstationCluster.WorkstationClusterId,
        Location = "us-central1",
        IdleTimeout = "600s",
        RunningTimeout = "21600s",
        ReplicaZones = new[]
        {
            "us-central1-a",
            "us-central1-b",
        },
        Annotations = 
        {
            { "label-one", "value-one" },
        },
        Labels = 
        {
            { "label", "key" },
        },
        MaxUsableWorkstations = 1,
        Host = new Gcp.Workstations.Inputs.WorkstationConfigHostArgs
        {
            GceInstance = new Gcp.Workstations.Inputs.WorkstationConfigHostGceInstanceArgs
            {
                MachineType = "e2-standard-4",
                BootDiskSizeGb = 35,
                DisablePublicIpAddresses = true,
                DisableSsh = false,
                VmTags = Output.Tuple(tagKey1.Id, tagValue1.Id).Apply(values =>
                {
                    var tagKey1Id = values.Item1;
                    var tagValue1Id = values.Item2;
                    return 
                    {
                        { tagKey1Id, tagValue1Id },
                    };
                }),
            },
        },
    });
});
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.gcp.tags.TagKey;
import com.pulumi.gcp.tags.TagKeyArgs;
import com.pulumi.gcp.tags.TagValue;
import com.pulumi.gcp.tags.TagValueArgs;
import com.pulumi.gcp.compute.Network;
import com.pulumi.gcp.compute.NetworkArgs;
import com.pulumi.gcp.compute.Subnetwork;
import com.pulumi.gcp.compute.SubnetworkArgs;
import com.pulumi.gcp.workstations.WorkstationCluster;
import com.pulumi.gcp.workstations.WorkstationClusterArgs;
import com.pulumi.gcp.workstations.WorkstationConfig;
import com.pulumi.gcp.workstations.WorkstationConfigArgs;
import com.pulumi.gcp.workstations.inputs.WorkstationConfigHostArgs;
import com.pulumi.gcp.workstations.inputs.WorkstationConfigHostGceInstanceArgs;
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 tagKey1 = new TagKey("tagKey1", TagKeyArgs.builder()
            .parent("organizations/123456789")
            .shortName("keyname")
            .build());
        var tagValue1 = new TagValue("tagValue1", TagValueArgs.builder()
            .parent(tagKey1.id())
            .shortName("valuename")
            .build());
        var default_ = new Network("default", NetworkArgs.builder()
            .name("workstation-cluster")
            .autoCreateSubnetworks(false)
            .build());
        var defaultSubnetwork = new Subnetwork("defaultSubnetwork", SubnetworkArgs.builder()
            .name("workstation-cluster")
            .ipCidrRange("10.0.0.0/24")
            .region("us-central1")
            .network(default_.name())
            .build());
        var defaultWorkstationCluster = new WorkstationCluster("defaultWorkstationCluster", WorkstationClusterArgs.builder()
            .workstationClusterId("workstation-cluster")
            .network(default_.id())
            .subnetwork(defaultSubnetwork.id())
            .location("us-central1")
            .labels(Map.of("label", "key"))
            .annotations(Map.of("label-one", "value-one"))
            .build());
        var defaultWorkstationConfig = new WorkstationConfig("defaultWorkstationConfig", WorkstationConfigArgs.builder()
            .workstationConfigId("workstation-config")
            .workstationClusterId(defaultWorkstationCluster.workstationClusterId())
            .location("us-central1")
            .idleTimeout("600s")
            .runningTimeout("21600s")
            .replicaZones(            
                "us-central1-a",
                "us-central1-b")
            .annotations(Map.of("label-one", "value-one"))
            .labels(Map.of("label", "key"))
            .maxUsableWorkstations(1)
            .host(WorkstationConfigHostArgs.builder()
                .gceInstance(WorkstationConfigHostGceInstanceArgs.builder()
                    .machineType("e2-standard-4")
                    .bootDiskSizeGb(35)
                    .disablePublicIpAddresses(true)
                    .disableSsh(false)
                    .vmTags(Output.tuple(tagKey1.id(), tagValue1.id()).applyValue(values -> {
                        var tagKey1Id = values.t1;
                        var tagValue1Id = values.t2;
                        return Map.of(tagKey1Id, tagValue1Id);
                    }))
                    .build())
                .build())
            .build());
    }
}
resources:
  tagKey1:
    type: gcp:tags:TagKey
    name: tag_key1
    properties:
      parent: organizations/123456789
      shortName: keyname
  tagValue1:
    type: gcp:tags:TagValue
    name: tag_value1
    properties:
      parent: ${tagKey1.id}
      shortName: valuename
  default:
    type: gcp:compute:Network
    properties:
      name: workstation-cluster
      autoCreateSubnetworks: false
  defaultSubnetwork:
    type: gcp:compute:Subnetwork
    name: default
    properties:
      name: workstation-cluster
      ipCidrRange: 10.0.0.0/24
      region: us-central1
      network: ${default.name}
  defaultWorkstationCluster:
    type: gcp:workstations:WorkstationCluster
    name: default
    properties:
      workstationClusterId: workstation-cluster
      network: ${default.id}
      subnetwork: ${defaultSubnetwork.id}
      location: us-central1
      labels:
        label: key
      annotations:
        label-one: value-one
  defaultWorkstationConfig:
    type: gcp:workstations:WorkstationConfig
    name: default
    properties:
      workstationConfigId: workstation-config
      workstationClusterId: ${defaultWorkstationCluster.workstationClusterId}
      location: us-central1
      idleTimeout: 600s
      runningTimeout: 21600s
      replicaZones:
        - us-central1-a
        - us-central1-b
      annotations:
        label-one: value-one
      labels:
        label: key
      maxUsableWorkstations: 1
      host:
        gceInstance:
          machineType: e2-standard-4
          bootDiskSizeGb: 35
          disablePublicIpAddresses: true
          disableSsh: false
          vmTags:
            ${tagKey1.id}: ${tagValue1.id}
Workstation Config Container
import * as pulumi from "@pulumi/pulumi";
import * as gcp from "@pulumi/gcp";
const _default = new gcp.compute.Network("default", {
    name: "workstation-cluster",
    autoCreateSubnetworks: false,
});
const defaultSubnetwork = new gcp.compute.Subnetwork("default", {
    name: "workstation-cluster",
    ipCidrRange: "10.0.0.0/24",
    region: "us-central1",
    network: _default.name,
});
const defaultWorkstationCluster = new gcp.workstations.WorkstationCluster("default", {
    workstationClusterId: "workstation-cluster",
    network: _default.id,
    subnetwork: defaultSubnetwork.id,
    location: "us-central1",
    labels: {
        label: "key",
    },
    annotations: {
        "label-one": "value-one",
    },
});
const defaultWorkstationConfig = new gcp.workstations.WorkstationConfig("default", {
    workstationConfigId: "workstation-config",
    workstationClusterId: defaultWorkstationCluster.workstationClusterId,
    location: "us-central1",
    host: {
        gceInstance: {
            machineType: "n1-standard-4",
            bootDiskSizeGb: 35,
            disablePublicIpAddresses: true,
            enableNestedVirtualization: true,
        },
    },
    container: {
        image: "intellij",
        env: {
            NAME: "FOO",
            BABE: "bar",
        },
    },
});
import pulumi
import pulumi_gcp as gcp
default = gcp.compute.Network("default",
    name="workstation-cluster",
    auto_create_subnetworks=False)
default_subnetwork = gcp.compute.Subnetwork("default",
    name="workstation-cluster",
    ip_cidr_range="10.0.0.0/24",
    region="us-central1",
    network=default.name)
default_workstation_cluster = gcp.workstations.WorkstationCluster("default",
    workstation_cluster_id="workstation-cluster",
    network=default.id,
    subnetwork=default_subnetwork.id,
    location="us-central1",
    labels={
        "label": "key",
    },
    annotations={
        "label-one": "value-one",
    })
default_workstation_config = gcp.workstations.WorkstationConfig("default",
    workstation_config_id="workstation-config",
    workstation_cluster_id=default_workstation_cluster.workstation_cluster_id,
    location="us-central1",
    host={
        "gce_instance": {
            "machine_type": "n1-standard-4",
            "boot_disk_size_gb": 35,
            "disable_public_ip_addresses": True,
            "enable_nested_virtualization": True,
        },
    },
    container={
        "image": "intellij",
        "env": {
            "NAME": "FOO",
            "BABE": "bar",
        },
    })
package main
import (
	"github.com/pulumi/pulumi-gcp/sdk/v8/go/gcp/compute"
	"github.com/pulumi/pulumi-gcp/sdk/v8/go/gcp/workstations"
	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_default, err := compute.NewNetwork(ctx, "default", &compute.NetworkArgs{
			Name:                  pulumi.String("workstation-cluster"),
			AutoCreateSubnetworks: pulumi.Bool(false),
		})
		if err != nil {
			return err
		}
		defaultSubnetwork, err := compute.NewSubnetwork(ctx, "default", &compute.SubnetworkArgs{
			Name:        pulumi.String("workstation-cluster"),
			IpCidrRange: pulumi.String("10.0.0.0/24"),
			Region:      pulumi.String("us-central1"),
			Network:     _default.Name,
		})
		if err != nil {
			return err
		}
		defaultWorkstationCluster, err := workstations.NewWorkstationCluster(ctx, "default", &workstations.WorkstationClusterArgs{
			WorkstationClusterId: pulumi.String("workstation-cluster"),
			Network:              _default.ID(),
			Subnetwork:           defaultSubnetwork.ID(),
			Location:             pulumi.String("us-central1"),
			Labels: pulumi.StringMap{
				"label": pulumi.String("key"),
			},
			Annotations: pulumi.StringMap{
				"label-one": pulumi.String("value-one"),
			},
		})
		if err != nil {
			return err
		}
		_, err = workstations.NewWorkstationConfig(ctx, "default", &workstations.WorkstationConfigArgs{
			WorkstationConfigId:  pulumi.String("workstation-config"),
			WorkstationClusterId: defaultWorkstationCluster.WorkstationClusterId,
			Location:             pulumi.String("us-central1"),
			Host: &workstations.WorkstationConfigHostArgs{
				GceInstance: &workstations.WorkstationConfigHostGceInstanceArgs{
					MachineType:                pulumi.String("n1-standard-4"),
					BootDiskSizeGb:             pulumi.Int(35),
					DisablePublicIpAddresses:   pulumi.Bool(true),
					EnableNestedVirtualization: pulumi.Bool(true),
				},
			},
			Container: &workstations.WorkstationConfigContainerArgs{
				Image: pulumi.String("intellij"),
				Env: pulumi.StringMap{
					"NAME": pulumi.String("FOO"),
					"BABE": pulumi.String("bar"),
				},
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Gcp = Pulumi.Gcp;
return await Deployment.RunAsync(() => 
{
    var @default = new Gcp.Compute.Network("default", new()
    {
        Name = "workstation-cluster",
        AutoCreateSubnetworks = false,
    });
    var defaultSubnetwork = new Gcp.Compute.Subnetwork("default", new()
    {
        Name = "workstation-cluster",
        IpCidrRange = "10.0.0.0/24",
        Region = "us-central1",
        Network = @default.Name,
    });
    var defaultWorkstationCluster = new Gcp.Workstations.WorkstationCluster("default", new()
    {
        WorkstationClusterId = "workstation-cluster",
        Network = @default.Id,
        Subnetwork = defaultSubnetwork.Id,
        Location = "us-central1",
        Labels = 
        {
            { "label", "key" },
        },
        Annotations = 
        {
            { "label-one", "value-one" },
        },
    });
    var defaultWorkstationConfig = new Gcp.Workstations.WorkstationConfig("default", new()
    {
        WorkstationConfigId = "workstation-config",
        WorkstationClusterId = defaultWorkstationCluster.WorkstationClusterId,
        Location = "us-central1",
        Host = new Gcp.Workstations.Inputs.WorkstationConfigHostArgs
        {
            GceInstance = new Gcp.Workstations.Inputs.WorkstationConfigHostGceInstanceArgs
            {
                MachineType = "n1-standard-4",
                BootDiskSizeGb = 35,
                DisablePublicIpAddresses = true,
                EnableNestedVirtualization = true,
            },
        },
        Container = new Gcp.Workstations.Inputs.WorkstationConfigContainerArgs
        {
            Image = "intellij",
            Env = 
            {
                { "NAME", "FOO" },
                { "BABE", "bar" },
            },
        },
    });
});
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.gcp.compute.Network;
import com.pulumi.gcp.compute.NetworkArgs;
import com.pulumi.gcp.compute.Subnetwork;
import com.pulumi.gcp.compute.SubnetworkArgs;
import com.pulumi.gcp.workstations.WorkstationCluster;
import com.pulumi.gcp.workstations.WorkstationClusterArgs;
import com.pulumi.gcp.workstations.WorkstationConfig;
import com.pulumi.gcp.workstations.WorkstationConfigArgs;
import com.pulumi.gcp.workstations.inputs.WorkstationConfigHostArgs;
import com.pulumi.gcp.workstations.inputs.WorkstationConfigHostGceInstanceArgs;
import com.pulumi.gcp.workstations.inputs.WorkstationConfigContainerArgs;
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 default_ = new Network("default", NetworkArgs.builder()
            .name("workstation-cluster")
            .autoCreateSubnetworks(false)
            .build());
        var defaultSubnetwork = new Subnetwork("defaultSubnetwork", SubnetworkArgs.builder()
            .name("workstation-cluster")
            .ipCidrRange("10.0.0.0/24")
            .region("us-central1")
            .network(default_.name())
            .build());
        var defaultWorkstationCluster = new WorkstationCluster("defaultWorkstationCluster", WorkstationClusterArgs.builder()
            .workstationClusterId("workstation-cluster")
            .network(default_.id())
            .subnetwork(defaultSubnetwork.id())
            .location("us-central1")
            .labels(Map.of("label", "key"))
            .annotations(Map.of("label-one", "value-one"))
            .build());
        var defaultWorkstationConfig = new WorkstationConfig("defaultWorkstationConfig", WorkstationConfigArgs.builder()
            .workstationConfigId("workstation-config")
            .workstationClusterId(defaultWorkstationCluster.workstationClusterId())
            .location("us-central1")
            .host(WorkstationConfigHostArgs.builder()
                .gceInstance(WorkstationConfigHostGceInstanceArgs.builder()
                    .machineType("n1-standard-4")
                    .bootDiskSizeGb(35)
                    .disablePublicIpAddresses(true)
                    .enableNestedVirtualization(true)
                    .build())
                .build())
            .container(WorkstationConfigContainerArgs.builder()
                .image("intellij")
                .env(Map.ofEntries(
                    Map.entry("NAME", "FOO"),
                    Map.entry("BABE", "bar")
                ))
                .build())
            .build());
    }
}
resources:
  default:
    type: gcp:compute:Network
    properties:
      name: workstation-cluster
      autoCreateSubnetworks: false
  defaultSubnetwork:
    type: gcp:compute:Subnetwork
    name: default
    properties:
      name: workstation-cluster
      ipCidrRange: 10.0.0.0/24
      region: us-central1
      network: ${default.name}
  defaultWorkstationCluster:
    type: gcp:workstations:WorkstationCluster
    name: default
    properties:
      workstationClusterId: workstation-cluster
      network: ${default.id}
      subnetwork: ${defaultSubnetwork.id}
      location: us-central1
      labels:
        label: key
      annotations:
        label-one: value-one
  defaultWorkstationConfig:
    type: gcp:workstations:WorkstationConfig
    name: default
    properties:
      workstationConfigId: workstation-config
      workstationClusterId: ${defaultWorkstationCluster.workstationClusterId}
      location: us-central1
      host:
        gceInstance:
          machineType: n1-standard-4
          bootDiskSizeGb: 35
          disablePublicIpAddresses: true
          enableNestedVirtualization: true
      container:
        image: intellij
        env:
          NAME: FOO
          BABE: bar
Workstation Config Persistent Directories
import * as pulumi from "@pulumi/pulumi";
import * as gcp from "@pulumi/gcp";
const _default = new gcp.compute.Network("default", {
    name: "workstation-cluster",
    autoCreateSubnetworks: false,
});
const defaultSubnetwork = new gcp.compute.Subnetwork("default", {
    name: "workstation-cluster",
    ipCidrRange: "10.0.0.0/24",
    region: "us-central1",
    network: _default.name,
});
const defaultWorkstationCluster = new gcp.workstations.WorkstationCluster("default", {
    workstationClusterId: "workstation-cluster",
    network: _default.id,
    subnetwork: defaultSubnetwork.id,
    location: "us-central1",
    labels: {
        label: "key",
    },
    annotations: {
        "label-one": "value-one",
    },
});
const defaultWorkstationConfig = new gcp.workstations.WorkstationConfig("default", {
    workstationConfigId: "workstation-config",
    workstationClusterId: defaultWorkstationCluster.workstationClusterId,
    location: "us-central1",
    host: {
        gceInstance: {
            machineType: "e2-standard-4",
            bootDiskSizeGb: 35,
            disablePublicIpAddresses: true,
            shieldedInstanceConfig: {
                enableSecureBoot: true,
                enableVtpm: true,
            },
        },
    },
    persistentDirectories: [{
        mountPath: "/home",
        gcePd: {
            sizeGb: 200,
            fsType: "ext4",
            diskType: "pd-standard",
            reclaimPolicy: "DELETE",
        },
    }],
});
import pulumi
import pulumi_gcp as gcp
default = gcp.compute.Network("default",
    name="workstation-cluster",
    auto_create_subnetworks=False)
default_subnetwork = gcp.compute.Subnetwork("default",
    name="workstation-cluster",
    ip_cidr_range="10.0.0.0/24",
    region="us-central1",
    network=default.name)
default_workstation_cluster = gcp.workstations.WorkstationCluster("default",
    workstation_cluster_id="workstation-cluster",
    network=default.id,
    subnetwork=default_subnetwork.id,
    location="us-central1",
    labels={
        "label": "key",
    },
    annotations={
        "label-one": "value-one",
    })
default_workstation_config = gcp.workstations.WorkstationConfig("default",
    workstation_config_id="workstation-config",
    workstation_cluster_id=default_workstation_cluster.workstation_cluster_id,
    location="us-central1",
    host={
        "gce_instance": {
            "machine_type": "e2-standard-4",
            "boot_disk_size_gb": 35,
            "disable_public_ip_addresses": True,
            "shielded_instance_config": {
                "enable_secure_boot": True,
                "enable_vtpm": True,
            },
        },
    },
    persistent_directories=[{
        "mount_path": "/home",
        "gce_pd": {
            "size_gb": 200,
            "fs_type": "ext4",
            "disk_type": "pd-standard",
            "reclaim_policy": "DELETE",
        },
    }])
package main
import (
	"github.com/pulumi/pulumi-gcp/sdk/v8/go/gcp/compute"
	"github.com/pulumi/pulumi-gcp/sdk/v8/go/gcp/workstations"
	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_default, err := compute.NewNetwork(ctx, "default", &compute.NetworkArgs{
			Name:                  pulumi.String("workstation-cluster"),
			AutoCreateSubnetworks: pulumi.Bool(false),
		})
		if err != nil {
			return err
		}
		defaultSubnetwork, err := compute.NewSubnetwork(ctx, "default", &compute.SubnetworkArgs{
			Name:        pulumi.String("workstation-cluster"),
			IpCidrRange: pulumi.String("10.0.0.0/24"),
			Region:      pulumi.String("us-central1"),
			Network:     _default.Name,
		})
		if err != nil {
			return err
		}
		defaultWorkstationCluster, err := workstations.NewWorkstationCluster(ctx, "default", &workstations.WorkstationClusterArgs{
			WorkstationClusterId: pulumi.String("workstation-cluster"),
			Network:              _default.ID(),
			Subnetwork:           defaultSubnetwork.ID(),
			Location:             pulumi.String("us-central1"),
			Labels: pulumi.StringMap{
				"label": pulumi.String("key"),
			},
			Annotations: pulumi.StringMap{
				"label-one": pulumi.String("value-one"),
			},
		})
		if err != nil {
			return err
		}
		_, err = workstations.NewWorkstationConfig(ctx, "default", &workstations.WorkstationConfigArgs{
			WorkstationConfigId:  pulumi.String("workstation-config"),
			WorkstationClusterId: defaultWorkstationCluster.WorkstationClusterId,
			Location:             pulumi.String("us-central1"),
			Host: &workstations.WorkstationConfigHostArgs{
				GceInstance: &workstations.WorkstationConfigHostGceInstanceArgs{
					MachineType:              pulumi.String("e2-standard-4"),
					BootDiskSizeGb:           pulumi.Int(35),
					DisablePublicIpAddresses: pulumi.Bool(true),
					ShieldedInstanceConfig: &workstations.WorkstationConfigHostGceInstanceShieldedInstanceConfigArgs{
						EnableSecureBoot: pulumi.Bool(true),
						EnableVtpm:       pulumi.Bool(true),
					},
				},
			},
			PersistentDirectories: workstations.WorkstationConfigPersistentDirectoryArray{
				&workstations.WorkstationConfigPersistentDirectoryArgs{
					MountPath: pulumi.String("/home"),
					GcePd: &workstations.WorkstationConfigPersistentDirectoryGcePdArgs{
						SizeGb:        pulumi.Int(200),
						FsType:        pulumi.String("ext4"),
						DiskType:      pulumi.String("pd-standard"),
						ReclaimPolicy: pulumi.String("DELETE"),
					},
				},
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Gcp = Pulumi.Gcp;
return await Deployment.RunAsync(() => 
{
    var @default = new Gcp.Compute.Network("default", new()
    {
        Name = "workstation-cluster",
        AutoCreateSubnetworks = false,
    });
    var defaultSubnetwork = new Gcp.Compute.Subnetwork("default", new()
    {
        Name = "workstation-cluster",
        IpCidrRange = "10.0.0.0/24",
        Region = "us-central1",
        Network = @default.Name,
    });
    var defaultWorkstationCluster = new Gcp.Workstations.WorkstationCluster("default", new()
    {
        WorkstationClusterId = "workstation-cluster",
        Network = @default.Id,
        Subnetwork = defaultSubnetwork.Id,
        Location = "us-central1",
        Labels = 
        {
            { "label", "key" },
        },
        Annotations = 
        {
            { "label-one", "value-one" },
        },
    });
    var defaultWorkstationConfig = new Gcp.Workstations.WorkstationConfig("default", new()
    {
        WorkstationConfigId = "workstation-config",
        WorkstationClusterId = defaultWorkstationCluster.WorkstationClusterId,
        Location = "us-central1",
        Host = new Gcp.Workstations.Inputs.WorkstationConfigHostArgs
        {
            GceInstance = new Gcp.Workstations.Inputs.WorkstationConfigHostGceInstanceArgs
            {
                MachineType = "e2-standard-4",
                BootDiskSizeGb = 35,
                DisablePublicIpAddresses = true,
                ShieldedInstanceConfig = new Gcp.Workstations.Inputs.WorkstationConfigHostGceInstanceShieldedInstanceConfigArgs
                {
                    EnableSecureBoot = true,
                    EnableVtpm = true,
                },
            },
        },
        PersistentDirectories = new[]
        {
            new Gcp.Workstations.Inputs.WorkstationConfigPersistentDirectoryArgs
            {
                MountPath = "/home",
                GcePd = new Gcp.Workstations.Inputs.WorkstationConfigPersistentDirectoryGcePdArgs
                {
                    SizeGb = 200,
                    FsType = "ext4",
                    DiskType = "pd-standard",
                    ReclaimPolicy = "DELETE",
                },
            },
        },
    });
});
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.gcp.compute.Network;
import com.pulumi.gcp.compute.NetworkArgs;
import com.pulumi.gcp.compute.Subnetwork;
import com.pulumi.gcp.compute.SubnetworkArgs;
import com.pulumi.gcp.workstations.WorkstationCluster;
import com.pulumi.gcp.workstations.WorkstationClusterArgs;
import com.pulumi.gcp.workstations.WorkstationConfig;
import com.pulumi.gcp.workstations.WorkstationConfigArgs;
import com.pulumi.gcp.workstations.inputs.WorkstationConfigHostArgs;
import com.pulumi.gcp.workstations.inputs.WorkstationConfigHostGceInstanceArgs;
import com.pulumi.gcp.workstations.inputs.WorkstationConfigHostGceInstanceShieldedInstanceConfigArgs;
import com.pulumi.gcp.workstations.inputs.WorkstationConfigPersistentDirectoryArgs;
import com.pulumi.gcp.workstations.inputs.WorkstationConfigPersistentDirectoryGcePdArgs;
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 default_ = new Network("default", NetworkArgs.builder()
            .name("workstation-cluster")
            .autoCreateSubnetworks(false)
            .build());
        var defaultSubnetwork = new Subnetwork("defaultSubnetwork", SubnetworkArgs.builder()
            .name("workstation-cluster")
            .ipCidrRange("10.0.0.0/24")
            .region("us-central1")
            .network(default_.name())
            .build());
        var defaultWorkstationCluster = new WorkstationCluster("defaultWorkstationCluster", WorkstationClusterArgs.builder()
            .workstationClusterId("workstation-cluster")
            .network(default_.id())
            .subnetwork(defaultSubnetwork.id())
            .location("us-central1")
            .labels(Map.of("label", "key"))
            .annotations(Map.of("label-one", "value-one"))
            .build());
        var defaultWorkstationConfig = new WorkstationConfig("defaultWorkstationConfig", WorkstationConfigArgs.builder()
            .workstationConfigId("workstation-config")
            .workstationClusterId(defaultWorkstationCluster.workstationClusterId())
            .location("us-central1")
            .host(WorkstationConfigHostArgs.builder()
                .gceInstance(WorkstationConfigHostGceInstanceArgs.builder()
                    .machineType("e2-standard-4")
                    .bootDiskSizeGb(35)
                    .disablePublicIpAddresses(true)
                    .shieldedInstanceConfig(WorkstationConfigHostGceInstanceShieldedInstanceConfigArgs.builder()
                        .enableSecureBoot(true)
                        .enableVtpm(true)
                        .build())
                    .build())
                .build())
            .persistentDirectories(WorkstationConfigPersistentDirectoryArgs.builder()
                .mountPath("/home")
                .gcePd(WorkstationConfigPersistentDirectoryGcePdArgs.builder()
                    .sizeGb(200)
                    .fsType("ext4")
                    .diskType("pd-standard")
                    .reclaimPolicy("DELETE")
                    .build())
                .build())
            .build());
    }
}
resources:
  default:
    type: gcp:compute:Network
    properties:
      name: workstation-cluster
      autoCreateSubnetworks: false
  defaultSubnetwork:
    type: gcp:compute:Subnetwork
    name: default
    properties:
      name: workstation-cluster
      ipCidrRange: 10.0.0.0/24
      region: us-central1
      network: ${default.name}
  defaultWorkstationCluster:
    type: gcp:workstations:WorkstationCluster
    name: default
    properties:
      workstationClusterId: workstation-cluster
      network: ${default.id}
      subnetwork: ${defaultSubnetwork.id}
      location: us-central1
      labels:
        label: key
      annotations:
        label-one: value-one
  defaultWorkstationConfig:
    type: gcp:workstations:WorkstationConfig
    name: default
    properties:
      workstationConfigId: workstation-config
      workstationClusterId: ${defaultWorkstationCluster.workstationClusterId}
      location: us-central1
      host:
        gceInstance:
          machineType: e2-standard-4
          bootDiskSizeGb: 35
          disablePublicIpAddresses: true
          shieldedInstanceConfig:
            enableSecureBoot: true
            enableVtpm: true
      persistentDirectories:
        - mountPath: /home
          gcePd:
            sizeGb: 200
            fsType: ext4
            diskType: pd-standard
            reclaimPolicy: DELETE
Workstation Config Source Snapshot
import * as pulumi from "@pulumi/pulumi";
import * as gcp from "@pulumi/gcp";
const _default = new gcp.compute.Network("default", {
    name: "workstation-cluster",
    autoCreateSubnetworks: false,
});
const defaultSubnetwork = new gcp.compute.Subnetwork("default", {
    name: "workstation-cluster",
    ipCidrRange: "10.0.0.0/24",
    region: "us-central1",
    network: _default.name,
});
const mySourceDisk = new gcp.compute.Disk("my_source_disk", {
    name: "workstation-config",
    size: 10,
    type: "pd-ssd",
    zone: "us-central1-a",
});
const mySourceSnapshot = new gcp.compute.Snapshot("my_source_snapshot", {
    name: "workstation-config",
    sourceDisk: mySourceDisk.name,
    zone: "us-central1-a",
});
const defaultWorkstationCluster = new gcp.workstations.WorkstationCluster("default", {
    workstationClusterId: "workstation-cluster",
    network: _default.id,
    subnetwork: defaultSubnetwork.id,
    location: "us-central1",
});
const defaultWorkstationConfig = new gcp.workstations.WorkstationConfig("default", {
    workstationConfigId: "workstation-config",
    workstationClusterId: defaultWorkstationCluster.workstationClusterId,
    location: defaultWorkstationCluster.location,
    persistentDirectories: [{
        mountPath: "/home",
        gcePd: {
            sourceSnapshot: mySourceSnapshot.id,
            reclaimPolicy: "DELETE",
        },
    }],
});
import pulumi
import pulumi_gcp as gcp
default = gcp.compute.Network("default",
    name="workstation-cluster",
    auto_create_subnetworks=False)
default_subnetwork = gcp.compute.Subnetwork("default",
    name="workstation-cluster",
    ip_cidr_range="10.0.0.0/24",
    region="us-central1",
    network=default.name)
my_source_disk = gcp.compute.Disk("my_source_disk",
    name="workstation-config",
    size=10,
    type="pd-ssd",
    zone="us-central1-a")
my_source_snapshot = gcp.compute.Snapshot("my_source_snapshot",
    name="workstation-config",
    source_disk=my_source_disk.name,
    zone="us-central1-a")
default_workstation_cluster = gcp.workstations.WorkstationCluster("default",
    workstation_cluster_id="workstation-cluster",
    network=default.id,
    subnetwork=default_subnetwork.id,
    location="us-central1")
default_workstation_config = gcp.workstations.WorkstationConfig("default",
    workstation_config_id="workstation-config",
    workstation_cluster_id=default_workstation_cluster.workstation_cluster_id,
    location=default_workstation_cluster.location,
    persistent_directories=[{
        "mount_path": "/home",
        "gce_pd": {
            "source_snapshot": my_source_snapshot.id,
            "reclaim_policy": "DELETE",
        },
    }])
package main
import (
	"github.com/pulumi/pulumi-gcp/sdk/v8/go/gcp/compute"
	"github.com/pulumi/pulumi-gcp/sdk/v8/go/gcp/workstations"
	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_default, err := compute.NewNetwork(ctx, "default", &compute.NetworkArgs{
			Name:                  pulumi.String("workstation-cluster"),
			AutoCreateSubnetworks: pulumi.Bool(false),
		})
		if err != nil {
			return err
		}
		defaultSubnetwork, err := compute.NewSubnetwork(ctx, "default", &compute.SubnetworkArgs{
			Name:        pulumi.String("workstation-cluster"),
			IpCidrRange: pulumi.String("10.0.0.0/24"),
			Region:      pulumi.String("us-central1"),
			Network:     _default.Name,
		})
		if err != nil {
			return err
		}
		mySourceDisk, err := compute.NewDisk(ctx, "my_source_disk", &compute.DiskArgs{
			Name: pulumi.String("workstation-config"),
			Size: pulumi.Int(10),
			Type: pulumi.String("pd-ssd"),
			Zone: pulumi.String("us-central1-a"),
		})
		if err != nil {
			return err
		}
		mySourceSnapshot, err := compute.NewSnapshot(ctx, "my_source_snapshot", &compute.SnapshotArgs{
			Name:       pulumi.String("workstation-config"),
			SourceDisk: mySourceDisk.Name,
			Zone:       pulumi.String("us-central1-a"),
		})
		if err != nil {
			return err
		}
		defaultWorkstationCluster, err := workstations.NewWorkstationCluster(ctx, "default", &workstations.WorkstationClusterArgs{
			WorkstationClusterId: pulumi.String("workstation-cluster"),
			Network:              _default.ID(),
			Subnetwork:           defaultSubnetwork.ID(),
			Location:             pulumi.String("us-central1"),
		})
		if err != nil {
			return err
		}
		_, err = workstations.NewWorkstationConfig(ctx, "default", &workstations.WorkstationConfigArgs{
			WorkstationConfigId:  pulumi.String("workstation-config"),
			WorkstationClusterId: defaultWorkstationCluster.WorkstationClusterId,
			Location:             defaultWorkstationCluster.Location,
			PersistentDirectories: workstations.WorkstationConfigPersistentDirectoryArray{
				&workstations.WorkstationConfigPersistentDirectoryArgs{
					MountPath: pulumi.String("/home"),
					GcePd: &workstations.WorkstationConfigPersistentDirectoryGcePdArgs{
						SourceSnapshot: mySourceSnapshot.ID(),
						ReclaimPolicy:  pulumi.String("DELETE"),
					},
				},
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Gcp = Pulumi.Gcp;
return await Deployment.RunAsync(() => 
{
    var @default = new Gcp.Compute.Network("default", new()
    {
        Name = "workstation-cluster",
        AutoCreateSubnetworks = false,
    });
    var defaultSubnetwork = new Gcp.Compute.Subnetwork("default", new()
    {
        Name = "workstation-cluster",
        IpCidrRange = "10.0.0.0/24",
        Region = "us-central1",
        Network = @default.Name,
    });
    var mySourceDisk = new Gcp.Compute.Disk("my_source_disk", new()
    {
        Name = "workstation-config",
        Size = 10,
        Type = "pd-ssd",
        Zone = "us-central1-a",
    });
    var mySourceSnapshot = new Gcp.Compute.Snapshot("my_source_snapshot", new()
    {
        Name = "workstation-config",
        SourceDisk = mySourceDisk.Name,
        Zone = "us-central1-a",
    });
    var defaultWorkstationCluster = new Gcp.Workstations.WorkstationCluster("default", new()
    {
        WorkstationClusterId = "workstation-cluster",
        Network = @default.Id,
        Subnetwork = defaultSubnetwork.Id,
        Location = "us-central1",
    });
    var defaultWorkstationConfig = new Gcp.Workstations.WorkstationConfig("default", new()
    {
        WorkstationConfigId = "workstation-config",
        WorkstationClusterId = defaultWorkstationCluster.WorkstationClusterId,
        Location = defaultWorkstationCluster.Location,
        PersistentDirectories = new[]
        {
            new Gcp.Workstations.Inputs.WorkstationConfigPersistentDirectoryArgs
            {
                MountPath = "/home",
                GcePd = new Gcp.Workstations.Inputs.WorkstationConfigPersistentDirectoryGcePdArgs
                {
                    SourceSnapshot = mySourceSnapshot.Id,
                    ReclaimPolicy = "DELETE",
                },
            },
        },
    });
});
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.gcp.compute.Network;
import com.pulumi.gcp.compute.NetworkArgs;
import com.pulumi.gcp.compute.Subnetwork;
import com.pulumi.gcp.compute.SubnetworkArgs;
import com.pulumi.gcp.compute.Disk;
import com.pulumi.gcp.compute.DiskArgs;
import com.pulumi.gcp.compute.Snapshot;
import com.pulumi.gcp.compute.SnapshotArgs;
import com.pulumi.gcp.workstations.WorkstationCluster;
import com.pulumi.gcp.workstations.WorkstationClusterArgs;
import com.pulumi.gcp.workstations.WorkstationConfig;
import com.pulumi.gcp.workstations.WorkstationConfigArgs;
import com.pulumi.gcp.workstations.inputs.WorkstationConfigPersistentDirectoryArgs;
import com.pulumi.gcp.workstations.inputs.WorkstationConfigPersistentDirectoryGcePdArgs;
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 default_ = new Network("default", NetworkArgs.builder()
            .name("workstation-cluster")
            .autoCreateSubnetworks(false)
            .build());
        var defaultSubnetwork = new Subnetwork("defaultSubnetwork", SubnetworkArgs.builder()
            .name("workstation-cluster")
            .ipCidrRange("10.0.0.0/24")
            .region("us-central1")
            .network(default_.name())
            .build());
        var mySourceDisk = new Disk("mySourceDisk", DiskArgs.builder()
            .name("workstation-config")
            .size(10)
            .type("pd-ssd")
            .zone("us-central1-a")
            .build());
        var mySourceSnapshot = new Snapshot("mySourceSnapshot", SnapshotArgs.builder()
            .name("workstation-config")
            .sourceDisk(mySourceDisk.name())
            .zone("us-central1-a")
            .build());
        var defaultWorkstationCluster = new WorkstationCluster("defaultWorkstationCluster", WorkstationClusterArgs.builder()
            .workstationClusterId("workstation-cluster")
            .network(default_.id())
            .subnetwork(defaultSubnetwork.id())
            .location("us-central1")
            .build());
        var defaultWorkstationConfig = new WorkstationConfig("defaultWorkstationConfig", WorkstationConfigArgs.builder()
            .workstationConfigId("workstation-config")
            .workstationClusterId(defaultWorkstationCluster.workstationClusterId())
            .location(defaultWorkstationCluster.location())
            .persistentDirectories(WorkstationConfigPersistentDirectoryArgs.builder()
                .mountPath("/home")
                .gcePd(WorkstationConfigPersistentDirectoryGcePdArgs.builder()
                    .sourceSnapshot(mySourceSnapshot.id())
                    .reclaimPolicy("DELETE")
                    .build())
                .build())
            .build());
    }
}
resources:
  default:
    type: gcp:compute:Network
    properties:
      name: workstation-cluster
      autoCreateSubnetworks: false
  defaultSubnetwork:
    type: gcp:compute:Subnetwork
    name: default
    properties:
      name: workstation-cluster
      ipCidrRange: 10.0.0.0/24
      region: us-central1
      network: ${default.name}
  mySourceDisk:
    type: gcp:compute:Disk
    name: my_source_disk
    properties:
      name: workstation-config
      size: 10
      type: pd-ssd
      zone: us-central1-a
  mySourceSnapshot:
    type: gcp:compute:Snapshot
    name: my_source_snapshot
    properties:
      name: workstation-config
      sourceDisk: ${mySourceDisk.name}
      zone: us-central1-a
  defaultWorkstationCluster:
    type: gcp:workstations:WorkstationCluster
    name: default
    properties:
      workstationClusterId: workstation-cluster
      network: ${default.id}
      subnetwork: ${defaultSubnetwork.id}
      location: us-central1
  defaultWorkstationConfig:
    type: gcp:workstations:WorkstationConfig
    name: default
    properties:
      workstationConfigId: workstation-config
      workstationClusterId: ${defaultWorkstationCluster.workstationClusterId}
      location: ${defaultWorkstationCluster.location}
      persistentDirectories:
        - mountPath: /home
          gcePd:
            sourceSnapshot: ${mySourceSnapshot.id}
            reclaimPolicy: DELETE
Workstation Config Shielded Instance Config
import * as pulumi from "@pulumi/pulumi";
import * as gcp from "@pulumi/gcp";
const _default = new gcp.compute.Network("default", {
    name: "workstation-cluster",
    autoCreateSubnetworks: false,
});
const defaultSubnetwork = new gcp.compute.Subnetwork("default", {
    name: "workstation-cluster",
    ipCidrRange: "10.0.0.0/24",
    region: "us-central1",
    network: _default.name,
});
const defaultWorkstationCluster = new gcp.workstations.WorkstationCluster("default", {
    workstationClusterId: "workstation-cluster",
    network: _default.id,
    subnetwork: defaultSubnetwork.id,
    location: "us-central1",
    labels: {
        label: "key",
    },
    annotations: {
        "label-one": "value-one",
    },
});
const defaultWorkstationConfig = new gcp.workstations.WorkstationConfig("default", {
    workstationConfigId: "workstation-config",
    workstationClusterId: defaultWorkstationCluster.workstationClusterId,
    location: "us-central1",
    host: {
        gceInstance: {
            machineType: "e2-standard-4",
            bootDiskSizeGb: 35,
            disablePublicIpAddresses: true,
            shieldedInstanceConfig: {
                enableSecureBoot: true,
                enableVtpm: true,
            },
        },
    },
});
import pulumi
import pulumi_gcp as gcp
default = gcp.compute.Network("default",
    name="workstation-cluster",
    auto_create_subnetworks=False)
default_subnetwork = gcp.compute.Subnetwork("default",
    name="workstation-cluster",
    ip_cidr_range="10.0.0.0/24",
    region="us-central1",
    network=default.name)
default_workstation_cluster = gcp.workstations.WorkstationCluster("default",
    workstation_cluster_id="workstation-cluster",
    network=default.id,
    subnetwork=default_subnetwork.id,
    location="us-central1",
    labels={
        "label": "key",
    },
    annotations={
        "label-one": "value-one",
    })
default_workstation_config = gcp.workstations.WorkstationConfig("default",
    workstation_config_id="workstation-config",
    workstation_cluster_id=default_workstation_cluster.workstation_cluster_id,
    location="us-central1",
    host={
        "gce_instance": {
            "machine_type": "e2-standard-4",
            "boot_disk_size_gb": 35,
            "disable_public_ip_addresses": True,
            "shielded_instance_config": {
                "enable_secure_boot": True,
                "enable_vtpm": True,
            },
        },
    })
package main
import (
	"github.com/pulumi/pulumi-gcp/sdk/v8/go/gcp/compute"
	"github.com/pulumi/pulumi-gcp/sdk/v8/go/gcp/workstations"
	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_default, err := compute.NewNetwork(ctx, "default", &compute.NetworkArgs{
			Name:                  pulumi.String("workstation-cluster"),
			AutoCreateSubnetworks: pulumi.Bool(false),
		})
		if err != nil {
			return err
		}
		defaultSubnetwork, err := compute.NewSubnetwork(ctx, "default", &compute.SubnetworkArgs{
			Name:        pulumi.String("workstation-cluster"),
			IpCidrRange: pulumi.String("10.0.0.0/24"),
			Region:      pulumi.String("us-central1"),
			Network:     _default.Name,
		})
		if err != nil {
			return err
		}
		defaultWorkstationCluster, err := workstations.NewWorkstationCluster(ctx, "default", &workstations.WorkstationClusterArgs{
			WorkstationClusterId: pulumi.String("workstation-cluster"),
			Network:              _default.ID(),
			Subnetwork:           defaultSubnetwork.ID(),
			Location:             pulumi.String("us-central1"),
			Labels: pulumi.StringMap{
				"label": pulumi.String("key"),
			},
			Annotations: pulumi.StringMap{
				"label-one": pulumi.String("value-one"),
			},
		})
		if err != nil {
			return err
		}
		_, err = workstations.NewWorkstationConfig(ctx, "default", &workstations.WorkstationConfigArgs{
			WorkstationConfigId:  pulumi.String("workstation-config"),
			WorkstationClusterId: defaultWorkstationCluster.WorkstationClusterId,
			Location:             pulumi.String("us-central1"),
			Host: &workstations.WorkstationConfigHostArgs{
				GceInstance: &workstations.WorkstationConfigHostGceInstanceArgs{
					MachineType:              pulumi.String("e2-standard-4"),
					BootDiskSizeGb:           pulumi.Int(35),
					DisablePublicIpAddresses: pulumi.Bool(true),
					ShieldedInstanceConfig: &workstations.WorkstationConfigHostGceInstanceShieldedInstanceConfigArgs{
						EnableSecureBoot: pulumi.Bool(true),
						EnableVtpm:       pulumi.Bool(true),
					},
				},
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Gcp = Pulumi.Gcp;
return await Deployment.RunAsync(() => 
{
    var @default = new Gcp.Compute.Network("default", new()
    {
        Name = "workstation-cluster",
        AutoCreateSubnetworks = false,
    });
    var defaultSubnetwork = new Gcp.Compute.Subnetwork("default", new()
    {
        Name = "workstation-cluster",
        IpCidrRange = "10.0.0.0/24",
        Region = "us-central1",
        Network = @default.Name,
    });
    var defaultWorkstationCluster = new Gcp.Workstations.WorkstationCluster("default", new()
    {
        WorkstationClusterId = "workstation-cluster",
        Network = @default.Id,
        Subnetwork = defaultSubnetwork.Id,
        Location = "us-central1",
        Labels = 
        {
            { "label", "key" },
        },
        Annotations = 
        {
            { "label-one", "value-one" },
        },
    });
    var defaultWorkstationConfig = new Gcp.Workstations.WorkstationConfig("default", new()
    {
        WorkstationConfigId = "workstation-config",
        WorkstationClusterId = defaultWorkstationCluster.WorkstationClusterId,
        Location = "us-central1",
        Host = new Gcp.Workstations.Inputs.WorkstationConfigHostArgs
        {
            GceInstance = new Gcp.Workstations.Inputs.WorkstationConfigHostGceInstanceArgs
            {
                MachineType = "e2-standard-4",
                BootDiskSizeGb = 35,
                DisablePublicIpAddresses = true,
                ShieldedInstanceConfig = new Gcp.Workstations.Inputs.WorkstationConfigHostGceInstanceShieldedInstanceConfigArgs
                {
                    EnableSecureBoot = true,
                    EnableVtpm = true,
                },
            },
        },
    });
});
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.gcp.compute.Network;
import com.pulumi.gcp.compute.NetworkArgs;
import com.pulumi.gcp.compute.Subnetwork;
import com.pulumi.gcp.compute.SubnetworkArgs;
import com.pulumi.gcp.workstations.WorkstationCluster;
import com.pulumi.gcp.workstations.WorkstationClusterArgs;
import com.pulumi.gcp.workstations.WorkstationConfig;
import com.pulumi.gcp.workstations.WorkstationConfigArgs;
import com.pulumi.gcp.workstations.inputs.WorkstationConfigHostArgs;
import com.pulumi.gcp.workstations.inputs.WorkstationConfigHostGceInstanceArgs;
import com.pulumi.gcp.workstations.inputs.WorkstationConfigHostGceInstanceShieldedInstanceConfigArgs;
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 default_ = new Network("default", NetworkArgs.builder()
            .name("workstation-cluster")
            .autoCreateSubnetworks(false)
            .build());
        var defaultSubnetwork = new Subnetwork("defaultSubnetwork", SubnetworkArgs.builder()
            .name("workstation-cluster")
            .ipCidrRange("10.0.0.0/24")
            .region("us-central1")
            .network(default_.name())
            .build());
        var defaultWorkstationCluster = new WorkstationCluster("defaultWorkstationCluster", WorkstationClusterArgs.builder()
            .workstationClusterId("workstation-cluster")
            .network(default_.id())
            .subnetwork(defaultSubnetwork.id())
            .location("us-central1")
            .labels(Map.of("label", "key"))
            .annotations(Map.of("label-one", "value-one"))
            .build());
        var defaultWorkstationConfig = new WorkstationConfig("defaultWorkstationConfig", WorkstationConfigArgs.builder()
            .workstationConfigId("workstation-config")
            .workstationClusterId(defaultWorkstationCluster.workstationClusterId())
            .location("us-central1")
            .host(WorkstationConfigHostArgs.builder()
                .gceInstance(WorkstationConfigHostGceInstanceArgs.builder()
                    .machineType("e2-standard-4")
                    .bootDiskSizeGb(35)
                    .disablePublicIpAddresses(true)
                    .shieldedInstanceConfig(WorkstationConfigHostGceInstanceShieldedInstanceConfigArgs.builder()
                        .enableSecureBoot(true)
                        .enableVtpm(true)
                        .build())
                    .build())
                .build())
            .build());
    }
}
resources:
  default:
    type: gcp:compute:Network
    properties:
      name: workstation-cluster
      autoCreateSubnetworks: false
  defaultSubnetwork:
    type: gcp:compute:Subnetwork
    name: default
    properties:
      name: workstation-cluster
      ipCidrRange: 10.0.0.0/24
      region: us-central1
      network: ${default.name}
  defaultWorkstationCluster:
    type: gcp:workstations:WorkstationCluster
    name: default
    properties:
      workstationClusterId: workstation-cluster
      network: ${default.id}
      subnetwork: ${defaultSubnetwork.id}
      location: us-central1
      labels:
        label: key
      annotations:
        label-one: value-one
  defaultWorkstationConfig:
    type: gcp:workstations:WorkstationConfig
    name: default
    properties:
      workstationConfigId: workstation-config
      workstationClusterId: ${defaultWorkstationCluster.workstationClusterId}
      location: us-central1
      host:
        gceInstance:
          machineType: e2-standard-4
          bootDiskSizeGb: 35
          disablePublicIpAddresses: true
          shieldedInstanceConfig:
            enableSecureBoot: true
            enableVtpm: true
Workstation Config Accelerators
import * as pulumi from "@pulumi/pulumi";
import * as gcp from "@pulumi/gcp";
const _default = new gcp.compute.Network("default", {
    name: "workstation-cluster",
    autoCreateSubnetworks: false,
});
const defaultSubnetwork = new gcp.compute.Subnetwork("default", {
    name: "workstation-cluster",
    ipCidrRange: "10.0.0.0/24",
    region: "us-central1",
    network: _default.name,
});
const defaultWorkstationCluster = new gcp.workstations.WorkstationCluster("default", {
    workstationClusterId: "workstation-cluster",
    network: _default.id,
    subnetwork: defaultSubnetwork.id,
    location: "us-central1",
    labels: {
        label: "key",
    },
    annotations: {
        "label-one": "value-one",
    },
});
const defaultWorkstationConfig = new gcp.workstations.WorkstationConfig("default", {
    workstationConfigId: "workstation-config",
    workstationClusterId: defaultWorkstationCluster.workstationClusterId,
    location: "us-central1",
    host: {
        gceInstance: {
            machineType: "n1-standard-2",
            bootDiskSizeGb: 35,
            disablePublicIpAddresses: true,
            accelerators: [{
                type: "nvidia-tesla-t4",
                count: 1,
            }],
        },
    },
});
import pulumi
import pulumi_gcp as gcp
default = gcp.compute.Network("default",
    name="workstation-cluster",
    auto_create_subnetworks=False)
default_subnetwork = gcp.compute.Subnetwork("default",
    name="workstation-cluster",
    ip_cidr_range="10.0.0.0/24",
    region="us-central1",
    network=default.name)
default_workstation_cluster = gcp.workstations.WorkstationCluster("default",
    workstation_cluster_id="workstation-cluster",
    network=default.id,
    subnetwork=default_subnetwork.id,
    location="us-central1",
    labels={
        "label": "key",
    },
    annotations={
        "label-one": "value-one",
    })
default_workstation_config = gcp.workstations.WorkstationConfig("default",
    workstation_config_id="workstation-config",
    workstation_cluster_id=default_workstation_cluster.workstation_cluster_id,
    location="us-central1",
    host={
        "gce_instance": {
            "machine_type": "n1-standard-2",
            "boot_disk_size_gb": 35,
            "disable_public_ip_addresses": True,
            "accelerators": [{
                "type": "nvidia-tesla-t4",
                "count": 1,
            }],
        },
    })
package main
import (
	"github.com/pulumi/pulumi-gcp/sdk/v8/go/gcp/compute"
	"github.com/pulumi/pulumi-gcp/sdk/v8/go/gcp/workstations"
	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_default, err := compute.NewNetwork(ctx, "default", &compute.NetworkArgs{
			Name:                  pulumi.String("workstation-cluster"),
			AutoCreateSubnetworks: pulumi.Bool(false),
		})
		if err != nil {
			return err
		}
		defaultSubnetwork, err := compute.NewSubnetwork(ctx, "default", &compute.SubnetworkArgs{
			Name:        pulumi.String("workstation-cluster"),
			IpCidrRange: pulumi.String("10.0.0.0/24"),
			Region:      pulumi.String("us-central1"),
			Network:     _default.Name,
		})
		if err != nil {
			return err
		}
		defaultWorkstationCluster, err := workstations.NewWorkstationCluster(ctx, "default", &workstations.WorkstationClusterArgs{
			WorkstationClusterId: pulumi.String("workstation-cluster"),
			Network:              _default.ID(),
			Subnetwork:           defaultSubnetwork.ID(),
			Location:             pulumi.String("us-central1"),
			Labels: pulumi.StringMap{
				"label": pulumi.String("key"),
			},
			Annotations: pulumi.StringMap{
				"label-one": pulumi.String("value-one"),
			},
		})
		if err != nil {
			return err
		}
		_, err = workstations.NewWorkstationConfig(ctx, "default", &workstations.WorkstationConfigArgs{
			WorkstationConfigId:  pulumi.String("workstation-config"),
			WorkstationClusterId: defaultWorkstationCluster.WorkstationClusterId,
			Location:             pulumi.String("us-central1"),
			Host: &workstations.WorkstationConfigHostArgs{
				GceInstance: &workstations.WorkstationConfigHostGceInstanceArgs{
					MachineType:              pulumi.String("n1-standard-2"),
					BootDiskSizeGb:           pulumi.Int(35),
					DisablePublicIpAddresses: pulumi.Bool(true),
					Accelerators: workstations.WorkstationConfigHostGceInstanceAcceleratorArray{
						&workstations.WorkstationConfigHostGceInstanceAcceleratorArgs{
							Type:  pulumi.String("nvidia-tesla-t4"),
							Count: pulumi.Int(1),
						},
					},
				},
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Gcp = Pulumi.Gcp;
return await Deployment.RunAsync(() => 
{
    var @default = new Gcp.Compute.Network("default", new()
    {
        Name = "workstation-cluster",
        AutoCreateSubnetworks = false,
    });
    var defaultSubnetwork = new Gcp.Compute.Subnetwork("default", new()
    {
        Name = "workstation-cluster",
        IpCidrRange = "10.0.0.0/24",
        Region = "us-central1",
        Network = @default.Name,
    });
    var defaultWorkstationCluster = new Gcp.Workstations.WorkstationCluster("default", new()
    {
        WorkstationClusterId = "workstation-cluster",
        Network = @default.Id,
        Subnetwork = defaultSubnetwork.Id,
        Location = "us-central1",
        Labels = 
        {
            { "label", "key" },
        },
        Annotations = 
        {
            { "label-one", "value-one" },
        },
    });
    var defaultWorkstationConfig = new Gcp.Workstations.WorkstationConfig("default", new()
    {
        WorkstationConfigId = "workstation-config",
        WorkstationClusterId = defaultWorkstationCluster.WorkstationClusterId,
        Location = "us-central1",
        Host = new Gcp.Workstations.Inputs.WorkstationConfigHostArgs
        {
            GceInstance = new Gcp.Workstations.Inputs.WorkstationConfigHostGceInstanceArgs
            {
                MachineType = "n1-standard-2",
                BootDiskSizeGb = 35,
                DisablePublicIpAddresses = true,
                Accelerators = new[]
                {
                    new Gcp.Workstations.Inputs.WorkstationConfigHostGceInstanceAcceleratorArgs
                    {
                        Type = "nvidia-tesla-t4",
                        Count = 1,
                    },
                },
            },
        },
    });
});
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.gcp.compute.Network;
import com.pulumi.gcp.compute.NetworkArgs;
import com.pulumi.gcp.compute.Subnetwork;
import com.pulumi.gcp.compute.SubnetworkArgs;
import com.pulumi.gcp.workstations.WorkstationCluster;
import com.pulumi.gcp.workstations.WorkstationClusterArgs;
import com.pulumi.gcp.workstations.WorkstationConfig;
import com.pulumi.gcp.workstations.WorkstationConfigArgs;
import com.pulumi.gcp.workstations.inputs.WorkstationConfigHostArgs;
import com.pulumi.gcp.workstations.inputs.WorkstationConfigHostGceInstanceArgs;
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 default_ = new Network("default", NetworkArgs.builder()
            .name("workstation-cluster")
            .autoCreateSubnetworks(false)
            .build());
        var defaultSubnetwork = new Subnetwork("defaultSubnetwork", SubnetworkArgs.builder()
            .name("workstation-cluster")
            .ipCidrRange("10.0.0.0/24")
            .region("us-central1")
            .network(default_.name())
            .build());
        var defaultWorkstationCluster = new WorkstationCluster("defaultWorkstationCluster", WorkstationClusterArgs.builder()
            .workstationClusterId("workstation-cluster")
            .network(default_.id())
            .subnetwork(defaultSubnetwork.id())
            .location("us-central1")
            .labels(Map.of("label", "key"))
            .annotations(Map.of("label-one", "value-one"))
            .build());
        var defaultWorkstationConfig = new WorkstationConfig("defaultWorkstationConfig", WorkstationConfigArgs.builder()
            .workstationConfigId("workstation-config")
            .workstationClusterId(defaultWorkstationCluster.workstationClusterId())
            .location("us-central1")
            .host(WorkstationConfigHostArgs.builder()
                .gceInstance(WorkstationConfigHostGceInstanceArgs.builder()
                    .machineType("n1-standard-2")
                    .bootDiskSizeGb(35)
                    .disablePublicIpAddresses(true)
                    .accelerators(WorkstationConfigHostGceInstanceAcceleratorArgs.builder()
                        .type("nvidia-tesla-t4")
                        .count("1")
                        .build())
                    .build())
                .build())
            .build());
    }
}
resources:
  default:
    type: gcp:compute:Network
    properties:
      name: workstation-cluster
      autoCreateSubnetworks: false
  defaultSubnetwork:
    type: gcp:compute:Subnetwork
    name: default
    properties:
      name: workstation-cluster
      ipCidrRange: 10.0.0.0/24
      region: us-central1
      network: ${default.name}
  defaultWorkstationCluster:
    type: gcp:workstations:WorkstationCluster
    name: default
    properties:
      workstationClusterId: workstation-cluster
      network: ${default.id}
      subnetwork: ${defaultSubnetwork.id}
      location: us-central1
      labels:
        label: key
      annotations:
        label-one: value-one
  defaultWorkstationConfig:
    type: gcp:workstations:WorkstationConfig
    name: default
    properties:
      workstationConfigId: workstation-config
      workstationClusterId: ${defaultWorkstationCluster.workstationClusterId}
      location: us-central1
      host:
        gceInstance:
          machineType: n1-standard-2
          bootDiskSizeGb: 35
          disablePublicIpAddresses: true
          accelerators:
            - type: nvidia-tesla-t4
              count: '1'
Workstation Config Boost
import * as pulumi from "@pulumi/pulumi";
import * as gcp from "@pulumi/gcp";
const _default = new gcp.compute.Network("default", {
    name: "workstation-cluster",
    autoCreateSubnetworks: false,
});
const defaultSubnetwork = new gcp.compute.Subnetwork("default", {
    name: "workstation-cluster",
    ipCidrRange: "10.0.0.0/24",
    region: "us-central1",
    network: _default.name,
});
const defaultWorkstationCluster = new gcp.workstations.WorkstationCluster("default", {
    workstationClusterId: "workstation-cluster",
    network: _default.id,
    subnetwork: defaultSubnetwork.id,
    location: "us-central1",
    labels: {
        label: "key",
    },
    annotations: {
        "label-one": "value-one",
    },
});
const defaultWorkstationConfig = new gcp.workstations.WorkstationConfig("default", {
    workstationConfigId: "workstation-config",
    workstationClusterId: defaultWorkstationCluster.workstationClusterId,
    location: "us-central1",
    host: {
        gceInstance: {
            machineType: "e2-standard-4",
            bootDiskSizeGb: 35,
            disablePublicIpAddresses: true,
            boostConfigs: [
                {
                    id: "boost-1",
                    machineType: "n1-standard-2",
                    accelerators: [{
                        type: "nvidia-tesla-t4",
                        count: 1,
                    }],
                },
                {
                    id: "boost-2",
                    machineType: "n1-standard-2",
                    poolSize: 2,
                    bootDiskSizeGb: 30,
                    enableNestedVirtualization: true,
                },
            ],
        },
    },
});
import pulumi
import pulumi_gcp as gcp
default = gcp.compute.Network("default",
    name="workstation-cluster",
    auto_create_subnetworks=False)
default_subnetwork = gcp.compute.Subnetwork("default",
    name="workstation-cluster",
    ip_cidr_range="10.0.0.0/24",
    region="us-central1",
    network=default.name)
default_workstation_cluster = gcp.workstations.WorkstationCluster("default",
    workstation_cluster_id="workstation-cluster",
    network=default.id,
    subnetwork=default_subnetwork.id,
    location="us-central1",
    labels={
        "label": "key",
    },
    annotations={
        "label-one": "value-one",
    })
default_workstation_config = gcp.workstations.WorkstationConfig("default",
    workstation_config_id="workstation-config",
    workstation_cluster_id=default_workstation_cluster.workstation_cluster_id,
    location="us-central1",
    host={
        "gce_instance": {
            "machine_type": "e2-standard-4",
            "boot_disk_size_gb": 35,
            "disable_public_ip_addresses": True,
            "boost_configs": [
                {
                    "id": "boost-1",
                    "machine_type": "n1-standard-2",
                    "accelerators": [{
                        "type": "nvidia-tesla-t4",
                        "count": 1,
                    }],
                },
                {
                    "id": "boost-2",
                    "machine_type": "n1-standard-2",
                    "pool_size": 2,
                    "boot_disk_size_gb": 30,
                    "enable_nested_virtualization": True,
                },
            ],
        },
    })
package main
import (
	"github.com/pulumi/pulumi-gcp/sdk/v8/go/gcp/compute"
	"github.com/pulumi/pulumi-gcp/sdk/v8/go/gcp/workstations"
	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_default, err := compute.NewNetwork(ctx, "default", &compute.NetworkArgs{
			Name:                  pulumi.String("workstation-cluster"),
			AutoCreateSubnetworks: pulumi.Bool(false),
		})
		if err != nil {
			return err
		}
		defaultSubnetwork, err := compute.NewSubnetwork(ctx, "default", &compute.SubnetworkArgs{
			Name:        pulumi.String("workstation-cluster"),
			IpCidrRange: pulumi.String("10.0.0.0/24"),
			Region:      pulumi.String("us-central1"),
			Network:     _default.Name,
		})
		if err != nil {
			return err
		}
		defaultWorkstationCluster, err := workstations.NewWorkstationCluster(ctx, "default", &workstations.WorkstationClusterArgs{
			WorkstationClusterId: pulumi.String("workstation-cluster"),
			Network:              _default.ID(),
			Subnetwork:           defaultSubnetwork.ID(),
			Location:             pulumi.String("us-central1"),
			Labels: pulumi.StringMap{
				"label": pulumi.String("key"),
			},
			Annotations: pulumi.StringMap{
				"label-one": pulumi.String("value-one"),
			},
		})
		if err != nil {
			return err
		}
		_, err = workstations.NewWorkstationConfig(ctx, "default", &workstations.WorkstationConfigArgs{
			WorkstationConfigId:  pulumi.String("workstation-config"),
			WorkstationClusterId: defaultWorkstationCluster.WorkstationClusterId,
			Location:             pulumi.String("us-central1"),
			Host: &workstations.WorkstationConfigHostArgs{
				GceInstance: &workstations.WorkstationConfigHostGceInstanceArgs{
					MachineType:              pulumi.String("e2-standard-4"),
					BootDiskSizeGb:           pulumi.Int(35),
					DisablePublicIpAddresses: pulumi.Bool(true),
					BoostConfigs: workstations.WorkstationConfigHostGceInstanceBoostConfigArray{
						&workstations.WorkstationConfigHostGceInstanceBoostConfigArgs{
							Id:          pulumi.String("boost-1"),
							MachineType: pulumi.String("n1-standard-2"),
							Accelerators: workstations.WorkstationConfigHostGceInstanceBoostConfigAcceleratorArray{
								&workstations.WorkstationConfigHostGceInstanceBoostConfigAcceleratorArgs{
									Type:  pulumi.String("nvidia-tesla-t4"),
									Count: pulumi.Int(1),
								},
							},
						},
						&workstations.WorkstationConfigHostGceInstanceBoostConfigArgs{
							Id:                         pulumi.String("boost-2"),
							MachineType:                pulumi.String("n1-standard-2"),
							PoolSize:                   pulumi.Int(2),
							BootDiskSizeGb:             pulumi.Int(30),
							EnableNestedVirtualization: pulumi.Bool(true),
						},
					},
				},
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Gcp = Pulumi.Gcp;
return await Deployment.RunAsync(() => 
{
    var @default = new Gcp.Compute.Network("default", new()
    {
        Name = "workstation-cluster",
        AutoCreateSubnetworks = false,
    });
    var defaultSubnetwork = new Gcp.Compute.Subnetwork("default", new()
    {
        Name = "workstation-cluster",
        IpCidrRange = "10.0.0.0/24",
        Region = "us-central1",
        Network = @default.Name,
    });
    var defaultWorkstationCluster = new Gcp.Workstations.WorkstationCluster("default", new()
    {
        WorkstationClusterId = "workstation-cluster",
        Network = @default.Id,
        Subnetwork = defaultSubnetwork.Id,
        Location = "us-central1",
        Labels = 
        {
            { "label", "key" },
        },
        Annotations = 
        {
            { "label-one", "value-one" },
        },
    });
    var defaultWorkstationConfig = new Gcp.Workstations.WorkstationConfig("default", new()
    {
        WorkstationConfigId = "workstation-config",
        WorkstationClusterId = defaultWorkstationCluster.WorkstationClusterId,
        Location = "us-central1",
        Host = new Gcp.Workstations.Inputs.WorkstationConfigHostArgs
        {
            GceInstance = new Gcp.Workstations.Inputs.WorkstationConfigHostGceInstanceArgs
            {
                MachineType = "e2-standard-4",
                BootDiskSizeGb = 35,
                DisablePublicIpAddresses = true,
                BoostConfigs = new[]
                {
                    new Gcp.Workstations.Inputs.WorkstationConfigHostGceInstanceBoostConfigArgs
                    {
                        Id = "boost-1",
                        MachineType = "n1-standard-2",
                        Accelerators = new[]
                        {
                            new Gcp.Workstations.Inputs.WorkstationConfigHostGceInstanceBoostConfigAcceleratorArgs
                            {
                                Type = "nvidia-tesla-t4",
                                Count = 1,
                            },
                        },
                    },
                    new Gcp.Workstations.Inputs.WorkstationConfigHostGceInstanceBoostConfigArgs
                    {
                        Id = "boost-2",
                        MachineType = "n1-standard-2",
                        PoolSize = 2,
                        BootDiskSizeGb = 30,
                        EnableNestedVirtualization = true,
                    },
                },
            },
        },
    });
});
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.gcp.compute.Network;
import com.pulumi.gcp.compute.NetworkArgs;
import com.pulumi.gcp.compute.Subnetwork;
import com.pulumi.gcp.compute.SubnetworkArgs;
import com.pulumi.gcp.workstations.WorkstationCluster;
import com.pulumi.gcp.workstations.WorkstationClusterArgs;
import com.pulumi.gcp.workstations.WorkstationConfig;
import com.pulumi.gcp.workstations.WorkstationConfigArgs;
import com.pulumi.gcp.workstations.inputs.WorkstationConfigHostArgs;
import com.pulumi.gcp.workstations.inputs.WorkstationConfigHostGceInstanceArgs;
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 default_ = new Network("default", NetworkArgs.builder()
            .name("workstation-cluster")
            .autoCreateSubnetworks(false)
            .build());
        var defaultSubnetwork = new Subnetwork("defaultSubnetwork", SubnetworkArgs.builder()
            .name("workstation-cluster")
            .ipCidrRange("10.0.0.0/24")
            .region("us-central1")
            .network(default_.name())
            .build());
        var defaultWorkstationCluster = new WorkstationCluster("defaultWorkstationCluster", WorkstationClusterArgs.builder()
            .workstationClusterId("workstation-cluster")
            .network(default_.id())
            .subnetwork(defaultSubnetwork.id())
            .location("us-central1")
            .labels(Map.of("label", "key"))
            .annotations(Map.of("label-one", "value-one"))
            .build());
        var defaultWorkstationConfig = new WorkstationConfig("defaultWorkstationConfig", WorkstationConfigArgs.builder()
            .workstationConfigId("workstation-config")
            .workstationClusterId(defaultWorkstationCluster.workstationClusterId())
            .location("us-central1")
            .host(WorkstationConfigHostArgs.builder()
                .gceInstance(WorkstationConfigHostGceInstanceArgs.builder()
                    .machineType("e2-standard-4")
                    .bootDiskSizeGb(35)
                    .disablePublicIpAddresses(true)
                    .boostConfigs(                    
                        WorkstationConfigHostGceInstanceBoostConfigArgs.builder()
                            .id("boost-1")
                            .machineType("n1-standard-2")
                            .accelerators(WorkstationConfigHostGceInstanceBoostConfigAcceleratorArgs.builder()
                                .type("nvidia-tesla-t4")
                                .count("1")
                                .build())
                            .build(),
                        WorkstationConfigHostGceInstanceBoostConfigArgs.builder()
                            .id("boost-2")
                            .machineType("n1-standard-2")
                            .poolSize(2)
                            .bootDiskSizeGb(30)
                            .enableNestedVirtualization(true)
                            .build())
                    .build())
                .build())
            .build());
    }
}
resources:
  default:
    type: gcp:compute:Network
    properties:
      name: workstation-cluster
      autoCreateSubnetworks: false
  defaultSubnetwork:
    type: gcp:compute:Subnetwork
    name: default
    properties:
      name: workstation-cluster
      ipCidrRange: 10.0.0.0/24
      region: us-central1
      network: ${default.name}
  defaultWorkstationCluster:
    type: gcp:workstations:WorkstationCluster
    name: default
    properties:
      workstationClusterId: workstation-cluster
      network: ${default.id}
      subnetwork: ${defaultSubnetwork.id}
      location: us-central1
      labels:
        label: key
      annotations:
        label-one: value-one
  defaultWorkstationConfig:
    type: gcp:workstations:WorkstationConfig
    name: default
    properties:
      workstationConfigId: workstation-config
      workstationClusterId: ${defaultWorkstationCluster.workstationClusterId}
      location: us-central1
      host:
        gceInstance:
          machineType: e2-standard-4
          bootDiskSizeGb: 35
          disablePublicIpAddresses: true
          boostConfigs:
            - id: boost-1
              machineType: n1-standard-2
              accelerators:
                - type: nvidia-tesla-t4
                  count: '1'
            - id: boost-2
              machineType: n1-standard-2
              poolSize: 2
              bootDiskSizeGb: 30
              enableNestedVirtualization: true
Workstation Config Encryption Key
import * as pulumi from "@pulumi/pulumi";
import * as gcp from "@pulumi/gcp";
const _default = new gcp.compute.Network("default", {
    name: "workstation-cluster",
    autoCreateSubnetworks: false,
});
const defaultSubnetwork = new gcp.compute.Subnetwork("default", {
    name: "workstation-cluster",
    ipCidrRange: "10.0.0.0/24",
    region: "us-central1",
    network: _default.name,
});
const defaultWorkstationCluster = new gcp.workstations.WorkstationCluster("default", {
    workstationClusterId: "workstation-cluster",
    network: _default.id,
    subnetwork: defaultSubnetwork.id,
    location: "us-central1",
    labels: {
        label: "key",
    },
    annotations: {
        "label-one": "value-one",
    },
});
const defaultKeyRing = new gcp.kms.KeyRing("default", {
    name: "workstation-cluster",
    location: "us-central1",
});
const defaultCryptoKey = new gcp.kms.CryptoKey("default", {
    name: "workstation-cluster",
    keyRing: defaultKeyRing.id,
});
const defaultAccount = new gcp.serviceaccount.Account("default", {
    accountId: "my-account",
    displayName: "Service Account",
});
const defaultWorkstationConfig = new gcp.workstations.WorkstationConfig("default", {
    workstationConfigId: "workstation-config",
    workstationClusterId: defaultWorkstationCluster.workstationClusterId,
    location: "us-central1",
    host: {
        gceInstance: {
            machineType: "e2-standard-4",
            bootDiskSizeGb: 35,
            disablePublicIpAddresses: true,
            shieldedInstanceConfig: {
                enableSecureBoot: true,
                enableVtpm: true,
            },
        },
    },
    encryptionKey: {
        kmsKey: defaultCryptoKey.id,
        kmsKeyServiceAccount: defaultAccount.email,
    },
});
import pulumi
import pulumi_gcp as gcp
default = gcp.compute.Network("default",
    name="workstation-cluster",
    auto_create_subnetworks=False)
default_subnetwork = gcp.compute.Subnetwork("default",
    name="workstation-cluster",
    ip_cidr_range="10.0.0.0/24",
    region="us-central1",
    network=default.name)
default_workstation_cluster = gcp.workstations.WorkstationCluster("default",
    workstation_cluster_id="workstation-cluster",
    network=default.id,
    subnetwork=default_subnetwork.id,
    location="us-central1",
    labels={
        "label": "key",
    },
    annotations={
        "label-one": "value-one",
    })
default_key_ring = gcp.kms.KeyRing("default",
    name="workstation-cluster",
    location="us-central1")
default_crypto_key = gcp.kms.CryptoKey("default",
    name="workstation-cluster",
    key_ring=default_key_ring.id)
default_account = gcp.serviceaccount.Account("default",
    account_id="my-account",
    display_name="Service Account")
default_workstation_config = gcp.workstations.WorkstationConfig("default",
    workstation_config_id="workstation-config",
    workstation_cluster_id=default_workstation_cluster.workstation_cluster_id,
    location="us-central1",
    host={
        "gce_instance": {
            "machine_type": "e2-standard-4",
            "boot_disk_size_gb": 35,
            "disable_public_ip_addresses": True,
            "shielded_instance_config": {
                "enable_secure_boot": True,
                "enable_vtpm": True,
            },
        },
    },
    encryption_key={
        "kms_key": default_crypto_key.id,
        "kms_key_service_account": default_account.email,
    })
package main
import (
	"github.com/pulumi/pulumi-gcp/sdk/v8/go/gcp/compute"
	"github.com/pulumi/pulumi-gcp/sdk/v8/go/gcp/kms"
	"github.com/pulumi/pulumi-gcp/sdk/v8/go/gcp/serviceaccount"
	"github.com/pulumi/pulumi-gcp/sdk/v8/go/gcp/workstations"
	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_default, err := compute.NewNetwork(ctx, "default", &compute.NetworkArgs{
			Name:                  pulumi.String("workstation-cluster"),
			AutoCreateSubnetworks: pulumi.Bool(false),
		})
		if err != nil {
			return err
		}
		defaultSubnetwork, err := compute.NewSubnetwork(ctx, "default", &compute.SubnetworkArgs{
			Name:        pulumi.String("workstation-cluster"),
			IpCidrRange: pulumi.String("10.0.0.0/24"),
			Region:      pulumi.String("us-central1"),
			Network:     _default.Name,
		})
		if err != nil {
			return err
		}
		defaultWorkstationCluster, err := workstations.NewWorkstationCluster(ctx, "default", &workstations.WorkstationClusterArgs{
			WorkstationClusterId: pulumi.String("workstation-cluster"),
			Network:              _default.ID(),
			Subnetwork:           defaultSubnetwork.ID(),
			Location:             pulumi.String("us-central1"),
			Labels: pulumi.StringMap{
				"label": pulumi.String("key"),
			},
			Annotations: pulumi.StringMap{
				"label-one": pulumi.String("value-one"),
			},
		})
		if err != nil {
			return err
		}
		defaultKeyRing, err := kms.NewKeyRing(ctx, "default", &kms.KeyRingArgs{
			Name:     pulumi.String("workstation-cluster"),
			Location: pulumi.String("us-central1"),
		})
		if err != nil {
			return err
		}
		defaultCryptoKey, err := kms.NewCryptoKey(ctx, "default", &kms.CryptoKeyArgs{
			Name:    pulumi.String("workstation-cluster"),
			KeyRing: defaultKeyRing.ID(),
		})
		if err != nil {
			return err
		}
		defaultAccount, err := serviceaccount.NewAccount(ctx, "default", &serviceaccount.AccountArgs{
			AccountId:   pulumi.String("my-account"),
			DisplayName: pulumi.String("Service Account"),
		})
		if err != nil {
			return err
		}
		_, err = workstations.NewWorkstationConfig(ctx, "default", &workstations.WorkstationConfigArgs{
			WorkstationConfigId:  pulumi.String("workstation-config"),
			WorkstationClusterId: defaultWorkstationCluster.WorkstationClusterId,
			Location:             pulumi.String("us-central1"),
			Host: &workstations.WorkstationConfigHostArgs{
				GceInstance: &workstations.WorkstationConfigHostGceInstanceArgs{
					MachineType:              pulumi.String("e2-standard-4"),
					BootDiskSizeGb:           pulumi.Int(35),
					DisablePublicIpAddresses: pulumi.Bool(true),
					ShieldedInstanceConfig: &workstations.WorkstationConfigHostGceInstanceShieldedInstanceConfigArgs{
						EnableSecureBoot: pulumi.Bool(true),
						EnableVtpm:       pulumi.Bool(true),
					},
				},
			},
			EncryptionKey: &workstations.WorkstationConfigEncryptionKeyArgs{
				KmsKey:               defaultCryptoKey.ID(),
				KmsKeyServiceAccount: defaultAccount.Email,
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Gcp = Pulumi.Gcp;
return await Deployment.RunAsync(() => 
{
    var @default = new Gcp.Compute.Network("default", new()
    {
        Name = "workstation-cluster",
        AutoCreateSubnetworks = false,
    });
    var defaultSubnetwork = new Gcp.Compute.Subnetwork("default", new()
    {
        Name = "workstation-cluster",
        IpCidrRange = "10.0.0.0/24",
        Region = "us-central1",
        Network = @default.Name,
    });
    var defaultWorkstationCluster = new Gcp.Workstations.WorkstationCluster("default", new()
    {
        WorkstationClusterId = "workstation-cluster",
        Network = @default.Id,
        Subnetwork = defaultSubnetwork.Id,
        Location = "us-central1",
        Labels = 
        {
            { "label", "key" },
        },
        Annotations = 
        {
            { "label-one", "value-one" },
        },
    });
    var defaultKeyRing = new Gcp.Kms.KeyRing("default", new()
    {
        Name = "workstation-cluster",
        Location = "us-central1",
    });
    var defaultCryptoKey = new Gcp.Kms.CryptoKey("default", new()
    {
        Name = "workstation-cluster",
        KeyRing = defaultKeyRing.Id,
    });
    var defaultAccount = new Gcp.ServiceAccount.Account("default", new()
    {
        AccountId = "my-account",
        DisplayName = "Service Account",
    });
    var defaultWorkstationConfig = new Gcp.Workstations.WorkstationConfig("default", new()
    {
        WorkstationConfigId = "workstation-config",
        WorkstationClusterId = defaultWorkstationCluster.WorkstationClusterId,
        Location = "us-central1",
        Host = new Gcp.Workstations.Inputs.WorkstationConfigHostArgs
        {
            GceInstance = new Gcp.Workstations.Inputs.WorkstationConfigHostGceInstanceArgs
            {
                MachineType = "e2-standard-4",
                BootDiskSizeGb = 35,
                DisablePublicIpAddresses = true,
                ShieldedInstanceConfig = new Gcp.Workstations.Inputs.WorkstationConfigHostGceInstanceShieldedInstanceConfigArgs
                {
                    EnableSecureBoot = true,
                    EnableVtpm = true,
                },
            },
        },
        EncryptionKey = new Gcp.Workstations.Inputs.WorkstationConfigEncryptionKeyArgs
        {
            KmsKey = defaultCryptoKey.Id,
            KmsKeyServiceAccount = defaultAccount.Email,
        },
    });
});
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.gcp.compute.Network;
import com.pulumi.gcp.compute.NetworkArgs;
import com.pulumi.gcp.compute.Subnetwork;
import com.pulumi.gcp.compute.SubnetworkArgs;
import com.pulumi.gcp.workstations.WorkstationCluster;
import com.pulumi.gcp.workstations.WorkstationClusterArgs;
import com.pulumi.gcp.kms.KeyRing;
import com.pulumi.gcp.kms.KeyRingArgs;
import com.pulumi.gcp.kms.CryptoKey;
import com.pulumi.gcp.kms.CryptoKeyArgs;
import com.pulumi.gcp.serviceaccount.Account;
import com.pulumi.gcp.serviceaccount.AccountArgs;
import com.pulumi.gcp.workstations.WorkstationConfig;
import com.pulumi.gcp.workstations.WorkstationConfigArgs;
import com.pulumi.gcp.workstations.inputs.WorkstationConfigHostArgs;
import com.pulumi.gcp.workstations.inputs.WorkstationConfigHostGceInstanceArgs;
import com.pulumi.gcp.workstations.inputs.WorkstationConfigHostGceInstanceShieldedInstanceConfigArgs;
import com.pulumi.gcp.workstations.inputs.WorkstationConfigEncryptionKeyArgs;
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 default_ = new Network("default", NetworkArgs.builder()
            .name("workstation-cluster")
            .autoCreateSubnetworks(false)
            .build());
        var defaultSubnetwork = new Subnetwork("defaultSubnetwork", SubnetworkArgs.builder()
            .name("workstation-cluster")
            .ipCidrRange("10.0.0.0/24")
            .region("us-central1")
            .network(default_.name())
            .build());
        var defaultWorkstationCluster = new WorkstationCluster("defaultWorkstationCluster", WorkstationClusterArgs.builder()
            .workstationClusterId("workstation-cluster")
            .network(default_.id())
            .subnetwork(defaultSubnetwork.id())
            .location("us-central1")
            .labels(Map.of("label", "key"))
            .annotations(Map.of("label-one", "value-one"))
            .build());
        var defaultKeyRing = new KeyRing("defaultKeyRing", KeyRingArgs.builder()
            .name("workstation-cluster")
            .location("us-central1")
            .build());
        var defaultCryptoKey = new CryptoKey("defaultCryptoKey", CryptoKeyArgs.builder()
            .name("workstation-cluster")
            .keyRing(defaultKeyRing.id())
            .build());
        var defaultAccount = new Account("defaultAccount", AccountArgs.builder()
            .accountId("my-account")
            .displayName("Service Account")
            .build());
        var defaultWorkstationConfig = new WorkstationConfig("defaultWorkstationConfig", WorkstationConfigArgs.builder()
            .workstationConfigId("workstation-config")
            .workstationClusterId(defaultWorkstationCluster.workstationClusterId())
            .location("us-central1")
            .host(WorkstationConfigHostArgs.builder()
                .gceInstance(WorkstationConfigHostGceInstanceArgs.builder()
                    .machineType("e2-standard-4")
                    .bootDiskSizeGb(35)
                    .disablePublicIpAddresses(true)
                    .shieldedInstanceConfig(WorkstationConfigHostGceInstanceShieldedInstanceConfigArgs.builder()
                        .enableSecureBoot(true)
                        .enableVtpm(true)
                        .build())
                    .build())
                .build())
            .encryptionKey(WorkstationConfigEncryptionKeyArgs.builder()
                .kmsKey(defaultCryptoKey.id())
                .kmsKeyServiceAccount(defaultAccount.email())
                .build())
            .build());
    }
}
resources:
  default:
    type: gcp:compute:Network
    properties:
      name: workstation-cluster
      autoCreateSubnetworks: false
  defaultSubnetwork:
    type: gcp:compute:Subnetwork
    name: default
    properties:
      name: workstation-cluster
      ipCidrRange: 10.0.0.0/24
      region: us-central1
      network: ${default.name}
  defaultWorkstationCluster:
    type: gcp:workstations:WorkstationCluster
    name: default
    properties:
      workstationClusterId: workstation-cluster
      network: ${default.id}
      subnetwork: ${defaultSubnetwork.id}
      location: us-central1
      labels:
        label: key
      annotations:
        label-one: value-one
  defaultKeyRing:
    type: gcp:kms:KeyRing
    name: default
    properties:
      name: workstation-cluster
      location: us-central1
  defaultCryptoKey:
    type: gcp:kms:CryptoKey
    name: default
    properties:
      name: workstation-cluster
      keyRing: ${defaultKeyRing.id}
  defaultAccount:
    type: gcp:serviceaccount:Account
    name: default
    properties:
      accountId: my-account
      displayName: Service Account
  defaultWorkstationConfig:
    type: gcp:workstations:WorkstationConfig
    name: default
    properties:
      workstationConfigId: workstation-config
      workstationClusterId: ${defaultWorkstationCluster.workstationClusterId}
      location: us-central1
      host:
        gceInstance:
          machineType: e2-standard-4
          bootDiskSizeGb: 35
          disablePublicIpAddresses: true
          shieldedInstanceConfig:
            enableSecureBoot: true
            enableVtpm: true
      encryptionKey:
        kmsKey: ${defaultCryptoKey.id}
        kmsKeyServiceAccount: ${defaultAccount.email}
Workstation Config Allowed Ports
import * as pulumi from "@pulumi/pulumi";
import * as gcp from "@pulumi/gcp";
const _default = new gcp.compute.Network("default", {
    name: "workstation-cluster",
    autoCreateSubnetworks: false,
});
const defaultSubnetwork = new gcp.compute.Subnetwork("default", {
    name: "workstation-cluster",
    ipCidrRange: "10.0.0.0/24",
    region: "us-central1",
    network: _default.name,
});
const defaultWorkstationCluster = new gcp.workstations.WorkstationCluster("default", {
    workstationClusterId: "workstation-cluster",
    network: _default.id,
    subnetwork: defaultSubnetwork.id,
    location: "us-central1",
    labels: {
        label: "key",
    },
    annotations: {
        "label-one": "value-one",
    },
});
const defaultWorkstationConfig = new gcp.workstations.WorkstationConfig("default", {
    workstationConfigId: "workstation-config",
    workstationClusterId: defaultWorkstationCluster.workstationClusterId,
    location: "us-central1",
    host: {
        gceInstance: {
            machineType: "e2-standard-4",
            bootDiskSizeGb: 35,
            disablePublicIpAddresses: true,
        },
    },
    allowedPorts: [
        {
            first: 80,
            last: 80,
        },
        {
            first: 22,
            last: 22,
        },
        {
            first: 1024,
            last: 65535,
        },
    ],
});
import pulumi
import pulumi_gcp as gcp
default = gcp.compute.Network("default",
    name="workstation-cluster",
    auto_create_subnetworks=False)
default_subnetwork = gcp.compute.Subnetwork("default",
    name="workstation-cluster",
    ip_cidr_range="10.0.0.0/24",
    region="us-central1",
    network=default.name)
default_workstation_cluster = gcp.workstations.WorkstationCluster("default",
    workstation_cluster_id="workstation-cluster",
    network=default.id,
    subnetwork=default_subnetwork.id,
    location="us-central1",
    labels={
        "label": "key",
    },
    annotations={
        "label-one": "value-one",
    })
default_workstation_config = gcp.workstations.WorkstationConfig("default",
    workstation_config_id="workstation-config",
    workstation_cluster_id=default_workstation_cluster.workstation_cluster_id,
    location="us-central1",
    host={
        "gce_instance": {
            "machine_type": "e2-standard-4",
            "boot_disk_size_gb": 35,
            "disable_public_ip_addresses": True,
        },
    },
    allowed_ports=[
        {
            "first": 80,
            "last": 80,
        },
        {
            "first": 22,
            "last": 22,
        },
        {
            "first": 1024,
            "last": 65535,
        },
    ])
package main
import (
	"github.com/pulumi/pulumi-gcp/sdk/v8/go/gcp/compute"
	"github.com/pulumi/pulumi-gcp/sdk/v8/go/gcp/workstations"
	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_default, err := compute.NewNetwork(ctx, "default", &compute.NetworkArgs{
			Name:                  pulumi.String("workstation-cluster"),
			AutoCreateSubnetworks: pulumi.Bool(false),
		})
		if err != nil {
			return err
		}
		defaultSubnetwork, err := compute.NewSubnetwork(ctx, "default", &compute.SubnetworkArgs{
			Name:        pulumi.String("workstation-cluster"),
			IpCidrRange: pulumi.String("10.0.0.0/24"),
			Region:      pulumi.String("us-central1"),
			Network:     _default.Name,
		})
		if err != nil {
			return err
		}
		defaultWorkstationCluster, err := workstations.NewWorkstationCluster(ctx, "default", &workstations.WorkstationClusterArgs{
			WorkstationClusterId: pulumi.String("workstation-cluster"),
			Network:              _default.ID(),
			Subnetwork:           defaultSubnetwork.ID(),
			Location:             pulumi.String("us-central1"),
			Labels: pulumi.StringMap{
				"label": pulumi.String("key"),
			},
			Annotations: pulumi.StringMap{
				"label-one": pulumi.String("value-one"),
			},
		})
		if err != nil {
			return err
		}
		_, err = workstations.NewWorkstationConfig(ctx, "default", &workstations.WorkstationConfigArgs{
			WorkstationConfigId:  pulumi.String("workstation-config"),
			WorkstationClusterId: defaultWorkstationCluster.WorkstationClusterId,
			Location:             pulumi.String("us-central1"),
			Host: &workstations.WorkstationConfigHostArgs{
				GceInstance: &workstations.WorkstationConfigHostGceInstanceArgs{
					MachineType:              pulumi.String("e2-standard-4"),
					BootDiskSizeGb:           pulumi.Int(35),
					DisablePublicIpAddresses: pulumi.Bool(true),
				},
			},
			AllowedPorts: workstations.WorkstationConfigAllowedPortArray{
				&workstations.WorkstationConfigAllowedPortArgs{
					First: pulumi.Int(80),
					Last:  pulumi.Int(80),
				},
				&workstations.WorkstationConfigAllowedPortArgs{
					First: pulumi.Int(22),
					Last:  pulumi.Int(22),
				},
				&workstations.WorkstationConfigAllowedPortArgs{
					First: pulumi.Int(1024),
					Last:  pulumi.Int(65535),
				},
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Gcp = Pulumi.Gcp;
return await Deployment.RunAsync(() => 
{
    var @default = new Gcp.Compute.Network("default", new()
    {
        Name = "workstation-cluster",
        AutoCreateSubnetworks = false,
    });
    var defaultSubnetwork = new Gcp.Compute.Subnetwork("default", new()
    {
        Name = "workstation-cluster",
        IpCidrRange = "10.0.0.0/24",
        Region = "us-central1",
        Network = @default.Name,
    });
    var defaultWorkstationCluster = new Gcp.Workstations.WorkstationCluster("default", new()
    {
        WorkstationClusterId = "workstation-cluster",
        Network = @default.Id,
        Subnetwork = defaultSubnetwork.Id,
        Location = "us-central1",
        Labels = 
        {
            { "label", "key" },
        },
        Annotations = 
        {
            { "label-one", "value-one" },
        },
    });
    var defaultWorkstationConfig = new Gcp.Workstations.WorkstationConfig("default", new()
    {
        WorkstationConfigId = "workstation-config",
        WorkstationClusterId = defaultWorkstationCluster.WorkstationClusterId,
        Location = "us-central1",
        Host = new Gcp.Workstations.Inputs.WorkstationConfigHostArgs
        {
            GceInstance = new Gcp.Workstations.Inputs.WorkstationConfigHostGceInstanceArgs
            {
                MachineType = "e2-standard-4",
                BootDiskSizeGb = 35,
                DisablePublicIpAddresses = true,
            },
        },
        AllowedPorts = new[]
        {
            new Gcp.Workstations.Inputs.WorkstationConfigAllowedPortArgs
            {
                First = 80,
                Last = 80,
            },
            new Gcp.Workstations.Inputs.WorkstationConfigAllowedPortArgs
            {
                First = 22,
                Last = 22,
            },
            new Gcp.Workstations.Inputs.WorkstationConfigAllowedPortArgs
            {
                First = 1024,
                Last = 65535,
            },
        },
    });
});
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.gcp.compute.Network;
import com.pulumi.gcp.compute.NetworkArgs;
import com.pulumi.gcp.compute.Subnetwork;
import com.pulumi.gcp.compute.SubnetworkArgs;
import com.pulumi.gcp.workstations.WorkstationCluster;
import com.pulumi.gcp.workstations.WorkstationClusterArgs;
import com.pulumi.gcp.workstations.WorkstationConfig;
import com.pulumi.gcp.workstations.WorkstationConfigArgs;
import com.pulumi.gcp.workstations.inputs.WorkstationConfigHostArgs;
import com.pulumi.gcp.workstations.inputs.WorkstationConfigHostGceInstanceArgs;
import com.pulumi.gcp.workstations.inputs.WorkstationConfigAllowedPortArgs;
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 default_ = new Network("default", NetworkArgs.builder()
            .name("workstation-cluster")
            .autoCreateSubnetworks(false)
            .build());
        var defaultSubnetwork = new Subnetwork("defaultSubnetwork", SubnetworkArgs.builder()
            .name("workstation-cluster")
            .ipCidrRange("10.0.0.0/24")
            .region("us-central1")
            .network(default_.name())
            .build());
        var defaultWorkstationCluster = new WorkstationCluster("defaultWorkstationCluster", WorkstationClusterArgs.builder()
            .workstationClusterId("workstation-cluster")
            .network(default_.id())
            .subnetwork(defaultSubnetwork.id())
            .location("us-central1")
            .labels(Map.of("label", "key"))
            .annotations(Map.of("label-one", "value-one"))
            .build());
        var defaultWorkstationConfig = new WorkstationConfig("defaultWorkstationConfig", WorkstationConfigArgs.builder()
            .workstationConfigId("workstation-config")
            .workstationClusterId(defaultWorkstationCluster.workstationClusterId())
            .location("us-central1")
            .host(WorkstationConfigHostArgs.builder()
                .gceInstance(WorkstationConfigHostGceInstanceArgs.builder()
                    .machineType("e2-standard-4")
                    .bootDiskSizeGb(35)
                    .disablePublicIpAddresses(true)
                    .build())
                .build())
            .allowedPorts(            
                WorkstationConfigAllowedPortArgs.builder()
                    .first(80)
                    .last(80)
                    .build(),
                WorkstationConfigAllowedPortArgs.builder()
                    .first(22)
                    .last(22)
                    .build(),
                WorkstationConfigAllowedPortArgs.builder()
                    .first(1024)
                    .last(65535)
                    .build())
            .build());
    }
}
resources:
  default:
    type: gcp:compute:Network
    properties:
      name: workstation-cluster
      autoCreateSubnetworks: false
  defaultSubnetwork:
    type: gcp:compute:Subnetwork
    name: default
    properties:
      name: workstation-cluster
      ipCidrRange: 10.0.0.0/24
      region: us-central1
      network: ${default.name}
  defaultWorkstationCluster:
    type: gcp:workstations:WorkstationCluster
    name: default
    properties:
      workstationClusterId: workstation-cluster
      network: ${default.id}
      subnetwork: ${defaultSubnetwork.id}
      location: us-central1
      labels:
        label: key
      annotations:
        label-one: value-one
  defaultWorkstationConfig:
    type: gcp:workstations:WorkstationConfig
    name: default
    properties:
      workstationConfigId: workstation-config
      workstationClusterId: ${defaultWorkstationCluster.workstationClusterId}
      location: us-central1
      host:
        gceInstance:
          machineType: e2-standard-4
          bootDiskSizeGb: 35
          disablePublicIpAddresses: true
      allowedPorts:
        - first: 80
          last: 80
        - first: 22
          last: 22
        - first: 1024
          last: 65535
Create WorkstationConfig Resource
Resources are created with functions called constructors. To learn more about declaring and configuring resources, see Resources.
Constructor syntax
new WorkstationConfig(name: string, args: WorkstationConfigArgs, opts?: CustomResourceOptions);@overload
def WorkstationConfig(resource_name: str,
                      args: WorkstationConfigArgs,
                      opts: Optional[ResourceOptions] = None)
@overload
def WorkstationConfig(resource_name: str,
                      opts: Optional[ResourceOptions] = None,
                      location: Optional[str] = None,
                      workstation_config_id: Optional[str] = None,
                      workstation_cluster_id: Optional[str] = None,
                      labels: Optional[Mapping[str, str]] = None,
                      max_usable_workstations: Optional[int] = None,
                      enable_audit_agent: Optional[bool] = None,
                      encryption_key: Optional[WorkstationConfigEncryptionKeyArgs] = None,
                      ephemeral_directories: Optional[Sequence[WorkstationConfigEphemeralDirectoryArgs]] = None,
                      host: Optional[WorkstationConfigHostArgs] = None,
                      idle_timeout: Optional[str] = None,
                      allowed_ports: Optional[Sequence[WorkstationConfigAllowedPortArgs]] = None,
                      disable_tcp_connections: Optional[bool] = None,
                      display_name: Optional[str] = None,
                      persistent_directories: Optional[Sequence[WorkstationConfigPersistentDirectoryArgs]] = None,
                      project: Optional[str] = None,
                      readiness_checks: Optional[Sequence[WorkstationConfigReadinessCheckArgs]] = None,
                      replica_zones: Optional[Sequence[str]] = None,
                      running_timeout: Optional[str] = None,
                      container: Optional[WorkstationConfigContainerArgs] = None,
                      annotations: Optional[Mapping[str, str]] = None)func NewWorkstationConfig(ctx *Context, name string, args WorkstationConfigArgs, opts ...ResourceOption) (*WorkstationConfig, error)public WorkstationConfig(string name, WorkstationConfigArgs args, CustomResourceOptions? opts = null)
public WorkstationConfig(String name, WorkstationConfigArgs args)
public WorkstationConfig(String name, WorkstationConfigArgs args, CustomResourceOptions options)
type: gcp:workstations:WorkstationConfig
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 WorkstationConfigArgs
- 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 WorkstationConfigArgs
- 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 WorkstationConfigArgs
- The arguments to resource properties.
- opts ResourceOption
- Bag of options to control resource's behavior.
- name string
- The unique name of the resource.
- args WorkstationConfigArgs
- The arguments to resource properties.
- opts CustomResourceOptions
- Bag of options to control resource's behavior.
- name String
- The unique name of the resource.
- args WorkstationConfigArgs
- The arguments to resource properties.
- options CustomResourceOptions
- Bag of options to control resource's behavior.
Constructor example
The following reference example uses placeholder values for all input properties.
var workstationConfigResource = new Gcp.Workstations.WorkstationConfig("workstationConfigResource", new()
{
    Location = "string",
    WorkstationConfigId = "string",
    WorkstationClusterId = "string",
    Labels = 
    {
        { "string", "string" },
    },
    MaxUsableWorkstations = 0,
    EnableAuditAgent = false,
    EncryptionKey = new Gcp.Workstations.Inputs.WorkstationConfigEncryptionKeyArgs
    {
        KmsKey = "string",
        KmsKeyServiceAccount = "string",
    },
    EphemeralDirectories = new[]
    {
        new Gcp.Workstations.Inputs.WorkstationConfigEphemeralDirectoryArgs
        {
            GcePd = new Gcp.Workstations.Inputs.WorkstationConfigEphemeralDirectoryGcePdArgs
            {
                DiskType = "string",
                ReadOnly = false,
                SourceImage = "string",
                SourceSnapshot = "string",
            },
            MountPath = "string",
        },
    },
    Host = new Gcp.Workstations.Inputs.WorkstationConfigHostArgs
    {
        GceInstance = new Gcp.Workstations.Inputs.WorkstationConfigHostGceInstanceArgs
        {
            Accelerators = new[]
            {
                new Gcp.Workstations.Inputs.WorkstationConfigHostGceInstanceAcceleratorArgs
                {
                    Count = 0,
                    Type = "string",
                },
            },
            BoostConfigs = new[]
            {
                new Gcp.Workstations.Inputs.WorkstationConfigHostGceInstanceBoostConfigArgs
                {
                    Id = "string",
                    Accelerators = new[]
                    {
                        new Gcp.Workstations.Inputs.WorkstationConfigHostGceInstanceBoostConfigAcceleratorArgs
                        {
                            Count = 0,
                            Type = "string",
                        },
                    },
                    BootDiskSizeGb = 0,
                    EnableNestedVirtualization = false,
                    MachineType = "string",
                    PoolSize = 0,
                },
            },
            BootDiskSizeGb = 0,
            ConfidentialInstanceConfig = new Gcp.Workstations.Inputs.WorkstationConfigHostGceInstanceConfidentialInstanceConfigArgs
            {
                EnableConfidentialCompute = false,
            },
            DisablePublicIpAddresses = false,
            DisableSsh = false,
            EnableNestedVirtualization = false,
            MachineType = "string",
            PoolSize = 0,
            ServiceAccount = "string",
            ServiceAccountScopes = new[]
            {
                "string",
            },
            ShieldedInstanceConfig = new Gcp.Workstations.Inputs.WorkstationConfigHostGceInstanceShieldedInstanceConfigArgs
            {
                EnableIntegrityMonitoring = false,
                EnableSecureBoot = false,
                EnableVtpm = false,
            },
            Tags = new[]
            {
                "string",
            },
            VmTags = 
            {
                { "string", "string" },
            },
        },
    },
    IdleTimeout = "string",
    AllowedPorts = new[]
    {
        new Gcp.Workstations.Inputs.WorkstationConfigAllowedPortArgs
        {
            First = 0,
            Last = 0,
        },
    },
    DisableTcpConnections = false,
    DisplayName = "string",
    PersistentDirectories = new[]
    {
        new Gcp.Workstations.Inputs.WorkstationConfigPersistentDirectoryArgs
        {
            GcePd = new Gcp.Workstations.Inputs.WorkstationConfigPersistentDirectoryGcePdArgs
            {
                DiskType = "string",
                FsType = "string",
                ReclaimPolicy = "string",
                SizeGb = 0,
                SourceSnapshot = "string",
            },
            MountPath = "string",
        },
    },
    Project = "string",
    ReadinessChecks = new[]
    {
        new Gcp.Workstations.Inputs.WorkstationConfigReadinessCheckArgs
        {
            Path = "string",
            Port = 0,
        },
    },
    ReplicaZones = new[]
    {
        "string",
    },
    RunningTimeout = "string",
    Container = new Gcp.Workstations.Inputs.WorkstationConfigContainerArgs
    {
        Args = new[]
        {
            "string",
        },
        Commands = new[]
        {
            "string",
        },
        Env = 
        {
            { "string", "string" },
        },
        Image = "string",
        RunAsUser = 0,
        WorkingDir = "string",
    },
    Annotations = 
    {
        { "string", "string" },
    },
});
example, err := workstations.NewWorkstationConfig(ctx, "workstationConfigResource", &workstations.WorkstationConfigArgs{
	Location:             pulumi.String("string"),
	WorkstationConfigId:  pulumi.String("string"),
	WorkstationClusterId: pulumi.String("string"),
	Labels: pulumi.StringMap{
		"string": pulumi.String("string"),
	},
	MaxUsableWorkstations: pulumi.Int(0),
	EnableAuditAgent:      pulumi.Bool(false),
	EncryptionKey: &workstations.WorkstationConfigEncryptionKeyArgs{
		KmsKey:               pulumi.String("string"),
		KmsKeyServiceAccount: pulumi.String("string"),
	},
	EphemeralDirectories: workstations.WorkstationConfigEphemeralDirectoryArray{
		&workstations.WorkstationConfigEphemeralDirectoryArgs{
			GcePd: &workstations.WorkstationConfigEphemeralDirectoryGcePdArgs{
				DiskType:       pulumi.String("string"),
				ReadOnly:       pulumi.Bool(false),
				SourceImage:    pulumi.String("string"),
				SourceSnapshot: pulumi.String("string"),
			},
			MountPath: pulumi.String("string"),
		},
	},
	Host: &workstations.WorkstationConfigHostArgs{
		GceInstance: &workstations.WorkstationConfigHostGceInstanceArgs{
			Accelerators: workstations.WorkstationConfigHostGceInstanceAcceleratorArray{
				&workstations.WorkstationConfigHostGceInstanceAcceleratorArgs{
					Count: pulumi.Int(0),
					Type:  pulumi.String("string"),
				},
			},
			BoostConfigs: workstations.WorkstationConfigHostGceInstanceBoostConfigArray{
				&workstations.WorkstationConfigHostGceInstanceBoostConfigArgs{
					Id: pulumi.String("string"),
					Accelerators: workstations.WorkstationConfigHostGceInstanceBoostConfigAcceleratorArray{
						&workstations.WorkstationConfigHostGceInstanceBoostConfigAcceleratorArgs{
							Count: pulumi.Int(0),
							Type:  pulumi.String("string"),
						},
					},
					BootDiskSizeGb:             pulumi.Int(0),
					EnableNestedVirtualization: pulumi.Bool(false),
					MachineType:                pulumi.String("string"),
					PoolSize:                   pulumi.Int(0),
				},
			},
			BootDiskSizeGb: pulumi.Int(0),
			ConfidentialInstanceConfig: &workstations.WorkstationConfigHostGceInstanceConfidentialInstanceConfigArgs{
				EnableConfidentialCompute: pulumi.Bool(false),
			},
			DisablePublicIpAddresses:   pulumi.Bool(false),
			DisableSsh:                 pulumi.Bool(false),
			EnableNestedVirtualization: pulumi.Bool(false),
			MachineType:                pulumi.String("string"),
			PoolSize:                   pulumi.Int(0),
			ServiceAccount:             pulumi.String("string"),
			ServiceAccountScopes: pulumi.StringArray{
				pulumi.String("string"),
			},
			ShieldedInstanceConfig: &workstations.WorkstationConfigHostGceInstanceShieldedInstanceConfigArgs{
				EnableIntegrityMonitoring: pulumi.Bool(false),
				EnableSecureBoot:          pulumi.Bool(false),
				EnableVtpm:                pulumi.Bool(false),
			},
			Tags: pulumi.StringArray{
				pulumi.String("string"),
			},
			VmTags: pulumi.StringMap{
				"string": pulumi.String("string"),
			},
		},
	},
	IdleTimeout: pulumi.String("string"),
	AllowedPorts: workstations.WorkstationConfigAllowedPortArray{
		&workstations.WorkstationConfigAllowedPortArgs{
			First: pulumi.Int(0),
			Last:  pulumi.Int(0),
		},
	},
	DisableTcpConnections: pulumi.Bool(false),
	DisplayName:           pulumi.String("string"),
	PersistentDirectories: workstations.WorkstationConfigPersistentDirectoryArray{
		&workstations.WorkstationConfigPersistentDirectoryArgs{
			GcePd: &workstations.WorkstationConfigPersistentDirectoryGcePdArgs{
				DiskType:       pulumi.String("string"),
				FsType:         pulumi.String("string"),
				ReclaimPolicy:  pulumi.String("string"),
				SizeGb:         pulumi.Int(0),
				SourceSnapshot: pulumi.String("string"),
			},
			MountPath: pulumi.String("string"),
		},
	},
	Project: pulumi.String("string"),
	ReadinessChecks: workstations.WorkstationConfigReadinessCheckArray{
		&workstations.WorkstationConfigReadinessCheckArgs{
			Path: pulumi.String("string"),
			Port: pulumi.Int(0),
		},
	},
	ReplicaZones: pulumi.StringArray{
		pulumi.String("string"),
	},
	RunningTimeout: pulumi.String("string"),
	Container: &workstations.WorkstationConfigContainerArgs{
		Args: pulumi.StringArray{
			pulumi.String("string"),
		},
		Commands: pulumi.StringArray{
			pulumi.String("string"),
		},
		Env: pulumi.StringMap{
			"string": pulumi.String("string"),
		},
		Image:      pulumi.String("string"),
		RunAsUser:  pulumi.Int(0),
		WorkingDir: pulumi.String("string"),
	},
	Annotations: pulumi.StringMap{
		"string": pulumi.String("string"),
	},
})
var workstationConfigResource = new WorkstationConfig("workstationConfigResource", WorkstationConfigArgs.builder()
    .location("string")
    .workstationConfigId("string")
    .workstationClusterId("string")
    .labels(Map.of("string", "string"))
    .maxUsableWorkstations(0)
    .enableAuditAgent(false)
    .encryptionKey(WorkstationConfigEncryptionKeyArgs.builder()
        .kmsKey("string")
        .kmsKeyServiceAccount("string")
        .build())
    .ephemeralDirectories(WorkstationConfigEphemeralDirectoryArgs.builder()
        .gcePd(WorkstationConfigEphemeralDirectoryGcePdArgs.builder()
            .diskType("string")
            .readOnly(false)
            .sourceImage("string")
            .sourceSnapshot("string")
            .build())
        .mountPath("string")
        .build())
    .host(WorkstationConfigHostArgs.builder()
        .gceInstance(WorkstationConfigHostGceInstanceArgs.builder()
            .accelerators(WorkstationConfigHostGceInstanceAcceleratorArgs.builder()
                .count(0)
                .type("string")
                .build())
            .boostConfigs(WorkstationConfigHostGceInstanceBoostConfigArgs.builder()
                .id("string")
                .accelerators(WorkstationConfigHostGceInstanceBoostConfigAcceleratorArgs.builder()
                    .count(0)
                    .type("string")
                    .build())
                .bootDiskSizeGb(0)
                .enableNestedVirtualization(false)
                .machineType("string")
                .poolSize(0)
                .build())
            .bootDiskSizeGb(0)
            .confidentialInstanceConfig(WorkstationConfigHostGceInstanceConfidentialInstanceConfigArgs.builder()
                .enableConfidentialCompute(false)
                .build())
            .disablePublicIpAddresses(false)
            .disableSsh(false)
            .enableNestedVirtualization(false)
            .machineType("string")
            .poolSize(0)
            .serviceAccount("string")
            .serviceAccountScopes("string")
            .shieldedInstanceConfig(WorkstationConfigHostGceInstanceShieldedInstanceConfigArgs.builder()
                .enableIntegrityMonitoring(false)
                .enableSecureBoot(false)
                .enableVtpm(false)
                .build())
            .tags("string")
            .vmTags(Map.of("string", "string"))
            .build())
        .build())
    .idleTimeout("string")
    .allowedPorts(WorkstationConfigAllowedPortArgs.builder()
        .first(0)
        .last(0)
        .build())
    .disableTcpConnections(false)
    .displayName("string")
    .persistentDirectories(WorkstationConfigPersistentDirectoryArgs.builder()
        .gcePd(WorkstationConfigPersistentDirectoryGcePdArgs.builder()
            .diskType("string")
            .fsType("string")
            .reclaimPolicy("string")
            .sizeGb(0)
            .sourceSnapshot("string")
            .build())
        .mountPath("string")
        .build())
    .project("string")
    .readinessChecks(WorkstationConfigReadinessCheckArgs.builder()
        .path("string")
        .port(0)
        .build())
    .replicaZones("string")
    .runningTimeout("string")
    .container(WorkstationConfigContainerArgs.builder()
        .args("string")
        .commands("string")
        .env(Map.of("string", "string"))
        .image("string")
        .runAsUser(0)
        .workingDir("string")
        .build())
    .annotations(Map.of("string", "string"))
    .build());
workstation_config_resource = gcp.workstations.WorkstationConfig("workstationConfigResource",
    location="string",
    workstation_config_id="string",
    workstation_cluster_id="string",
    labels={
        "string": "string",
    },
    max_usable_workstations=0,
    enable_audit_agent=False,
    encryption_key={
        "kms_key": "string",
        "kms_key_service_account": "string",
    },
    ephemeral_directories=[{
        "gce_pd": {
            "disk_type": "string",
            "read_only": False,
            "source_image": "string",
            "source_snapshot": "string",
        },
        "mount_path": "string",
    }],
    host={
        "gce_instance": {
            "accelerators": [{
                "count": 0,
                "type": "string",
            }],
            "boost_configs": [{
                "id": "string",
                "accelerators": [{
                    "count": 0,
                    "type": "string",
                }],
                "boot_disk_size_gb": 0,
                "enable_nested_virtualization": False,
                "machine_type": "string",
                "pool_size": 0,
            }],
            "boot_disk_size_gb": 0,
            "confidential_instance_config": {
                "enable_confidential_compute": False,
            },
            "disable_public_ip_addresses": False,
            "disable_ssh": False,
            "enable_nested_virtualization": False,
            "machine_type": "string",
            "pool_size": 0,
            "service_account": "string",
            "service_account_scopes": ["string"],
            "shielded_instance_config": {
                "enable_integrity_monitoring": False,
                "enable_secure_boot": False,
                "enable_vtpm": False,
            },
            "tags": ["string"],
            "vm_tags": {
                "string": "string",
            },
        },
    },
    idle_timeout="string",
    allowed_ports=[{
        "first": 0,
        "last": 0,
    }],
    disable_tcp_connections=False,
    display_name="string",
    persistent_directories=[{
        "gce_pd": {
            "disk_type": "string",
            "fs_type": "string",
            "reclaim_policy": "string",
            "size_gb": 0,
            "source_snapshot": "string",
        },
        "mount_path": "string",
    }],
    project="string",
    readiness_checks=[{
        "path": "string",
        "port": 0,
    }],
    replica_zones=["string"],
    running_timeout="string",
    container={
        "args": ["string"],
        "commands": ["string"],
        "env": {
            "string": "string",
        },
        "image": "string",
        "run_as_user": 0,
        "working_dir": "string",
    },
    annotations={
        "string": "string",
    })
const workstationConfigResource = new gcp.workstations.WorkstationConfig("workstationConfigResource", {
    location: "string",
    workstationConfigId: "string",
    workstationClusterId: "string",
    labels: {
        string: "string",
    },
    maxUsableWorkstations: 0,
    enableAuditAgent: false,
    encryptionKey: {
        kmsKey: "string",
        kmsKeyServiceAccount: "string",
    },
    ephemeralDirectories: [{
        gcePd: {
            diskType: "string",
            readOnly: false,
            sourceImage: "string",
            sourceSnapshot: "string",
        },
        mountPath: "string",
    }],
    host: {
        gceInstance: {
            accelerators: [{
                count: 0,
                type: "string",
            }],
            boostConfigs: [{
                id: "string",
                accelerators: [{
                    count: 0,
                    type: "string",
                }],
                bootDiskSizeGb: 0,
                enableNestedVirtualization: false,
                machineType: "string",
                poolSize: 0,
            }],
            bootDiskSizeGb: 0,
            confidentialInstanceConfig: {
                enableConfidentialCompute: false,
            },
            disablePublicIpAddresses: false,
            disableSsh: false,
            enableNestedVirtualization: false,
            machineType: "string",
            poolSize: 0,
            serviceAccount: "string",
            serviceAccountScopes: ["string"],
            shieldedInstanceConfig: {
                enableIntegrityMonitoring: false,
                enableSecureBoot: false,
                enableVtpm: false,
            },
            tags: ["string"],
            vmTags: {
                string: "string",
            },
        },
    },
    idleTimeout: "string",
    allowedPorts: [{
        first: 0,
        last: 0,
    }],
    disableTcpConnections: false,
    displayName: "string",
    persistentDirectories: [{
        gcePd: {
            diskType: "string",
            fsType: "string",
            reclaimPolicy: "string",
            sizeGb: 0,
            sourceSnapshot: "string",
        },
        mountPath: "string",
    }],
    project: "string",
    readinessChecks: [{
        path: "string",
        port: 0,
    }],
    replicaZones: ["string"],
    runningTimeout: "string",
    container: {
        args: ["string"],
        commands: ["string"],
        env: {
            string: "string",
        },
        image: "string",
        runAsUser: 0,
        workingDir: "string",
    },
    annotations: {
        string: "string",
    },
});
type: gcp:workstations:WorkstationConfig
properties:
    allowedPorts:
        - first: 0
          last: 0
    annotations:
        string: string
    container:
        args:
            - string
        commands:
            - string
        env:
            string: string
        image: string
        runAsUser: 0
        workingDir: string
    disableTcpConnections: false
    displayName: string
    enableAuditAgent: false
    encryptionKey:
        kmsKey: string
        kmsKeyServiceAccount: string
    ephemeralDirectories:
        - gcePd:
            diskType: string
            readOnly: false
            sourceImage: string
            sourceSnapshot: string
          mountPath: string
    host:
        gceInstance:
            accelerators:
                - count: 0
                  type: string
            boostConfigs:
                - accelerators:
                    - count: 0
                      type: string
                  bootDiskSizeGb: 0
                  enableNestedVirtualization: false
                  id: string
                  machineType: string
                  poolSize: 0
            bootDiskSizeGb: 0
            confidentialInstanceConfig:
                enableConfidentialCompute: false
            disablePublicIpAddresses: false
            disableSsh: false
            enableNestedVirtualization: false
            machineType: string
            poolSize: 0
            serviceAccount: string
            serviceAccountScopes:
                - string
            shieldedInstanceConfig:
                enableIntegrityMonitoring: false
                enableSecureBoot: false
                enableVtpm: false
            tags:
                - string
            vmTags:
                string: string
    idleTimeout: string
    labels:
        string: string
    location: string
    maxUsableWorkstations: 0
    persistentDirectories:
        - gcePd:
            diskType: string
            fsType: string
            reclaimPolicy: string
            sizeGb: 0
            sourceSnapshot: string
          mountPath: string
    project: string
    readinessChecks:
        - path: string
          port: 0
    replicaZones:
        - string
    runningTimeout: string
    workstationClusterId: string
    workstationConfigId: string
WorkstationConfig Resource Properties
To learn more about resource properties and how to use them, see Inputs and Outputs in the Architecture and Concepts docs.
Inputs
In Python, inputs that are objects can be passed either as argument classes or as dictionary literals.
The WorkstationConfig resource accepts the following input properties:
- Location string
- The location where the workstation cluster config should reside.
- WorkstationCluster stringId 
- The ID of the parent workstation cluster.
- WorkstationConfig stringId 
- The ID to be assigned to the workstation cluster config.
- AllowedPorts List<WorkstationConfig Allowed Port> 
- A list of port ranges specifying single ports or ranges of ports that are externally accessible in the workstation. Allowed ports must be one of 22, 80, or within range 1024-65535. If not specified defaults to ports 22, 80, and ports 1024-65535. Structure is documented below.
- Annotations Dictionary<string, string>
- Client-specified annotations. This is distinct from labels.
Note: This field is non-authoritative, and will only manage the annotations present in your configuration.
Please refer to the field effective_annotationsfor all of the annotations present on the resource.
- Container
WorkstationConfig Container 
- Container that will be run for each workstation using this configuration when that workstation is started. Structure is documented below.
- DisableTcp boolConnections 
- Disables support for plain TCP connections in the workstation. By default the service supports TCP connections via a websocket relay. Setting this option to true disables that relay, which prevents the usage of services that require plain tcp connections, such as ssh. When enabled, all communication must occur over https or wss.
- DisplayName string
- Human-readable name for this resource.
- EnableAudit boolAgent 
- Whether to enable Linux auditdlogging on the workstation. When enabled, a service account must also be specified that haslogging.buckets.writepermission on the project. Operating system audit logging is distinct from Cloud Audit Logs.
- EncryptionKey WorkstationConfig Encryption Key 
- Encrypts resources of this workstation configuration using a customer-managed encryption key. If specified, the boot disk of the Compute Engine instance and the persistent disk are encrypted using this encryption key. If this field is not set, the disks are encrypted using a generated key. Customer-managed encryption keys do not protect disk metadata. If the customer-managed encryption key is rotated, when the workstation instance is stopped, the system attempts to recreate the persistent disk with the new version of the key. Be sure to keep older versions of the key until the persistent disk is recreated. Otherwise, data on the persistent disk will be lost. If the encryption key is revoked, the workstation session will automatically be stopped within 7 hours. Structure is documented below.
- EphemeralDirectories List<WorkstationConfig Ephemeral Directory> 
- Ephemeral directories which won't persist across workstation sessions. Structure is documented below.
- Host
WorkstationConfig Host 
- Runtime host for a workstation. Structure is documented below.
- IdleTimeout string
- How long to wait before automatically stopping an instance that hasn't recently received any user traffic. A value of 0 indicates that this instance should never time out from idleness. Defaults to 20 minutes. A duration in seconds with up to nine fractional digits, ending with 's'. Example: "3.5s".
- Labels Dictionary<string, string>
- Client-specified labels that are applied to the resource and that are also propagated to the underlying Compute Engine resources.
Note: This field is non-authoritative, and will only manage the labels present in your configuration.
Please refer to the field effective_labelsfor all of the labels present on the resource.
- MaxUsable intWorkstations 
- Maximum number of workstations under this configuration a user can have workstations.workstation.use permission on. Only enforced on CreateWorkstation API calls on the user issuing the API request.
- PersistentDirectories List<WorkstationConfig Persistent Directory> 
- Directories to persist across workstation sessions. Structure is documented below.
- Project string
- The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
- ReadinessChecks List<WorkstationConfig Readiness Check> 
- Readiness checks to be performed on a workstation. Structure is documented below.
- ReplicaZones List<string>
- Specifies the zones used to replicate the VM and disk resources within the region. If set, exactly two zones within the workstation cluster's region must be specified—for example, ['us-central1-a', 'us-central1-f']. If this field is empty, two default zones within the region are used. Immutable after the workstation configuration is created.
- RunningTimeout string
- How long to wait before automatically stopping a workstation after it was started. A value of 0 indicates that workstations using this configuration should never time out from running duration. Must be greater than 0 and less than 24 hours if encryption_keyis set. Defaults to 12 hours. A duration in seconds with up to nine fractional digits, ending with 's'. Example: "3.5s".
- Location string
- The location where the workstation cluster config should reside.
- WorkstationCluster stringId 
- The ID of the parent workstation cluster.
- WorkstationConfig stringId 
- The ID to be assigned to the workstation cluster config.
- AllowedPorts []WorkstationConfig Allowed Port Args 
- A list of port ranges specifying single ports or ranges of ports that are externally accessible in the workstation. Allowed ports must be one of 22, 80, or within range 1024-65535. If not specified defaults to ports 22, 80, and ports 1024-65535. Structure is documented below.
- Annotations map[string]string
- Client-specified annotations. This is distinct from labels.
Note: This field is non-authoritative, and will only manage the annotations present in your configuration.
Please refer to the field effective_annotationsfor all of the annotations present on the resource.
- Container
WorkstationConfig Container Args 
- Container that will be run for each workstation using this configuration when that workstation is started. Structure is documented below.
- DisableTcp boolConnections 
- Disables support for plain TCP connections in the workstation. By default the service supports TCP connections via a websocket relay. Setting this option to true disables that relay, which prevents the usage of services that require plain tcp connections, such as ssh. When enabled, all communication must occur over https or wss.
- DisplayName string
- Human-readable name for this resource.
- EnableAudit boolAgent 
- Whether to enable Linux auditdlogging on the workstation. When enabled, a service account must also be specified that haslogging.buckets.writepermission on the project. Operating system audit logging is distinct from Cloud Audit Logs.
- EncryptionKey WorkstationConfig Encryption Key Args 
- Encrypts resources of this workstation configuration using a customer-managed encryption key. If specified, the boot disk of the Compute Engine instance and the persistent disk are encrypted using this encryption key. If this field is not set, the disks are encrypted using a generated key. Customer-managed encryption keys do not protect disk metadata. If the customer-managed encryption key is rotated, when the workstation instance is stopped, the system attempts to recreate the persistent disk with the new version of the key. Be sure to keep older versions of the key until the persistent disk is recreated. Otherwise, data on the persistent disk will be lost. If the encryption key is revoked, the workstation session will automatically be stopped within 7 hours. Structure is documented below.
- EphemeralDirectories []WorkstationConfig Ephemeral Directory Args 
- Ephemeral directories which won't persist across workstation sessions. Structure is documented below.
- Host
WorkstationConfig Host Args 
- Runtime host for a workstation. Structure is documented below.
- IdleTimeout string
- How long to wait before automatically stopping an instance that hasn't recently received any user traffic. A value of 0 indicates that this instance should never time out from idleness. Defaults to 20 minutes. A duration in seconds with up to nine fractional digits, ending with 's'. Example: "3.5s".
- Labels map[string]string
- Client-specified labels that are applied to the resource and that are also propagated to the underlying Compute Engine resources.
Note: This field is non-authoritative, and will only manage the labels present in your configuration.
Please refer to the field effective_labelsfor all of the labels present on the resource.
- MaxUsable intWorkstations 
- Maximum number of workstations under this configuration a user can have workstations.workstation.use permission on. Only enforced on CreateWorkstation API calls on the user issuing the API request.
- PersistentDirectories []WorkstationConfig Persistent Directory Args 
- Directories to persist across workstation sessions. Structure is documented below.
- Project string
- The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
- ReadinessChecks []WorkstationConfig Readiness Check Args 
- Readiness checks to be performed on a workstation. Structure is documented below.
- ReplicaZones []string
- Specifies the zones used to replicate the VM and disk resources within the region. If set, exactly two zones within the workstation cluster's region must be specified—for example, ['us-central1-a', 'us-central1-f']. If this field is empty, two default zones within the region are used. Immutable after the workstation configuration is created.
- RunningTimeout string
- How long to wait before automatically stopping a workstation after it was started. A value of 0 indicates that workstations using this configuration should never time out from running duration. Must be greater than 0 and less than 24 hours if encryption_keyis set. Defaults to 12 hours. A duration in seconds with up to nine fractional digits, ending with 's'. Example: "3.5s".
- location String
- The location where the workstation cluster config should reside.
- workstationCluster StringId 
- The ID of the parent workstation cluster.
- workstationConfig StringId 
- The ID to be assigned to the workstation cluster config.
- allowedPorts List<WorkstationConfig Allowed Port> 
- A list of port ranges specifying single ports or ranges of ports that are externally accessible in the workstation. Allowed ports must be one of 22, 80, or within range 1024-65535. If not specified defaults to ports 22, 80, and ports 1024-65535. Structure is documented below.
- annotations Map<String,String>
- Client-specified annotations. This is distinct from labels.
Note: This field is non-authoritative, and will only manage the annotations present in your configuration.
Please refer to the field effective_annotationsfor all of the annotations present on the resource.
- container
WorkstationConfig Container 
- Container that will be run for each workstation using this configuration when that workstation is started. Structure is documented below.
- disableTcp BooleanConnections 
- Disables support for plain TCP connections in the workstation. By default the service supports TCP connections via a websocket relay. Setting this option to true disables that relay, which prevents the usage of services that require plain tcp connections, such as ssh. When enabled, all communication must occur over https or wss.
- displayName String
- Human-readable name for this resource.
- enableAudit BooleanAgent 
- Whether to enable Linux auditdlogging on the workstation. When enabled, a service account must also be specified that haslogging.buckets.writepermission on the project. Operating system audit logging is distinct from Cloud Audit Logs.
- encryptionKey WorkstationConfig Encryption Key 
- Encrypts resources of this workstation configuration using a customer-managed encryption key. If specified, the boot disk of the Compute Engine instance and the persistent disk are encrypted using this encryption key. If this field is not set, the disks are encrypted using a generated key. Customer-managed encryption keys do not protect disk metadata. If the customer-managed encryption key is rotated, when the workstation instance is stopped, the system attempts to recreate the persistent disk with the new version of the key. Be sure to keep older versions of the key until the persistent disk is recreated. Otherwise, data on the persistent disk will be lost. If the encryption key is revoked, the workstation session will automatically be stopped within 7 hours. Structure is documented below.
- ephemeralDirectories List<WorkstationConfig Ephemeral Directory> 
- Ephemeral directories which won't persist across workstation sessions. Structure is documented below.
- host
WorkstationConfig Host 
- Runtime host for a workstation. Structure is documented below.
- idleTimeout String
- How long to wait before automatically stopping an instance that hasn't recently received any user traffic. A value of 0 indicates that this instance should never time out from idleness. Defaults to 20 minutes. A duration in seconds with up to nine fractional digits, ending with 's'. Example: "3.5s".
- labels Map<String,String>
- Client-specified labels that are applied to the resource and that are also propagated to the underlying Compute Engine resources.
Note: This field is non-authoritative, and will only manage the labels present in your configuration.
Please refer to the field effective_labelsfor all of the labels present on the resource.
- maxUsable IntegerWorkstations 
- Maximum number of workstations under this configuration a user can have workstations.workstation.use permission on. Only enforced on CreateWorkstation API calls on the user issuing the API request.
- persistentDirectories List<WorkstationConfig Persistent Directory> 
- Directories to persist across workstation sessions. Structure is documented below.
- project String
- The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
- readinessChecks List<WorkstationConfig Readiness Check> 
- Readiness checks to be performed on a workstation. Structure is documented below.
- replicaZones List<String>
- Specifies the zones used to replicate the VM and disk resources within the region. If set, exactly two zones within the workstation cluster's region must be specified—for example, ['us-central1-a', 'us-central1-f']. If this field is empty, two default zones within the region are used. Immutable after the workstation configuration is created.
- runningTimeout String
- How long to wait before automatically stopping a workstation after it was started. A value of 0 indicates that workstations using this configuration should never time out from running duration. Must be greater than 0 and less than 24 hours if encryption_keyis set. Defaults to 12 hours. A duration in seconds with up to nine fractional digits, ending with 's'. Example: "3.5s".
- location string
- The location where the workstation cluster config should reside.
- workstationCluster stringId 
- The ID of the parent workstation cluster.
- workstationConfig stringId 
- The ID to be assigned to the workstation cluster config.
- allowedPorts WorkstationConfig Allowed Port[] 
- A list of port ranges specifying single ports or ranges of ports that are externally accessible in the workstation. Allowed ports must be one of 22, 80, or within range 1024-65535. If not specified defaults to ports 22, 80, and ports 1024-65535. Structure is documented below.
- annotations {[key: string]: string}
- Client-specified annotations. This is distinct from labels.
Note: This field is non-authoritative, and will only manage the annotations present in your configuration.
Please refer to the field effective_annotationsfor all of the annotations present on the resource.
- container
WorkstationConfig Container 
- Container that will be run for each workstation using this configuration when that workstation is started. Structure is documented below.
- disableTcp booleanConnections 
- Disables support for plain TCP connections in the workstation. By default the service supports TCP connections via a websocket relay. Setting this option to true disables that relay, which prevents the usage of services that require plain tcp connections, such as ssh. When enabled, all communication must occur over https or wss.
- displayName string
- Human-readable name for this resource.
- enableAudit booleanAgent 
- Whether to enable Linux auditdlogging on the workstation. When enabled, a service account must also be specified that haslogging.buckets.writepermission on the project. Operating system audit logging is distinct from Cloud Audit Logs.
- encryptionKey WorkstationConfig Encryption Key 
- Encrypts resources of this workstation configuration using a customer-managed encryption key. If specified, the boot disk of the Compute Engine instance and the persistent disk are encrypted using this encryption key. If this field is not set, the disks are encrypted using a generated key. Customer-managed encryption keys do not protect disk metadata. If the customer-managed encryption key is rotated, when the workstation instance is stopped, the system attempts to recreate the persistent disk with the new version of the key. Be sure to keep older versions of the key until the persistent disk is recreated. Otherwise, data on the persistent disk will be lost. If the encryption key is revoked, the workstation session will automatically be stopped within 7 hours. Structure is documented below.
- ephemeralDirectories WorkstationConfig Ephemeral Directory[] 
- Ephemeral directories which won't persist across workstation sessions. Structure is documented below.
- host
WorkstationConfig Host 
- Runtime host for a workstation. Structure is documented below.
- idleTimeout string
- How long to wait before automatically stopping an instance that hasn't recently received any user traffic. A value of 0 indicates that this instance should never time out from idleness. Defaults to 20 minutes. A duration in seconds with up to nine fractional digits, ending with 's'. Example: "3.5s".
- labels {[key: string]: string}
- Client-specified labels that are applied to the resource and that are also propagated to the underlying Compute Engine resources.
Note: This field is non-authoritative, and will only manage the labels present in your configuration.
Please refer to the field effective_labelsfor all of the labels present on the resource.
- maxUsable numberWorkstations 
- Maximum number of workstations under this configuration a user can have workstations.workstation.use permission on. Only enforced on CreateWorkstation API calls on the user issuing the API request.
- persistentDirectories WorkstationConfig Persistent Directory[] 
- Directories to persist across workstation sessions. Structure is documented below.
- project string
- The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
- readinessChecks WorkstationConfig Readiness Check[] 
- Readiness checks to be performed on a workstation. Structure is documented below.
- replicaZones string[]
- Specifies the zones used to replicate the VM and disk resources within the region. If set, exactly two zones within the workstation cluster's region must be specified—for example, ['us-central1-a', 'us-central1-f']. If this field is empty, two default zones within the region are used. Immutable after the workstation configuration is created.
- runningTimeout string
- How long to wait before automatically stopping a workstation after it was started. A value of 0 indicates that workstations using this configuration should never time out from running duration. Must be greater than 0 and less than 24 hours if encryption_keyis set. Defaults to 12 hours. A duration in seconds with up to nine fractional digits, ending with 's'. Example: "3.5s".
- location str
- The location where the workstation cluster config should reside.
- workstation_cluster_ strid 
- The ID of the parent workstation cluster.
- workstation_config_ strid 
- The ID to be assigned to the workstation cluster config.
- allowed_ports Sequence[WorkstationConfig Allowed Port Args] 
- A list of port ranges specifying single ports or ranges of ports that are externally accessible in the workstation. Allowed ports must be one of 22, 80, or within range 1024-65535. If not specified defaults to ports 22, 80, and ports 1024-65535. Structure is documented below.
- annotations Mapping[str, str]
- Client-specified annotations. This is distinct from labels.
Note: This field is non-authoritative, and will only manage the annotations present in your configuration.
Please refer to the field effective_annotationsfor all of the annotations present on the resource.
- container
WorkstationConfig Container Args 
- Container that will be run for each workstation using this configuration when that workstation is started. Structure is documented below.
- disable_tcp_ boolconnections 
- Disables support for plain TCP connections in the workstation. By default the service supports TCP connections via a websocket relay. Setting this option to true disables that relay, which prevents the usage of services that require plain tcp connections, such as ssh. When enabled, all communication must occur over https or wss.
- display_name str
- Human-readable name for this resource.
- enable_audit_ boolagent 
- Whether to enable Linux auditdlogging on the workstation. When enabled, a service account must also be specified that haslogging.buckets.writepermission on the project. Operating system audit logging is distinct from Cloud Audit Logs.
- encryption_key WorkstationConfig Encryption Key Args 
- Encrypts resources of this workstation configuration using a customer-managed encryption key. If specified, the boot disk of the Compute Engine instance and the persistent disk are encrypted using this encryption key. If this field is not set, the disks are encrypted using a generated key. Customer-managed encryption keys do not protect disk metadata. If the customer-managed encryption key is rotated, when the workstation instance is stopped, the system attempts to recreate the persistent disk with the new version of the key. Be sure to keep older versions of the key until the persistent disk is recreated. Otherwise, data on the persistent disk will be lost. If the encryption key is revoked, the workstation session will automatically be stopped within 7 hours. Structure is documented below.
- ephemeral_directories Sequence[WorkstationConfig Ephemeral Directory Args] 
- Ephemeral directories which won't persist across workstation sessions. Structure is documented below.
- host
WorkstationConfig Host Args 
- Runtime host for a workstation. Structure is documented below.
- idle_timeout str
- How long to wait before automatically stopping an instance that hasn't recently received any user traffic. A value of 0 indicates that this instance should never time out from idleness. Defaults to 20 minutes. A duration in seconds with up to nine fractional digits, ending with 's'. Example: "3.5s".
- labels Mapping[str, str]
- Client-specified labels that are applied to the resource and that are also propagated to the underlying Compute Engine resources.
Note: This field is non-authoritative, and will only manage the labels present in your configuration.
Please refer to the field effective_labelsfor all of the labels present on the resource.
- max_usable_ intworkstations 
- Maximum number of workstations under this configuration a user can have workstations.workstation.use permission on. Only enforced on CreateWorkstation API calls on the user issuing the API request.
- persistent_directories Sequence[WorkstationConfig Persistent Directory Args] 
- Directories to persist across workstation sessions. Structure is documented below.
- project str
- The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
- readiness_checks Sequence[WorkstationConfig Readiness Check Args] 
- Readiness checks to be performed on a workstation. Structure is documented below.
- replica_zones Sequence[str]
- Specifies the zones used to replicate the VM and disk resources within the region. If set, exactly two zones within the workstation cluster's region must be specified—for example, ['us-central1-a', 'us-central1-f']. If this field is empty, two default zones within the region are used. Immutable after the workstation configuration is created.
- running_timeout str
- How long to wait before automatically stopping a workstation after it was started. A value of 0 indicates that workstations using this configuration should never time out from running duration. Must be greater than 0 and less than 24 hours if encryption_keyis set. Defaults to 12 hours. A duration in seconds with up to nine fractional digits, ending with 's'. Example: "3.5s".
- location String
- The location where the workstation cluster config should reside.
- workstationCluster StringId 
- The ID of the parent workstation cluster.
- workstationConfig StringId 
- The ID to be assigned to the workstation cluster config.
- allowedPorts List<Property Map>
- A list of port ranges specifying single ports or ranges of ports that are externally accessible in the workstation. Allowed ports must be one of 22, 80, or within range 1024-65535. If not specified defaults to ports 22, 80, and ports 1024-65535. Structure is documented below.
- annotations Map<String>
- Client-specified annotations. This is distinct from labels.
Note: This field is non-authoritative, and will only manage the annotations present in your configuration.
Please refer to the field effective_annotationsfor all of the annotations present on the resource.
- container Property Map
- Container that will be run for each workstation using this configuration when that workstation is started. Structure is documented below.
- disableTcp BooleanConnections 
- Disables support for plain TCP connections in the workstation. By default the service supports TCP connections via a websocket relay. Setting this option to true disables that relay, which prevents the usage of services that require plain tcp connections, such as ssh. When enabled, all communication must occur over https or wss.
- displayName String
- Human-readable name for this resource.
- enableAudit BooleanAgent 
- Whether to enable Linux auditdlogging on the workstation. When enabled, a service account must also be specified that haslogging.buckets.writepermission on the project. Operating system audit logging is distinct from Cloud Audit Logs.
- encryptionKey Property Map
- Encrypts resources of this workstation configuration using a customer-managed encryption key. If specified, the boot disk of the Compute Engine instance and the persistent disk are encrypted using this encryption key. If this field is not set, the disks are encrypted using a generated key. Customer-managed encryption keys do not protect disk metadata. If the customer-managed encryption key is rotated, when the workstation instance is stopped, the system attempts to recreate the persistent disk with the new version of the key. Be sure to keep older versions of the key until the persistent disk is recreated. Otherwise, data on the persistent disk will be lost. If the encryption key is revoked, the workstation session will automatically be stopped within 7 hours. Structure is documented below.
- ephemeralDirectories List<Property Map>
- Ephemeral directories which won't persist across workstation sessions. Structure is documented below.
- host Property Map
- Runtime host for a workstation. Structure is documented below.
- idleTimeout String
- How long to wait before automatically stopping an instance that hasn't recently received any user traffic. A value of 0 indicates that this instance should never time out from idleness. Defaults to 20 minutes. A duration in seconds with up to nine fractional digits, ending with 's'. Example: "3.5s".
- labels Map<String>
- Client-specified labels that are applied to the resource and that are also propagated to the underlying Compute Engine resources.
Note: This field is non-authoritative, and will only manage the labels present in your configuration.
Please refer to the field effective_labelsfor all of the labels present on the resource.
- maxUsable NumberWorkstations 
- Maximum number of workstations under this configuration a user can have workstations.workstation.use permission on. Only enforced on CreateWorkstation API calls on the user issuing the API request.
- persistentDirectories List<Property Map>
- Directories to persist across workstation sessions. Structure is documented below.
- project String
- The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
- readinessChecks List<Property Map>
- Readiness checks to be performed on a workstation. Structure is documented below.
- replicaZones List<String>
- Specifies the zones used to replicate the VM and disk resources within the region. If set, exactly two zones within the workstation cluster's region must be specified—for example, ['us-central1-a', 'us-central1-f']. If this field is empty, two default zones within the region are used. Immutable after the workstation configuration is created.
- runningTimeout String
- How long to wait before automatically stopping a workstation after it was started. A value of 0 indicates that workstations using this configuration should never time out from running duration. Must be greater than 0 and less than 24 hours if encryption_keyis set. Defaults to 12 hours. A duration in seconds with up to nine fractional digits, ending with 's'. Example: "3.5s".
Outputs
All input properties are implicitly available as output properties. Additionally, the WorkstationConfig resource produces the following output properties:
- Conditions
List<WorkstationConfig Condition> 
- Status conditions describing the current resource state. Structure is documented below.
- CreateTime string
- Time when this resource was created.
- Degraded bool
- Whether this resource is in degraded mode, in which case it may require user action to restore full functionality. Details can be found in the conditions field.
- EffectiveAnnotations Dictionary<string, string>
- EffectiveLabels Dictionary<string, string>
- All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
- Etag string
- Checksum computed by the server. May be sent on update and delete requests to ensure that the client has an up-to-date value before proceeding.
- Id string
- The provider-assigned unique ID for this managed resource.
- Name string
- Full name of this resource.
- PulumiLabels Dictionary<string, string>
- The combination of labels configured directly on the resource and default labels configured on the provider.
- Uid string
- The system-generated UID of the resource.
- Conditions
[]WorkstationConfig Condition 
- Status conditions describing the current resource state. Structure is documented below.
- CreateTime string
- Time when this resource was created.
- Degraded bool
- Whether this resource is in degraded mode, in which case it may require user action to restore full functionality. Details can be found in the conditions field.
- EffectiveAnnotations map[string]string
- EffectiveLabels map[string]string
- All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
- Etag string
- Checksum computed by the server. May be sent on update and delete requests to ensure that the client has an up-to-date value before proceeding.
- Id string
- The provider-assigned unique ID for this managed resource.
- Name string
- Full name of this resource.
- PulumiLabels map[string]string
- The combination of labels configured directly on the resource and default labels configured on the provider.
- Uid string
- The system-generated UID of the resource.
- conditions
List<WorkstationConfig Condition> 
- Status conditions describing the current resource state. Structure is documented below.
- createTime String
- Time when this resource was created.
- degraded Boolean
- Whether this resource is in degraded mode, in which case it may require user action to restore full functionality. Details can be found in the conditions field.
- effectiveAnnotations Map<String,String>
- effectiveLabels Map<String,String>
- All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
- etag String
- Checksum computed by the server. May be sent on update and delete requests to ensure that the client has an up-to-date value before proceeding.
- id String
- The provider-assigned unique ID for this managed resource.
- name String
- Full name of this resource.
- pulumiLabels Map<String,String>
- The combination of labels configured directly on the resource and default labels configured on the provider.
- uid String
- The system-generated UID of the resource.
- conditions
WorkstationConfig Condition[] 
- Status conditions describing the current resource state. Structure is documented below.
- createTime string
- Time when this resource was created.
- degraded boolean
- Whether this resource is in degraded mode, in which case it may require user action to restore full functionality. Details can be found in the conditions field.
- effectiveAnnotations {[key: string]: string}
- effectiveLabels {[key: string]: string}
- All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
- etag string
- Checksum computed by the server. May be sent on update and delete requests to ensure that the client has an up-to-date value before proceeding.
- id string
- The provider-assigned unique ID for this managed resource.
- name string
- Full name of this resource.
- pulumiLabels {[key: string]: string}
- The combination of labels configured directly on the resource and default labels configured on the provider.
- uid string
- The system-generated UID of the resource.
- conditions
Sequence[WorkstationConfig Condition] 
- Status conditions describing the current resource state. Structure is documented below.
- create_time str
- Time when this resource was created.
- degraded bool
- Whether this resource is in degraded mode, in which case it may require user action to restore full functionality. Details can be found in the conditions field.
- effective_annotations Mapping[str, str]
- effective_labels Mapping[str, str]
- All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
- etag str
- Checksum computed by the server. May be sent on update and delete requests to ensure that the client has an up-to-date value before proceeding.
- id str
- The provider-assigned unique ID for this managed resource.
- name str
- Full name of this resource.
- pulumi_labels Mapping[str, str]
- The combination of labels configured directly on the resource and default labels configured on the provider.
- uid str
- The system-generated UID of the resource.
- conditions List<Property Map>
- Status conditions describing the current resource state. Structure is documented below.
- createTime String
- Time when this resource was created.
- degraded Boolean
- Whether this resource is in degraded mode, in which case it may require user action to restore full functionality. Details can be found in the conditions field.
- effectiveAnnotations Map<String>
- effectiveLabels Map<String>
- All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
- etag String
- Checksum computed by the server. May be sent on update and delete requests to ensure that the client has an up-to-date value before proceeding.
- id String
- The provider-assigned unique ID for this managed resource.
- name String
- Full name of this resource.
- pulumiLabels Map<String>
- The combination of labels configured directly on the resource and default labels configured on the provider.
- uid String
- The system-generated UID of the resource.
Look up Existing WorkstationConfig Resource
Get an existing WorkstationConfig 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?: WorkstationConfigState, opts?: CustomResourceOptions): WorkstationConfig@staticmethod
def get(resource_name: str,
        id: str,
        opts: Optional[ResourceOptions] = None,
        allowed_ports: Optional[Sequence[WorkstationConfigAllowedPortArgs]] = None,
        annotations: Optional[Mapping[str, str]] = None,
        conditions: Optional[Sequence[WorkstationConfigConditionArgs]] = None,
        container: Optional[WorkstationConfigContainerArgs] = None,
        create_time: Optional[str] = None,
        degraded: Optional[bool] = None,
        disable_tcp_connections: Optional[bool] = None,
        display_name: Optional[str] = None,
        effective_annotations: Optional[Mapping[str, str]] = None,
        effective_labels: Optional[Mapping[str, str]] = None,
        enable_audit_agent: Optional[bool] = None,
        encryption_key: Optional[WorkstationConfigEncryptionKeyArgs] = None,
        ephemeral_directories: Optional[Sequence[WorkstationConfigEphemeralDirectoryArgs]] = None,
        etag: Optional[str] = None,
        host: Optional[WorkstationConfigHostArgs] = None,
        idle_timeout: Optional[str] = None,
        labels: Optional[Mapping[str, str]] = None,
        location: Optional[str] = None,
        max_usable_workstations: Optional[int] = None,
        name: Optional[str] = None,
        persistent_directories: Optional[Sequence[WorkstationConfigPersistentDirectoryArgs]] = None,
        project: Optional[str] = None,
        pulumi_labels: Optional[Mapping[str, str]] = None,
        readiness_checks: Optional[Sequence[WorkstationConfigReadinessCheckArgs]] = None,
        replica_zones: Optional[Sequence[str]] = None,
        running_timeout: Optional[str] = None,
        uid: Optional[str] = None,
        workstation_cluster_id: Optional[str] = None,
        workstation_config_id: Optional[str] = None) -> WorkstationConfigfunc GetWorkstationConfig(ctx *Context, name string, id IDInput, state *WorkstationConfigState, opts ...ResourceOption) (*WorkstationConfig, error)public static WorkstationConfig Get(string name, Input<string> id, WorkstationConfigState? state, CustomResourceOptions? opts = null)public static WorkstationConfig get(String name, Output<String> id, WorkstationConfigState state, CustomResourceOptions options)resources:  _:    type: gcp:workstations:WorkstationConfig    get:      id: ${id}- 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.
- AllowedPorts List<WorkstationConfig Allowed Port> 
- A list of port ranges specifying single ports or ranges of ports that are externally accessible in the workstation. Allowed ports must be one of 22, 80, or within range 1024-65535. If not specified defaults to ports 22, 80, and ports 1024-65535. Structure is documented below.
- Annotations Dictionary<string, string>
- Client-specified annotations. This is distinct from labels.
Note: This field is non-authoritative, and will only manage the annotations present in your configuration.
Please refer to the field effective_annotationsfor all of the annotations present on the resource.
- Conditions
List<WorkstationConfig Condition> 
- Status conditions describing the current resource state. Structure is documented below.
- Container
WorkstationConfig Container 
- Container that will be run for each workstation using this configuration when that workstation is started. Structure is documented below.
- CreateTime string
- Time when this resource was created.
- Degraded bool
- Whether this resource is in degraded mode, in which case it may require user action to restore full functionality. Details can be found in the conditions field.
- DisableTcp boolConnections 
- Disables support for plain TCP connections in the workstation. By default the service supports TCP connections via a websocket relay. Setting this option to true disables that relay, which prevents the usage of services that require plain tcp connections, such as ssh. When enabled, all communication must occur over https or wss.
- DisplayName string
- Human-readable name for this resource.
- EffectiveAnnotations Dictionary<string, string>
- EffectiveLabels Dictionary<string, string>
- All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
- EnableAudit boolAgent 
- Whether to enable Linux auditdlogging on the workstation. When enabled, a service account must also be specified that haslogging.buckets.writepermission on the project. Operating system audit logging is distinct from Cloud Audit Logs.
- EncryptionKey WorkstationConfig Encryption Key 
- Encrypts resources of this workstation configuration using a customer-managed encryption key. If specified, the boot disk of the Compute Engine instance and the persistent disk are encrypted using this encryption key. If this field is not set, the disks are encrypted using a generated key. Customer-managed encryption keys do not protect disk metadata. If the customer-managed encryption key is rotated, when the workstation instance is stopped, the system attempts to recreate the persistent disk with the new version of the key. Be sure to keep older versions of the key until the persistent disk is recreated. Otherwise, data on the persistent disk will be lost. If the encryption key is revoked, the workstation session will automatically be stopped within 7 hours. Structure is documented below.
- EphemeralDirectories List<WorkstationConfig Ephemeral Directory> 
- Ephemeral directories which won't persist across workstation sessions. Structure is documented below.
- Etag string
- Checksum computed by the server. May be sent on update and delete requests to ensure that the client has an up-to-date value before proceeding.
- Host
WorkstationConfig Host 
- Runtime host for a workstation. Structure is documented below.
- IdleTimeout string
- How long to wait before automatically stopping an instance that hasn't recently received any user traffic. A value of 0 indicates that this instance should never time out from idleness. Defaults to 20 minutes. A duration in seconds with up to nine fractional digits, ending with 's'. Example: "3.5s".
- Labels Dictionary<string, string>
- Client-specified labels that are applied to the resource and that are also propagated to the underlying Compute Engine resources.
Note: This field is non-authoritative, and will only manage the labels present in your configuration.
Please refer to the field effective_labelsfor all of the labels present on the resource.
- Location string
- The location where the workstation cluster config should reside.
- MaxUsable intWorkstations 
- Maximum number of workstations under this configuration a user can have workstations.workstation.use permission on. Only enforced on CreateWorkstation API calls on the user issuing the API request.
- Name string
- Full name of this resource.
- PersistentDirectories List<WorkstationConfig Persistent Directory> 
- Directories to persist across workstation sessions. Structure is documented below.
- Project string
- The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
- PulumiLabels Dictionary<string, string>
- The combination of labels configured directly on the resource and default labels configured on the provider.
- ReadinessChecks List<WorkstationConfig Readiness Check> 
- Readiness checks to be performed on a workstation. Structure is documented below.
- ReplicaZones List<string>
- Specifies the zones used to replicate the VM and disk resources within the region. If set, exactly two zones within the workstation cluster's region must be specified—for example, ['us-central1-a', 'us-central1-f']. If this field is empty, two default zones within the region are used. Immutable after the workstation configuration is created.
- RunningTimeout string
- How long to wait before automatically stopping a workstation after it was started. A value of 0 indicates that workstations using this configuration should never time out from running duration. Must be greater than 0 and less than 24 hours if encryption_keyis set. Defaults to 12 hours. A duration in seconds with up to nine fractional digits, ending with 's'. Example: "3.5s".
- Uid string
- The system-generated UID of the resource.
- WorkstationCluster stringId 
- The ID of the parent workstation cluster.
- WorkstationConfig stringId 
- The ID to be assigned to the workstation cluster config.
- AllowedPorts []WorkstationConfig Allowed Port Args 
- A list of port ranges specifying single ports or ranges of ports that are externally accessible in the workstation. Allowed ports must be one of 22, 80, or within range 1024-65535. If not specified defaults to ports 22, 80, and ports 1024-65535. Structure is documented below.
- Annotations map[string]string
- Client-specified annotations. This is distinct from labels.
Note: This field is non-authoritative, and will only manage the annotations present in your configuration.
Please refer to the field effective_annotationsfor all of the annotations present on the resource.
- Conditions
[]WorkstationConfig Condition Args 
- Status conditions describing the current resource state. Structure is documented below.
- Container
WorkstationConfig Container Args 
- Container that will be run for each workstation using this configuration when that workstation is started. Structure is documented below.
- CreateTime string
- Time when this resource was created.
- Degraded bool
- Whether this resource is in degraded mode, in which case it may require user action to restore full functionality. Details can be found in the conditions field.
- DisableTcp boolConnections 
- Disables support for plain TCP connections in the workstation. By default the service supports TCP connections via a websocket relay. Setting this option to true disables that relay, which prevents the usage of services that require plain tcp connections, such as ssh. When enabled, all communication must occur over https or wss.
- DisplayName string
- Human-readable name for this resource.
- EffectiveAnnotations map[string]string
- EffectiveLabels map[string]string
- All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
- EnableAudit boolAgent 
- Whether to enable Linux auditdlogging on the workstation. When enabled, a service account must also be specified that haslogging.buckets.writepermission on the project. Operating system audit logging is distinct from Cloud Audit Logs.
- EncryptionKey WorkstationConfig Encryption Key Args 
- Encrypts resources of this workstation configuration using a customer-managed encryption key. If specified, the boot disk of the Compute Engine instance and the persistent disk are encrypted using this encryption key. If this field is not set, the disks are encrypted using a generated key. Customer-managed encryption keys do not protect disk metadata. If the customer-managed encryption key is rotated, when the workstation instance is stopped, the system attempts to recreate the persistent disk with the new version of the key. Be sure to keep older versions of the key until the persistent disk is recreated. Otherwise, data on the persistent disk will be lost. If the encryption key is revoked, the workstation session will automatically be stopped within 7 hours. Structure is documented below.
- EphemeralDirectories []WorkstationConfig Ephemeral Directory Args 
- Ephemeral directories which won't persist across workstation sessions. Structure is documented below.
- Etag string
- Checksum computed by the server. May be sent on update and delete requests to ensure that the client has an up-to-date value before proceeding.
- Host
WorkstationConfig Host Args 
- Runtime host for a workstation. Structure is documented below.
- IdleTimeout string
- How long to wait before automatically stopping an instance that hasn't recently received any user traffic. A value of 0 indicates that this instance should never time out from idleness. Defaults to 20 minutes. A duration in seconds with up to nine fractional digits, ending with 's'. Example: "3.5s".
- Labels map[string]string
- Client-specified labels that are applied to the resource and that are also propagated to the underlying Compute Engine resources.
Note: This field is non-authoritative, and will only manage the labels present in your configuration.
Please refer to the field effective_labelsfor all of the labels present on the resource.
- Location string
- The location where the workstation cluster config should reside.
- MaxUsable intWorkstations 
- Maximum number of workstations under this configuration a user can have workstations.workstation.use permission on. Only enforced on CreateWorkstation API calls on the user issuing the API request.
- Name string
- Full name of this resource.
- PersistentDirectories []WorkstationConfig Persistent Directory Args 
- Directories to persist across workstation sessions. Structure is documented below.
- Project string
- The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
- PulumiLabels map[string]string
- The combination of labels configured directly on the resource and default labels configured on the provider.
- ReadinessChecks []WorkstationConfig Readiness Check Args 
- Readiness checks to be performed on a workstation. Structure is documented below.
- ReplicaZones []string
- Specifies the zones used to replicate the VM and disk resources within the region. If set, exactly two zones within the workstation cluster's region must be specified—for example, ['us-central1-a', 'us-central1-f']. If this field is empty, two default zones within the region are used. Immutable after the workstation configuration is created.
- RunningTimeout string
- How long to wait before automatically stopping a workstation after it was started. A value of 0 indicates that workstations using this configuration should never time out from running duration. Must be greater than 0 and less than 24 hours if encryption_keyis set. Defaults to 12 hours. A duration in seconds with up to nine fractional digits, ending with 's'. Example: "3.5s".
- Uid string
- The system-generated UID of the resource.
- WorkstationCluster stringId 
- The ID of the parent workstation cluster.
- WorkstationConfig stringId 
- The ID to be assigned to the workstation cluster config.
- allowedPorts List<WorkstationConfig Allowed Port> 
- A list of port ranges specifying single ports or ranges of ports that are externally accessible in the workstation. Allowed ports must be one of 22, 80, or within range 1024-65535. If not specified defaults to ports 22, 80, and ports 1024-65535. Structure is documented below.
- annotations Map<String,String>
- Client-specified annotations. This is distinct from labels.
Note: This field is non-authoritative, and will only manage the annotations present in your configuration.
Please refer to the field effective_annotationsfor all of the annotations present on the resource.
- conditions
List<WorkstationConfig Condition> 
- Status conditions describing the current resource state. Structure is documented below.
- container
WorkstationConfig Container 
- Container that will be run for each workstation using this configuration when that workstation is started. Structure is documented below.
- createTime String
- Time when this resource was created.
- degraded Boolean
- Whether this resource is in degraded mode, in which case it may require user action to restore full functionality. Details can be found in the conditions field.
- disableTcp BooleanConnections 
- Disables support for plain TCP connections in the workstation. By default the service supports TCP connections via a websocket relay. Setting this option to true disables that relay, which prevents the usage of services that require plain tcp connections, such as ssh. When enabled, all communication must occur over https or wss.
- displayName String
- Human-readable name for this resource.
- effectiveAnnotations Map<String,String>
- effectiveLabels Map<String,String>
- All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
- enableAudit BooleanAgent 
- Whether to enable Linux auditdlogging on the workstation. When enabled, a service account must also be specified that haslogging.buckets.writepermission on the project. Operating system audit logging is distinct from Cloud Audit Logs.
- encryptionKey WorkstationConfig Encryption Key 
- Encrypts resources of this workstation configuration using a customer-managed encryption key. If specified, the boot disk of the Compute Engine instance and the persistent disk are encrypted using this encryption key. If this field is not set, the disks are encrypted using a generated key. Customer-managed encryption keys do not protect disk metadata. If the customer-managed encryption key is rotated, when the workstation instance is stopped, the system attempts to recreate the persistent disk with the new version of the key. Be sure to keep older versions of the key until the persistent disk is recreated. Otherwise, data on the persistent disk will be lost. If the encryption key is revoked, the workstation session will automatically be stopped within 7 hours. Structure is documented below.
- ephemeralDirectories List<WorkstationConfig Ephemeral Directory> 
- Ephemeral directories which won't persist across workstation sessions. Structure is documented below.
- etag String
- Checksum computed by the server. May be sent on update and delete requests to ensure that the client has an up-to-date value before proceeding.
- host
WorkstationConfig Host 
- Runtime host for a workstation. Structure is documented below.
- idleTimeout String
- How long to wait before automatically stopping an instance that hasn't recently received any user traffic. A value of 0 indicates that this instance should never time out from idleness. Defaults to 20 minutes. A duration in seconds with up to nine fractional digits, ending with 's'. Example: "3.5s".
- labels Map<String,String>
- Client-specified labels that are applied to the resource and that are also propagated to the underlying Compute Engine resources.
Note: This field is non-authoritative, and will only manage the labels present in your configuration.
Please refer to the field effective_labelsfor all of the labels present on the resource.
- location String
- The location where the workstation cluster config should reside.
- maxUsable IntegerWorkstations 
- Maximum number of workstations under this configuration a user can have workstations.workstation.use permission on. Only enforced on CreateWorkstation API calls on the user issuing the API request.
- name String
- Full name of this resource.
- persistentDirectories List<WorkstationConfig Persistent Directory> 
- Directories to persist across workstation sessions. Structure is documented below.
- project String
- The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
- pulumiLabels Map<String,String>
- The combination of labels configured directly on the resource and default labels configured on the provider.
- readinessChecks List<WorkstationConfig Readiness Check> 
- Readiness checks to be performed on a workstation. Structure is documented below.
- replicaZones List<String>
- Specifies the zones used to replicate the VM and disk resources within the region. If set, exactly two zones within the workstation cluster's region must be specified—for example, ['us-central1-a', 'us-central1-f']. If this field is empty, two default zones within the region are used. Immutable after the workstation configuration is created.
- runningTimeout String
- How long to wait before automatically stopping a workstation after it was started. A value of 0 indicates that workstations using this configuration should never time out from running duration. Must be greater than 0 and less than 24 hours if encryption_keyis set. Defaults to 12 hours. A duration in seconds with up to nine fractional digits, ending with 's'. Example: "3.5s".
- uid String
- The system-generated UID of the resource.
- workstationCluster StringId 
- The ID of the parent workstation cluster.
- workstationConfig StringId 
- The ID to be assigned to the workstation cluster config.
- allowedPorts WorkstationConfig Allowed Port[] 
- A list of port ranges specifying single ports or ranges of ports that are externally accessible in the workstation. Allowed ports must be one of 22, 80, or within range 1024-65535. If not specified defaults to ports 22, 80, and ports 1024-65535. Structure is documented below.
- annotations {[key: string]: string}
- Client-specified annotations. This is distinct from labels.
Note: This field is non-authoritative, and will only manage the annotations present in your configuration.
Please refer to the field effective_annotationsfor all of the annotations present on the resource.
- conditions
WorkstationConfig Condition[] 
- Status conditions describing the current resource state. Structure is documented below.
- container
WorkstationConfig Container 
- Container that will be run for each workstation using this configuration when that workstation is started. Structure is documented below.
- createTime string
- Time when this resource was created.
- degraded boolean
- Whether this resource is in degraded mode, in which case it may require user action to restore full functionality. Details can be found in the conditions field.
- disableTcp booleanConnections 
- Disables support for plain TCP connections in the workstation. By default the service supports TCP connections via a websocket relay. Setting this option to true disables that relay, which prevents the usage of services that require plain tcp connections, such as ssh. When enabled, all communication must occur over https or wss.
- displayName string
- Human-readable name for this resource.
- effectiveAnnotations {[key: string]: string}
- effectiveLabels {[key: string]: string}
- All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
- enableAudit booleanAgent 
- Whether to enable Linux auditdlogging on the workstation. When enabled, a service account must also be specified that haslogging.buckets.writepermission on the project. Operating system audit logging is distinct from Cloud Audit Logs.
- encryptionKey WorkstationConfig Encryption Key 
- Encrypts resources of this workstation configuration using a customer-managed encryption key. If specified, the boot disk of the Compute Engine instance and the persistent disk are encrypted using this encryption key. If this field is not set, the disks are encrypted using a generated key. Customer-managed encryption keys do not protect disk metadata. If the customer-managed encryption key is rotated, when the workstation instance is stopped, the system attempts to recreate the persistent disk with the new version of the key. Be sure to keep older versions of the key until the persistent disk is recreated. Otherwise, data on the persistent disk will be lost. If the encryption key is revoked, the workstation session will automatically be stopped within 7 hours. Structure is documented below.
- ephemeralDirectories WorkstationConfig Ephemeral Directory[] 
- Ephemeral directories which won't persist across workstation sessions. Structure is documented below.
- etag string
- Checksum computed by the server. May be sent on update and delete requests to ensure that the client has an up-to-date value before proceeding.
- host
WorkstationConfig Host 
- Runtime host for a workstation. Structure is documented below.
- idleTimeout string
- How long to wait before automatically stopping an instance that hasn't recently received any user traffic. A value of 0 indicates that this instance should never time out from idleness. Defaults to 20 minutes. A duration in seconds with up to nine fractional digits, ending with 's'. Example: "3.5s".
- labels {[key: string]: string}
- Client-specified labels that are applied to the resource and that are also propagated to the underlying Compute Engine resources.
Note: This field is non-authoritative, and will only manage the labels present in your configuration.
Please refer to the field effective_labelsfor all of the labels present on the resource.
- location string
- The location where the workstation cluster config should reside.
- maxUsable numberWorkstations 
- Maximum number of workstations under this configuration a user can have workstations.workstation.use permission on. Only enforced on CreateWorkstation API calls on the user issuing the API request.
- name string
- Full name of this resource.
- persistentDirectories WorkstationConfig Persistent Directory[] 
- Directories to persist across workstation sessions. Structure is documented below.
- project string
- The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
- pulumiLabels {[key: string]: string}
- The combination of labels configured directly on the resource and default labels configured on the provider.
- readinessChecks WorkstationConfig Readiness Check[] 
- Readiness checks to be performed on a workstation. Structure is documented below.
- replicaZones string[]
- Specifies the zones used to replicate the VM and disk resources within the region. If set, exactly two zones within the workstation cluster's region must be specified—for example, ['us-central1-a', 'us-central1-f']. If this field is empty, two default zones within the region are used. Immutable after the workstation configuration is created.
- runningTimeout string
- How long to wait before automatically stopping a workstation after it was started. A value of 0 indicates that workstations using this configuration should never time out from running duration. Must be greater than 0 and less than 24 hours if encryption_keyis set. Defaults to 12 hours. A duration in seconds with up to nine fractional digits, ending with 's'. Example: "3.5s".
- uid string
- The system-generated UID of the resource.
- workstationCluster stringId 
- The ID of the parent workstation cluster.
- workstationConfig stringId 
- The ID to be assigned to the workstation cluster config.
- allowed_ports Sequence[WorkstationConfig Allowed Port Args] 
- A list of port ranges specifying single ports or ranges of ports that are externally accessible in the workstation. Allowed ports must be one of 22, 80, or within range 1024-65535. If not specified defaults to ports 22, 80, and ports 1024-65535. Structure is documented below.
- annotations Mapping[str, str]
- Client-specified annotations. This is distinct from labels.
Note: This field is non-authoritative, and will only manage the annotations present in your configuration.
Please refer to the field effective_annotationsfor all of the annotations present on the resource.
- conditions
Sequence[WorkstationConfig Condition Args] 
- Status conditions describing the current resource state. Structure is documented below.
- container
WorkstationConfig Container Args 
- Container that will be run for each workstation using this configuration when that workstation is started. Structure is documented below.
- create_time str
- Time when this resource was created.
- degraded bool
- Whether this resource is in degraded mode, in which case it may require user action to restore full functionality. Details can be found in the conditions field.
- disable_tcp_ boolconnections 
- Disables support for plain TCP connections in the workstation. By default the service supports TCP connections via a websocket relay. Setting this option to true disables that relay, which prevents the usage of services that require plain tcp connections, such as ssh. When enabled, all communication must occur over https or wss.
- display_name str
- Human-readable name for this resource.
- effective_annotations Mapping[str, str]
- effective_labels Mapping[str, str]
- All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
- enable_audit_ boolagent 
- Whether to enable Linux auditdlogging on the workstation. When enabled, a service account must also be specified that haslogging.buckets.writepermission on the project. Operating system audit logging is distinct from Cloud Audit Logs.
- encryption_key WorkstationConfig Encryption Key Args 
- Encrypts resources of this workstation configuration using a customer-managed encryption key. If specified, the boot disk of the Compute Engine instance and the persistent disk are encrypted using this encryption key. If this field is not set, the disks are encrypted using a generated key. Customer-managed encryption keys do not protect disk metadata. If the customer-managed encryption key is rotated, when the workstation instance is stopped, the system attempts to recreate the persistent disk with the new version of the key. Be sure to keep older versions of the key until the persistent disk is recreated. Otherwise, data on the persistent disk will be lost. If the encryption key is revoked, the workstation session will automatically be stopped within 7 hours. Structure is documented below.
- ephemeral_directories Sequence[WorkstationConfig Ephemeral Directory Args] 
- Ephemeral directories which won't persist across workstation sessions. Structure is documented below.
- etag str
- Checksum computed by the server. May be sent on update and delete requests to ensure that the client has an up-to-date value before proceeding.
- host
WorkstationConfig Host Args 
- Runtime host for a workstation. Structure is documented below.
- idle_timeout str
- How long to wait before automatically stopping an instance that hasn't recently received any user traffic. A value of 0 indicates that this instance should never time out from idleness. Defaults to 20 minutes. A duration in seconds with up to nine fractional digits, ending with 's'. Example: "3.5s".
- labels Mapping[str, str]
- Client-specified labels that are applied to the resource and that are also propagated to the underlying Compute Engine resources.
Note: This field is non-authoritative, and will only manage the labels present in your configuration.
Please refer to the field effective_labelsfor all of the labels present on the resource.
- location str
- The location where the workstation cluster config should reside.
- max_usable_ intworkstations 
- Maximum number of workstations under this configuration a user can have workstations.workstation.use permission on. Only enforced on CreateWorkstation API calls on the user issuing the API request.
- name str
- Full name of this resource.
- persistent_directories Sequence[WorkstationConfig Persistent Directory Args] 
- Directories to persist across workstation sessions. Structure is documented below.
- project str
- The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
- pulumi_labels Mapping[str, str]
- The combination of labels configured directly on the resource and default labels configured on the provider.
- readiness_checks Sequence[WorkstationConfig Readiness Check Args] 
- Readiness checks to be performed on a workstation. Structure is documented below.
- replica_zones Sequence[str]
- Specifies the zones used to replicate the VM and disk resources within the region. If set, exactly two zones within the workstation cluster's region must be specified—for example, ['us-central1-a', 'us-central1-f']. If this field is empty, two default zones within the region are used. Immutable after the workstation configuration is created.
- running_timeout str
- How long to wait before automatically stopping a workstation after it was started. A value of 0 indicates that workstations using this configuration should never time out from running duration. Must be greater than 0 and less than 24 hours if encryption_keyis set. Defaults to 12 hours. A duration in seconds with up to nine fractional digits, ending with 's'. Example: "3.5s".
- uid str
- The system-generated UID of the resource.
- workstation_cluster_ strid 
- The ID of the parent workstation cluster.
- workstation_config_ strid 
- The ID to be assigned to the workstation cluster config.
- allowedPorts List<Property Map>
- A list of port ranges specifying single ports or ranges of ports that are externally accessible in the workstation. Allowed ports must be one of 22, 80, or within range 1024-65535. If not specified defaults to ports 22, 80, and ports 1024-65535. Structure is documented below.
- annotations Map<String>
- Client-specified annotations. This is distinct from labels.
Note: This field is non-authoritative, and will only manage the annotations present in your configuration.
Please refer to the field effective_annotationsfor all of the annotations present on the resource.
- conditions List<Property Map>
- Status conditions describing the current resource state. Structure is documented below.
- container Property Map
- Container that will be run for each workstation using this configuration when that workstation is started. Structure is documented below.
- createTime String
- Time when this resource was created.
- degraded Boolean
- Whether this resource is in degraded mode, in which case it may require user action to restore full functionality. Details can be found in the conditions field.
- disableTcp BooleanConnections 
- Disables support for plain TCP connections in the workstation. By default the service supports TCP connections via a websocket relay. Setting this option to true disables that relay, which prevents the usage of services that require plain tcp connections, such as ssh. When enabled, all communication must occur over https or wss.
- displayName String
- Human-readable name for this resource.
- effectiveAnnotations Map<String>
- effectiveLabels Map<String>
- All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
- enableAudit BooleanAgent 
- Whether to enable Linux auditdlogging on the workstation. When enabled, a service account must also be specified that haslogging.buckets.writepermission on the project. Operating system audit logging is distinct from Cloud Audit Logs.
- encryptionKey Property Map
- Encrypts resources of this workstation configuration using a customer-managed encryption key. If specified, the boot disk of the Compute Engine instance and the persistent disk are encrypted using this encryption key. If this field is not set, the disks are encrypted using a generated key. Customer-managed encryption keys do not protect disk metadata. If the customer-managed encryption key is rotated, when the workstation instance is stopped, the system attempts to recreate the persistent disk with the new version of the key. Be sure to keep older versions of the key until the persistent disk is recreated. Otherwise, data on the persistent disk will be lost. If the encryption key is revoked, the workstation session will automatically be stopped within 7 hours. Structure is documented below.
- ephemeralDirectories List<Property Map>
- Ephemeral directories which won't persist across workstation sessions. Structure is documented below.
- etag String
- Checksum computed by the server. May be sent on update and delete requests to ensure that the client has an up-to-date value before proceeding.
- host Property Map
- Runtime host for a workstation. Structure is documented below.
- idleTimeout String
- How long to wait before automatically stopping an instance that hasn't recently received any user traffic. A value of 0 indicates that this instance should never time out from idleness. Defaults to 20 minutes. A duration in seconds with up to nine fractional digits, ending with 's'. Example: "3.5s".
- labels Map<String>
- Client-specified labels that are applied to the resource and that are also propagated to the underlying Compute Engine resources.
Note: This field is non-authoritative, and will only manage the labels present in your configuration.
Please refer to the field effective_labelsfor all of the labels present on the resource.
- location String
- The location where the workstation cluster config should reside.
- maxUsable NumberWorkstations 
- Maximum number of workstations under this configuration a user can have workstations.workstation.use permission on. Only enforced on CreateWorkstation API calls on the user issuing the API request.
- name String
- Full name of this resource.
- persistentDirectories List<Property Map>
- Directories to persist across workstation sessions. Structure is documented below.
- project String
- The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
- pulumiLabels Map<String>
- The combination of labels configured directly on the resource and default labels configured on the provider.
- readinessChecks List<Property Map>
- Readiness checks to be performed on a workstation. Structure is documented below.
- replicaZones List<String>
- Specifies the zones used to replicate the VM and disk resources within the region. If set, exactly two zones within the workstation cluster's region must be specified—for example, ['us-central1-a', 'us-central1-f']. If this field is empty, two default zones within the region are used. Immutable after the workstation configuration is created.
- runningTimeout String
- How long to wait before automatically stopping a workstation after it was started. A value of 0 indicates that workstations using this configuration should never time out from running duration. Must be greater than 0 and less than 24 hours if encryption_keyis set. Defaults to 12 hours. A duration in seconds with up to nine fractional digits, ending with 's'. Example: "3.5s".
- uid String
- The system-generated UID of the resource.
- workstationCluster StringId 
- The ID of the parent workstation cluster.
- workstationConfig StringId 
- The ID to be assigned to the workstation cluster config.
Supporting Types
WorkstationConfigAllowedPort, WorkstationConfigAllowedPortArgs        
WorkstationConfigCondition, WorkstationConfigConditionArgs      
WorkstationConfigContainer, WorkstationConfigContainerArgs      
- Args List<string>
- Arguments passed to the entrypoint.
- Commands List<string>
- If set, overrides the default ENTRYPOINT specified by the image.
- Env Dictionary<string, string>
- Environment variables passed to the container. The elements are of the form "KEY=VALUE" for the environment variable "KEY" being given the value "VALUE".
- Image string
- Docker image defining the container. This image must be accessible by the config's service account.
- RunAs intUser 
- If set, overrides the USER specified in the image with the given uid.
- WorkingDir string
- If set, overrides the default DIR specified by the image.
- Args []string
- Arguments passed to the entrypoint.
- Commands []string
- If set, overrides the default ENTRYPOINT specified by the image.
- Env map[string]string
- Environment variables passed to the container. The elements are of the form "KEY=VALUE" for the environment variable "KEY" being given the value "VALUE".
- Image string
- Docker image defining the container. This image must be accessible by the config's service account.
- RunAs intUser 
- If set, overrides the USER specified in the image with the given uid.
- WorkingDir string
- If set, overrides the default DIR specified by the image.
- args List<String>
- Arguments passed to the entrypoint.
- commands List<String>
- If set, overrides the default ENTRYPOINT specified by the image.
- env Map<String,String>
- Environment variables passed to the container. The elements are of the form "KEY=VALUE" for the environment variable "KEY" being given the value "VALUE".
- image String
- Docker image defining the container. This image must be accessible by the config's service account.
- runAs IntegerUser 
- If set, overrides the USER specified in the image with the given uid.
- workingDir String
- If set, overrides the default DIR specified by the image.
- args string[]
- Arguments passed to the entrypoint.
- commands string[]
- If set, overrides the default ENTRYPOINT specified by the image.
- env {[key: string]: string}
- Environment variables passed to the container. The elements are of the form "KEY=VALUE" for the environment variable "KEY" being given the value "VALUE".
- image string
- Docker image defining the container. This image must be accessible by the config's service account.
- runAs numberUser 
- If set, overrides the USER specified in the image with the given uid.
- workingDir string
- If set, overrides the default DIR specified by the image.
- args Sequence[str]
- Arguments passed to the entrypoint.
- commands Sequence[str]
- If set, overrides the default ENTRYPOINT specified by the image.
- env Mapping[str, str]
- Environment variables passed to the container. The elements are of the form "KEY=VALUE" for the environment variable "KEY" being given the value "VALUE".
- image str
- Docker image defining the container. This image must be accessible by the config's service account.
- run_as_ intuser 
- If set, overrides the USER specified in the image with the given uid.
- working_dir str
- If set, overrides the default DIR specified by the image.
- args List<String>
- Arguments passed to the entrypoint.
- commands List<String>
- If set, overrides the default ENTRYPOINT specified by the image.
- env Map<String>
- Environment variables passed to the container. The elements are of the form "KEY=VALUE" for the environment variable "KEY" being given the value "VALUE".
- image String
- Docker image defining the container. This image must be accessible by the config's service account.
- runAs NumberUser 
- If set, overrides the USER specified in the image with the given uid.
- workingDir String
- If set, overrides the default DIR specified by the image.
WorkstationConfigEncryptionKey, WorkstationConfigEncryptionKeyArgs        
- KmsKey string
- The name of the Google Cloud KMS encryption key.
- KmsKey stringService Account 
- The service account to use with the specified KMS key.
- KmsKey string
- The name of the Google Cloud KMS encryption key.
- KmsKey stringService Account 
- The service account to use with the specified KMS key.
- kmsKey String
- The name of the Google Cloud KMS encryption key.
- kmsKey StringService Account 
- The service account to use with the specified KMS key.
- kmsKey string
- The name of the Google Cloud KMS encryption key.
- kmsKey stringService Account 
- The service account to use with the specified KMS key.
- kms_key str
- The name of the Google Cloud KMS encryption key.
- kms_key_ strservice_ account 
- The service account to use with the specified KMS key.
- kmsKey String
- The name of the Google Cloud KMS encryption key.
- kmsKey StringService Account 
- The service account to use with the specified KMS key.
WorkstationConfigEphemeralDirectory, WorkstationConfigEphemeralDirectoryArgs        
- GcePd WorkstationConfig Ephemeral Directory Gce Pd 
- An EphemeralDirectory backed by a Compute Engine persistent disk. Structure is documented below.
- MountPath string
- Location of this directory in the running workstation.
- GcePd WorkstationConfig Ephemeral Directory Gce Pd 
- An EphemeralDirectory backed by a Compute Engine persistent disk. Structure is documented below.
- MountPath string
- Location of this directory in the running workstation.
- gcePd WorkstationConfig Ephemeral Directory Gce Pd 
- An EphemeralDirectory backed by a Compute Engine persistent disk. Structure is documented below.
- mountPath String
- Location of this directory in the running workstation.
- gcePd WorkstationConfig Ephemeral Directory Gce Pd 
- An EphemeralDirectory backed by a Compute Engine persistent disk. Structure is documented below.
- mountPath string
- Location of this directory in the running workstation.
- gce_pd WorkstationConfig Ephemeral Directory Gce Pd 
- An EphemeralDirectory backed by a Compute Engine persistent disk. Structure is documented below.
- mount_path str
- Location of this directory in the running workstation.
- gcePd Property Map
- An EphemeralDirectory backed by a Compute Engine persistent disk. Structure is documented below.
- mountPath String
- Location of this directory in the running workstation.
WorkstationConfigEphemeralDirectoryGcePd, WorkstationConfigEphemeralDirectoryGcePdArgs            
- DiskType string
- Type of the disk to use. Defaults to "pd-standard".
- ReadOnly bool
- Whether the disk is read only. If true, the disk may be shared by multiple VMs and sourceSnapshotmust be set.
- SourceImage string
- Name of the disk image to use as the source for the disk.
Must be empty sourceSnapshotis set. UpdatingsourceImagewill update content in the ephemeral directory after the workstation is restarted.
- SourceSnapshot string
- Name of the snapshot to use as the source for the disk.
Must be empty if sourceImageis set. Must be empty ifread_onlyis false. Updatingsource_snapshotwill update content in the ephemeral directory after the workstation is restarted.
- DiskType string
- Type of the disk to use. Defaults to "pd-standard".
- ReadOnly bool
- Whether the disk is read only. If true, the disk may be shared by multiple VMs and sourceSnapshotmust be set.
- SourceImage string
- Name of the disk image to use as the source for the disk.
Must be empty sourceSnapshotis set. UpdatingsourceImagewill update content in the ephemeral directory after the workstation is restarted.
- SourceSnapshot string
- Name of the snapshot to use as the source for the disk.
Must be empty if sourceImageis set. Must be empty ifread_onlyis false. Updatingsource_snapshotwill update content in the ephemeral directory after the workstation is restarted.
- diskType String
- Type of the disk to use. Defaults to "pd-standard".
- readOnly Boolean
- Whether the disk is read only. If true, the disk may be shared by multiple VMs and sourceSnapshotmust be set.
- sourceImage String
- Name of the disk image to use as the source for the disk.
Must be empty sourceSnapshotis set. UpdatingsourceImagewill update content in the ephemeral directory after the workstation is restarted.
- sourceSnapshot String
- Name of the snapshot to use as the source for the disk.
Must be empty if sourceImageis set. Must be empty ifread_onlyis false. Updatingsource_snapshotwill update content in the ephemeral directory after the workstation is restarted.
- diskType string
- Type of the disk to use. Defaults to "pd-standard".
- readOnly boolean
- Whether the disk is read only. If true, the disk may be shared by multiple VMs and sourceSnapshotmust be set.
- sourceImage string
- Name of the disk image to use as the source for the disk.
Must be empty sourceSnapshotis set. UpdatingsourceImagewill update content in the ephemeral directory after the workstation is restarted.
- sourceSnapshot string
- Name of the snapshot to use as the source for the disk.
Must be empty if sourceImageis set. Must be empty ifread_onlyis false. Updatingsource_snapshotwill update content in the ephemeral directory after the workstation is restarted.
- disk_type str
- Type of the disk to use. Defaults to "pd-standard".
- read_only bool
- Whether the disk is read only. If true, the disk may be shared by multiple VMs and sourceSnapshotmust be set.
- source_image str
- Name of the disk image to use as the source for the disk.
Must be empty sourceSnapshotis set. UpdatingsourceImagewill update content in the ephemeral directory after the workstation is restarted.
- source_snapshot str
- Name of the snapshot to use as the source for the disk.
Must be empty if sourceImageis set. Must be empty ifread_onlyis false. Updatingsource_snapshotwill update content in the ephemeral directory after the workstation is restarted.
- diskType String
- Type of the disk to use. Defaults to "pd-standard".
- readOnly Boolean
- Whether the disk is read only. If true, the disk may be shared by multiple VMs and sourceSnapshotmust be set.
- sourceImage String
- Name of the disk image to use as the source for the disk.
Must be empty sourceSnapshotis set. UpdatingsourceImagewill update content in the ephemeral directory after the workstation is restarted.
- sourceSnapshot String
- Name of the snapshot to use as the source for the disk.
Must be empty if sourceImageis set. Must be empty ifread_onlyis false. Updatingsource_snapshotwill update content in the ephemeral directory after the workstation is restarted.
WorkstationConfigHost, WorkstationConfigHostArgs      
- GceInstance WorkstationConfig Host Gce Instance 
- A runtime using a Compute Engine instance. Structure is documented below.
- GceInstance WorkstationConfig Host Gce Instance 
- A runtime using a Compute Engine instance. Structure is documented below.
- gceInstance WorkstationConfig Host Gce Instance 
- A runtime using a Compute Engine instance. Structure is documented below.
- gceInstance WorkstationConfig Host Gce Instance 
- A runtime using a Compute Engine instance. Structure is documented below.
- gce_instance WorkstationConfig Host Gce Instance 
- A runtime using a Compute Engine instance. Structure is documented below.
- gceInstance Property Map
- A runtime using a Compute Engine instance. Structure is documented below.
WorkstationConfigHostGceInstance, WorkstationConfigHostGceInstanceArgs          
- Accelerators
List<WorkstationConfig Host Gce Instance Accelerator> 
- An accelerator card attached to the instance. Structure is documented below.
- BoostConfigs List<WorkstationConfig Host Gce Instance Boost Config> 
- A list of the boost configurations that workstations created using this workstation configuration are allowed to use. Structure is documented below.
- BootDisk intSize Gb 
- Size of the boot disk in GB.
- ConfidentialInstance WorkstationConfig Config Host Gce Instance Confidential Instance Config 
- A set of Compute Engine Confidential VM instance options. Structure is documented below.
- DisablePublic boolIp Addresses 
- Whether instances have no public IP address.
- DisableSsh bool
- Whether to disable SSH access to the VM.
- EnableNested boolVirtualization 
- Whether to enable nested virtualization on the Compute Engine VMs backing the Workstations. See https://cloud.google.com/workstations/docs/reference/rest/v1beta/projects.locations.workstationClusters.workstationConfigs#GceInstance.FIELDS.enable_nested_virtualization
- MachineType string
- The name of a Compute Engine machine type.
- PoolSize int
- Number of instances to pool for faster workstation startup.
- ServiceAccount string
- Email address of the service account that will be used on VM instances used to support this config. This service account must have permission to pull the specified container image. If not set, VMs will run without a service account, in which case the image must be publicly accessible.
- ServiceAccount List<string>Scopes 
- Scopes to grant to the service_account. Various scopes are automatically added based on feature usage. When specified, users of workstations under this configuration must have iam.serviceAccounts.actAson the service account.
- ShieldedInstance WorkstationConfig Config Host Gce Instance Shielded Instance Config 
- A set of Compute Engine Shielded instance options. Structure is documented below.
- List<string>
- Network tags to add to the Compute Engine machines backing the Workstations.
- Dictionary<string, string>
- Resource manager tags to be bound to the VM instances backing the Workstations.
Tag keys and values have the same definition as
https://cloud.google.com/resource-manager/docs/tags/tags-overview
Keys must be in the format tagKeys/{tag_key_id}, and values are in the formattagValues/456.
- Accelerators
[]WorkstationConfig Host Gce Instance Accelerator 
- An accelerator card attached to the instance. Structure is documented below.
- BoostConfigs []WorkstationConfig Host Gce Instance Boost Config 
- A list of the boost configurations that workstations created using this workstation configuration are allowed to use. Structure is documented below.
- BootDisk intSize Gb 
- Size of the boot disk in GB.
- ConfidentialInstance WorkstationConfig Config Host Gce Instance Confidential Instance Config 
- A set of Compute Engine Confidential VM instance options. Structure is documented below.
- DisablePublic boolIp Addresses 
- Whether instances have no public IP address.
- DisableSsh bool
- Whether to disable SSH access to the VM.
- EnableNested boolVirtualization 
- Whether to enable nested virtualization on the Compute Engine VMs backing the Workstations. See https://cloud.google.com/workstations/docs/reference/rest/v1beta/projects.locations.workstationClusters.workstationConfigs#GceInstance.FIELDS.enable_nested_virtualization
- MachineType string
- The name of a Compute Engine machine type.
- PoolSize int
- Number of instances to pool for faster workstation startup.
- ServiceAccount string
- Email address of the service account that will be used on VM instances used to support this config. This service account must have permission to pull the specified container image. If not set, VMs will run without a service account, in which case the image must be publicly accessible.
- ServiceAccount []stringScopes 
- Scopes to grant to the service_account. Various scopes are automatically added based on feature usage. When specified, users of workstations under this configuration must have iam.serviceAccounts.actAson the service account.
- ShieldedInstance WorkstationConfig Config Host Gce Instance Shielded Instance Config 
- A set of Compute Engine Shielded instance options. Structure is documented below.
- []string
- Network tags to add to the Compute Engine machines backing the Workstations.
- map[string]string
- Resource manager tags to be bound to the VM instances backing the Workstations.
Tag keys and values have the same definition as
https://cloud.google.com/resource-manager/docs/tags/tags-overview
Keys must be in the format tagKeys/{tag_key_id}, and values are in the formattagValues/456.
- accelerators
List<WorkstationConfig Host Gce Instance Accelerator> 
- An accelerator card attached to the instance. Structure is documented below.
- boostConfigs List<WorkstationConfig Host Gce Instance Boost Config> 
- A list of the boost configurations that workstations created using this workstation configuration are allowed to use. Structure is documented below.
- bootDisk IntegerSize Gb 
- Size of the boot disk in GB.
- confidentialInstance WorkstationConfig Config Host Gce Instance Confidential Instance Config 
- A set of Compute Engine Confidential VM instance options. Structure is documented below.
- disablePublic BooleanIp Addresses 
- Whether instances have no public IP address.
- disableSsh Boolean
- Whether to disable SSH access to the VM.
- enableNested BooleanVirtualization 
- Whether to enable nested virtualization on the Compute Engine VMs backing the Workstations. See https://cloud.google.com/workstations/docs/reference/rest/v1beta/projects.locations.workstationClusters.workstationConfigs#GceInstance.FIELDS.enable_nested_virtualization
- machineType String
- The name of a Compute Engine machine type.
- poolSize Integer
- Number of instances to pool for faster workstation startup.
- serviceAccount String
- Email address of the service account that will be used on VM instances used to support this config. This service account must have permission to pull the specified container image. If not set, VMs will run without a service account, in which case the image must be publicly accessible.
- serviceAccount List<String>Scopes 
- Scopes to grant to the service_account. Various scopes are automatically added based on feature usage. When specified, users of workstations under this configuration must have iam.serviceAccounts.actAson the service account.
- shieldedInstance WorkstationConfig Config Host Gce Instance Shielded Instance Config 
- A set of Compute Engine Shielded instance options. Structure is documented below.
- List<String>
- Network tags to add to the Compute Engine machines backing the Workstations.
- Map<String,String>
- Resource manager tags to be bound to the VM instances backing the Workstations.
Tag keys and values have the same definition as
https://cloud.google.com/resource-manager/docs/tags/tags-overview
Keys must be in the format tagKeys/{tag_key_id}, and values are in the formattagValues/456.
- accelerators
WorkstationConfig Host Gce Instance Accelerator[] 
- An accelerator card attached to the instance. Structure is documented below.
- boostConfigs WorkstationConfig Host Gce Instance Boost Config[] 
- A list of the boost configurations that workstations created using this workstation configuration are allowed to use. Structure is documented below.
- bootDisk numberSize Gb 
- Size of the boot disk in GB.
- confidentialInstance WorkstationConfig Config Host Gce Instance Confidential Instance Config 
- A set of Compute Engine Confidential VM instance options. Structure is documented below.
- disablePublic booleanIp Addresses 
- Whether instances have no public IP address.
- disableSsh boolean
- Whether to disable SSH access to the VM.
- enableNested booleanVirtualization 
- Whether to enable nested virtualization on the Compute Engine VMs backing the Workstations. See https://cloud.google.com/workstations/docs/reference/rest/v1beta/projects.locations.workstationClusters.workstationConfigs#GceInstance.FIELDS.enable_nested_virtualization
- machineType string
- The name of a Compute Engine machine type.
- poolSize number
- Number of instances to pool for faster workstation startup.
- serviceAccount string
- Email address of the service account that will be used on VM instances used to support this config. This service account must have permission to pull the specified container image. If not set, VMs will run without a service account, in which case the image must be publicly accessible.
- serviceAccount string[]Scopes 
- Scopes to grant to the service_account. Various scopes are automatically added based on feature usage. When specified, users of workstations under this configuration must have iam.serviceAccounts.actAson the service account.
- shieldedInstance WorkstationConfig Config Host Gce Instance Shielded Instance Config 
- A set of Compute Engine Shielded instance options. Structure is documented below.
- string[]
- Network tags to add to the Compute Engine machines backing the Workstations.
- {[key: string]: string}
- Resource manager tags to be bound to the VM instances backing the Workstations.
Tag keys and values have the same definition as
https://cloud.google.com/resource-manager/docs/tags/tags-overview
Keys must be in the format tagKeys/{tag_key_id}, and values are in the formattagValues/456.
- accelerators
Sequence[WorkstationConfig Host Gce Instance Accelerator] 
- An accelerator card attached to the instance. Structure is documented below.
- boost_configs Sequence[WorkstationConfig Host Gce Instance Boost Config] 
- A list of the boost configurations that workstations created using this workstation configuration are allowed to use. Structure is documented below.
- boot_disk_ intsize_ gb 
- Size of the boot disk in GB.
- confidential_instance_ Workstationconfig Config Host Gce Instance Confidential Instance Config 
- A set of Compute Engine Confidential VM instance options. Structure is documented below.
- disable_public_ boolip_ addresses 
- Whether instances have no public IP address.
- disable_ssh bool
- Whether to disable SSH access to the VM.
- enable_nested_ boolvirtualization 
- Whether to enable nested virtualization on the Compute Engine VMs backing the Workstations. See https://cloud.google.com/workstations/docs/reference/rest/v1beta/projects.locations.workstationClusters.workstationConfigs#GceInstance.FIELDS.enable_nested_virtualization
- machine_type str
- The name of a Compute Engine machine type.
- pool_size int
- Number of instances to pool for faster workstation startup.
- service_account str
- Email address of the service account that will be used on VM instances used to support this config. This service account must have permission to pull the specified container image. If not set, VMs will run without a service account, in which case the image must be publicly accessible.
- service_account_ Sequence[str]scopes 
- Scopes to grant to the service_account. Various scopes are automatically added based on feature usage. When specified, users of workstations under this configuration must have iam.serviceAccounts.actAson the service account.
- shielded_instance_ Workstationconfig Config Host Gce Instance Shielded Instance Config 
- A set of Compute Engine Shielded instance options. Structure is documented below.
- Sequence[str]
- Network tags to add to the Compute Engine machines backing the Workstations.
- Mapping[str, str]
- Resource manager tags to be bound to the VM instances backing the Workstations.
Tag keys and values have the same definition as
https://cloud.google.com/resource-manager/docs/tags/tags-overview
Keys must be in the format tagKeys/{tag_key_id}, and values are in the formattagValues/456.
- accelerators List<Property Map>
- An accelerator card attached to the instance. Structure is documented below.
- boostConfigs List<Property Map>
- A list of the boost configurations that workstations created using this workstation configuration are allowed to use. Structure is documented below.
- bootDisk NumberSize Gb 
- Size of the boot disk in GB.
- confidentialInstance Property MapConfig 
- A set of Compute Engine Confidential VM instance options. Structure is documented below.
- disablePublic BooleanIp Addresses 
- Whether instances have no public IP address.
- disableSsh Boolean
- Whether to disable SSH access to the VM.
- enableNested BooleanVirtualization 
- Whether to enable nested virtualization on the Compute Engine VMs backing the Workstations. See https://cloud.google.com/workstations/docs/reference/rest/v1beta/projects.locations.workstationClusters.workstationConfigs#GceInstance.FIELDS.enable_nested_virtualization
- machineType String
- The name of a Compute Engine machine type.
- poolSize Number
- Number of instances to pool for faster workstation startup.
- serviceAccount String
- Email address of the service account that will be used on VM instances used to support this config. This service account must have permission to pull the specified container image. If not set, VMs will run without a service account, in which case the image must be publicly accessible.
- serviceAccount List<String>Scopes 
- Scopes to grant to the service_account. Various scopes are automatically added based on feature usage. When specified, users of workstations under this configuration must have iam.serviceAccounts.actAson the service account.
- shieldedInstance Property MapConfig 
- A set of Compute Engine Shielded instance options. Structure is documented below.
- List<String>
- Network tags to add to the Compute Engine machines backing the Workstations.
- Map<String>
- Resource manager tags to be bound to the VM instances backing the Workstations.
Tag keys and values have the same definition as
https://cloud.google.com/resource-manager/docs/tags/tags-overview
Keys must be in the format tagKeys/{tag_key_id}, and values are in the formattagValues/456.
WorkstationConfigHostGceInstanceAccelerator, WorkstationConfigHostGceInstanceAcceleratorArgs            
WorkstationConfigHostGceInstanceBoostConfig, WorkstationConfigHostGceInstanceBoostConfigArgs              
- Id string
- The id to be used for the boost config.
- Accelerators
List<WorkstationConfig Host Gce Instance Boost Config Accelerator> 
- An accelerator card attached to the boost instance. Structure is documented below.
- BootDisk intSize Gb 
- Size of the boot disk in GB. The minimum boot disk size is 30GB. Defaults to50GB.
- EnableNested boolVirtualization 
- Whether to enable nested virtualization on the Compute Engine VMs backing boosted Workstations. See https://cloud.google.com/workstations/docs/reference/rest/v1beta/projects.locations.workstationClusters.workstationConfigs#GceInstance.FIELDS.enable_nested_virtualization
- MachineType string
- The type of machine that boosted VM instances will use—for example, e2-standard-4. For more information about machine types that Cloud Workstations supports, see the list of available machine types https://cloud.google.com/workstations/docs/available-machine-types. Defaults to e2-standard-4.
- PoolSize int
- Number of instances to pool for faster workstation boosting.
- Id string
- The id to be used for the boost config.
- Accelerators
[]WorkstationConfig Host Gce Instance Boost Config Accelerator 
- An accelerator card attached to the boost instance. Structure is documented below.
- BootDisk intSize Gb 
- Size of the boot disk in GB. The minimum boot disk size is 30GB. Defaults to50GB.
- EnableNested boolVirtualization 
- Whether to enable nested virtualization on the Compute Engine VMs backing boosted Workstations. See https://cloud.google.com/workstations/docs/reference/rest/v1beta/projects.locations.workstationClusters.workstationConfigs#GceInstance.FIELDS.enable_nested_virtualization
- MachineType string
- The type of machine that boosted VM instances will use—for example, e2-standard-4. For more information about machine types that Cloud Workstations supports, see the list of available machine types https://cloud.google.com/workstations/docs/available-machine-types. Defaults to e2-standard-4.
- PoolSize int
- Number of instances to pool for faster workstation boosting.
- id String
- The id to be used for the boost config.
- accelerators
List<WorkstationConfig Host Gce Instance Boost Config Accelerator> 
- An accelerator card attached to the boost instance. Structure is documented below.
- bootDisk IntegerSize Gb 
- Size of the boot disk in GB. The minimum boot disk size is 30GB. Defaults to50GB.
- enableNested BooleanVirtualization 
- Whether to enable nested virtualization on the Compute Engine VMs backing boosted Workstations. See https://cloud.google.com/workstations/docs/reference/rest/v1beta/projects.locations.workstationClusters.workstationConfigs#GceInstance.FIELDS.enable_nested_virtualization
- machineType String
- The type of machine that boosted VM instances will use—for example, e2-standard-4. For more information about machine types that Cloud Workstations supports, see the list of available machine types https://cloud.google.com/workstations/docs/available-machine-types. Defaults to e2-standard-4.
- poolSize Integer
- Number of instances to pool for faster workstation boosting.
- id string
- The id to be used for the boost config.
- accelerators
WorkstationConfig Host Gce Instance Boost Config Accelerator[] 
- An accelerator card attached to the boost instance. Structure is documented below.
- bootDisk numberSize Gb 
- Size of the boot disk in GB. The minimum boot disk size is 30GB. Defaults to50GB.
- enableNested booleanVirtualization 
- Whether to enable nested virtualization on the Compute Engine VMs backing boosted Workstations. See https://cloud.google.com/workstations/docs/reference/rest/v1beta/projects.locations.workstationClusters.workstationConfigs#GceInstance.FIELDS.enable_nested_virtualization
- machineType string
- The type of machine that boosted VM instances will use—for example, e2-standard-4. For more information about machine types that Cloud Workstations supports, see the list of available machine types https://cloud.google.com/workstations/docs/available-machine-types. Defaults to e2-standard-4.
- poolSize number
- Number of instances to pool for faster workstation boosting.
- id str
- The id to be used for the boost config.
- accelerators
Sequence[WorkstationConfig Host Gce Instance Boost Config Accelerator] 
- An accelerator card attached to the boost instance. Structure is documented below.
- boot_disk_ intsize_ gb 
- Size of the boot disk in GB. The minimum boot disk size is 30GB. Defaults to50GB.
- enable_nested_ boolvirtualization 
- Whether to enable nested virtualization on the Compute Engine VMs backing boosted Workstations. See https://cloud.google.com/workstations/docs/reference/rest/v1beta/projects.locations.workstationClusters.workstationConfigs#GceInstance.FIELDS.enable_nested_virtualization
- machine_type str
- The type of machine that boosted VM instances will use—for example, e2-standard-4. For more information about machine types that Cloud Workstations supports, see the list of available machine types https://cloud.google.com/workstations/docs/available-machine-types. Defaults to e2-standard-4.
- pool_size int
- Number of instances to pool for faster workstation boosting.
- id String
- The id to be used for the boost config.
- accelerators List<Property Map>
- An accelerator card attached to the boost instance. Structure is documented below.
- bootDisk NumberSize Gb 
- Size of the boot disk in GB. The minimum boot disk size is 30GB. Defaults to50GB.
- enableNested BooleanVirtualization 
- Whether to enable nested virtualization on the Compute Engine VMs backing boosted Workstations. See https://cloud.google.com/workstations/docs/reference/rest/v1beta/projects.locations.workstationClusters.workstationConfigs#GceInstance.FIELDS.enable_nested_virtualization
- machineType String
- The type of machine that boosted VM instances will use—for example, e2-standard-4. For more information about machine types that Cloud Workstations supports, see the list of available machine types https://cloud.google.com/workstations/docs/available-machine-types. Defaults to e2-standard-4.
- poolSize Number
- Number of instances to pool for faster workstation boosting.
WorkstationConfigHostGceInstanceBoostConfigAccelerator, WorkstationConfigHostGceInstanceBoostConfigAcceleratorArgs                
WorkstationConfigHostGceInstanceConfidentialInstanceConfig, WorkstationConfigHostGceInstanceConfidentialInstanceConfigArgs                
- EnableConfidential boolCompute 
- Whether the instance has confidential compute enabled.
- EnableConfidential boolCompute 
- Whether the instance has confidential compute enabled.
- enableConfidential BooleanCompute 
- Whether the instance has confidential compute enabled.
- enableConfidential booleanCompute 
- Whether the instance has confidential compute enabled.
- enable_confidential_ boolcompute 
- Whether the instance has confidential compute enabled.
- enableConfidential BooleanCompute 
- Whether the instance has confidential compute enabled.
WorkstationConfigHostGceInstanceShieldedInstanceConfig, WorkstationConfigHostGceInstanceShieldedInstanceConfigArgs                
- EnableIntegrity boolMonitoring 
- Whether the instance has integrity monitoring enabled.
- EnableSecure boolBoot 
- Whether the instance has Secure Boot enabled.
- EnableVtpm bool
- Whether the instance has the vTPM enabled.
- EnableIntegrity boolMonitoring 
- Whether the instance has integrity monitoring enabled.
- EnableSecure boolBoot 
- Whether the instance has Secure Boot enabled.
- EnableVtpm bool
- Whether the instance has the vTPM enabled.
- enableIntegrity BooleanMonitoring 
- Whether the instance has integrity monitoring enabled.
- enableSecure BooleanBoot 
- Whether the instance has Secure Boot enabled.
- enableVtpm Boolean
- Whether the instance has the vTPM enabled.
- enableIntegrity booleanMonitoring 
- Whether the instance has integrity monitoring enabled.
- enableSecure booleanBoot 
- Whether the instance has Secure Boot enabled.
- enableVtpm boolean
- Whether the instance has the vTPM enabled.
- enable_integrity_ boolmonitoring 
- Whether the instance has integrity monitoring enabled.
- enable_secure_ boolboot 
- Whether the instance has Secure Boot enabled.
- enable_vtpm bool
- Whether the instance has the vTPM enabled.
- enableIntegrity BooleanMonitoring 
- Whether the instance has integrity monitoring enabled.
- enableSecure BooleanBoot 
- Whether the instance has Secure Boot enabled.
- enableVtpm Boolean
- Whether the instance has the vTPM enabled.
WorkstationConfigPersistentDirectory, WorkstationConfigPersistentDirectoryArgs        
- GcePd WorkstationConfig Persistent Directory Gce Pd 
- A directory to persist across workstation sessions, backed by a Compute Engine regional persistent disk. Can only be updated if not empty during creation. Structure is documented below.
- MountPath string
- Location of this directory in the running workstation.
- GcePd WorkstationConfig Persistent Directory Gce Pd 
- A directory to persist across workstation sessions, backed by a Compute Engine regional persistent disk. Can only be updated if not empty during creation. Structure is documented below.
- MountPath string
- Location of this directory in the running workstation.
- gcePd WorkstationConfig Persistent Directory Gce Pd 
- A directory to persist across workstation sessions, backed by a Compute Engine regional persistent disk. Can only be updated if not empty during creation. Structure is documented below.
- mountPath String
- Location of this directory in the running workstation.
- gcePd WorkstationConfig Persistent Directory Gce Pd 
- A directory to persist across workstation sessions, backed by a Compute Engine regional persistent disk. Can only be updated if not empty during creation. Structure is documented below.
- mountPath string
- Location of this directory in the running workstation.
- gce_pd WorkstationConfig Persistent Directory Gce Pd 
- A directory to persist across workstation sessions, backed by a Compute Engine regional persistent disk. Can only be updated if not empty during creation. Structure is documented below.
- mount_path str
- Location of this directory in the running workstation.
- gcePd Property Map
- A directory to persist across workstation sessions, backed by a Compute Engine regional persistent disk. Can only be updated if not empty during creation. Structure is documented below.
- mountPath String
- Location of this directory in the running workstation.
WorkstationConfigPersistentDirectoryGcePd, WorkstationConfigPersistentDirectoryGcePdArgs            
- DiskType string
- Type of the disk to use. Defaults to "pd-standard".
- FsType string
- Type of file system that the disk should be formatted with. The workstation image must support this file system type. Must be empty if sourceSnapshotis set. Defaults toext4.
- ReclaimPolicy string
- Whether the persistent disk should be deleted when the workstation is deleted. Valid values are DELETEandRETAIN. Defaults toDELETE. Possible values are:DELETE,RETAIN.
- SizeGb int
- The GB capacity of a persistent home directory for each workstation created with this configuration. Must be empty if sourceSnapshotis set. Valid values are10,50,100,200,500, or1000. Defaults to200. If less than200GB, thediskTypemust bepd-balancedorpd-ssd.
- SourceSnapshot string
- Name of the snapshot to use as the source for the disk.
Must be empty if sourceImageis set. Must be empty ifread_onlyis false. Updatingsource_snapshotwill update content in the ephemeral directory after the workstation is restarted.
- DiskType string
- Type of the disk to use. Defaults to "pd-standard".
- FsType string
- Type of file system that the disk should be formatted with. The workstation image must support this file system type. Must be empty if sourceSnapshotis set. Defaults toext4.
- ReclaimPolicy string
- Whether the persistent disk should be deleted when the workstation is deleted. Valid values are DELETEandRETAIN. Defaults toDELETE. Possible values are:DELETE,RETAIN.
- SizeGb int
- The GB capacity of a persistent home directory for each workstation created with this configuration. Must be empty if sourceSnapshotis set. Valid values are10,50,100,200,500, or1000. Defaults to200. If less than200GB, thediskTypemust bepd-balancedorpd-ssd.
- SourceSnapshot string
- Name of the snapshot to use as the source for the disk.
Must be empty if sourceImageis set. Must be empty ifread_onlyis false. Updatingsource_snapshotwill update content in the ephemeral directory after the workstation is restarted.
- diskType String
- Type of the disk to use. Defaults to "pd-standard".
- fsType String
- Type of file system that the disk should be formatted with. The workstation image must support this file system type. Must be empty if sourceSnapshotis set. Defaults toext4.
- reclaimPolicy String
- Whether the persistent disk should be deleted when the workstation is deleted. Valid values are DELETEandRETAIN. Defaults toDELETE. Possible values are:DELETE,RETAIN.
- sizeGb Integer
- The GB capacity of a persistent home directory for each workstation created with this configuration. Must be empty if sourceSnapshotis set. Valid values are10,50,100,200,500, or1000. Defaults to200. If less than200GB, thediskTypemust bepd-balancedorpd-ssd.
- sourceSnapshot String
- Name of the snapshot to use as the source for the disk.
Must be empty if sourceImageis set. Must be empty ifread_onlyis false. Updatingsource_snapshotwill update content in the ephemeral directory after the workstation is restarted.
- diskType string
- Type of the disk to use. Defaults to "pd-standard".
- fsType string
- Type of file system that the disk should be formatted with. The workstation image must support this file system type. Must be empty if sourceSnapshotis set. Defaults toext4.
- reclaimPolicy string
- Whether the persistent disk should be deleted when the workstation is deleted. Valid values are DELETEandRETAIN. Defaults toDELETE. Possible values are:DELETE,RETAIN.
- sizeGb number
- The GB capacity of a persistent home directory for each workstation created with this configuration. Must be empty if sourceSnapshotis set. Valid values are10,50,100,200,500, or1000. Defaults to200. If less than200GB, thediskTypemust bepd-balancedorpd-ssd.
- sourceSnapshot string
- Name of the snapshot to use as the source for the disk.
Must be empty if sourceImageis set. Must be empty ifread_onlyis false. Updatingsource_snapshotwill update content in the ephemeral directory after the workstation is restarted.
- disk_type str
- Type of the disk to use. Defaults to "pd-standard".
- fs_type str
- Type of file system that the disk should be formatted with. The workstation image must support this file system type. Must be empty if sourceSnapshotis set. Defaults toext4.
- reclaim_policy str
- Whether the persistent disk should be deleted when the workstation is deleted. Valid values are DELETEandRETAIN. Defaults toDELETE. Possible values are:DELETE,RETAIN.
- size_gb int
- The GB capacity of a persistent home directory for each workstation created with this configuration. Must be empty if sourceSnapshotis set. Valid values are10,50,100,200,500, or1000. Defaults to200. If less than200GB, thediskTypemust bepd-balancedorpd-ssd.
- source_snapshot str
- Name of the snapshot to use as the source for the disk.
Must be empty if sourceImageis set. Must be empty ifread_onlyis false. Updatingsource_snapshotwill update content in the ephemeral directory after the workstation is restarted.
- diskType String
- Type of the disk to use. Defaults to "pd-standard".
- fsType String
- Type of file system that the disk should be formatted with. The workstation image must support this file system type. Must be empty if sourceSnapshotis set. Defaults toext4.
- reclaimPolicy String
- Whether the persistent disk should be deleted when the workstation is deleted. Valid values are DELETEandRETAIN. Defaults toDELETE. Possible values are:DELETE,RETAIN.
- sizeGb Number
- The GB capacity of a persistent home directory for each workstation created with this configuration. Must be empty if sourceSnapshotis set. Valid values are10,50,100,200,500, or1000. Defaults to200. If less than200GB, thediskTypemust bepd-balancedorpd-ssd.
- sourceSnapshot String
- Name of the snapshot to use as the source for the disk.
Must be empty if sourceImageis set. Must be empty ifread_onlyis false. Updatingsource_snapshotwill update content in the ephemeral directory after the workstation is restarted.
WorkstationConfigReadinessCheck, WorkstationConfigReadinessCheckArgs        
Import
WorkstationConfig can be imported using any of these accepted formats:
- projects/{{project}}/locations/{{location}}/workstationClusters/{{workstation_cluster_id}}/workstationConfigs/{{workstation_config_id}}
- {{project}}/{{location}}/{{workstation_cluster_id}}/{{workstation_config_id}}
- {{location}}/{{workstation_cluster_id}}/{{workstation_config_id}}
When using the pulumi import command, WorkstationConfig can be imported using one of the formats above. For example:
$ pulumi import gcp:workstations/workstationConfig:WorkstationConfig default projects/{{project}}/locations/{{location}}/workstationClusters/{{workstation_cluster_id}}/workstationConfigs/{{workstation_config_id}}
$ pulumi import gcp:workstations/workstationConfig:WorkstationConfig default {{project}}/{{location}}/{{workstation_cluster_id}}/{{workstation_config_id}}
$ pulumi import gcp:workstations/workstationConfig:WorkstationConfig default {{location}}/{{workstation_cluster_id}}/{{workstation_config_id}}
To learn more about importing existing cloud resources, see Importing resources.
Package Details
- Repository
- Google Cloud (GCP) Classic pulumi/pulumi-gcp
- License
- Apache-2.0
- Notes
- This Pulumi package is based on the google-betaTerraform Provider.