1. Packages
  2. Google Cloud (GCP) Classic
  3. API Docs
  4. workstations
  5. WorkstationCluster
Google Cloud v8.25.0 published on Thursday, Apr 3, 2025 by Pulumi

gcp.workstations.WorkstationCluster

Explore with Pulumi AI

Example Usage

Workstation Cluster Basic

import * as pulumi from "@pulumi/pulumi";
import * as gcp from "@pulumi/gcp";

const defaultNetwork = 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: defaultNetwork.name,
});
const _default = new gcp.workstations.WorkstationCluster("default", {
    workstationClusterId: "workstation-cluster",
    network: defaultNetwork.id,
    subnetwork: defaultSubnetwork.id,
    location: "us-central1",
    labels: {
        label: "key",
    },
    annotations: {
        "label-one": "value-one",
    },
});
const project = gcp.organizations.getProject({});
Copy
import pulumi
import pulumi_gcp as gcp

default_network = 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_network.name)
default = gcp.workstations.WorkstationCluster("default",
    workstation_cluster_id="workstation-cluster",
    network=default_network.id,
    subnetwork=default_subnetwork.id,
    location="us-central1",
    labels={
        "label": "key",
    },
    annotations={
        "label-one": "value-one",
    })
project = gcp.organizations.get_project()
Copy
package main

import (
	"github.com/pulumi/pulumi-gcp/sdk/v8/go/gcp/compute"
	"github.com/pulumi/pulumi-gcp/sdk/v8/go/gcp/organizations"
	"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 {
		defaultNetwork, 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:     defaultNetwork.Name,
		})
		if err != nil {
			return err
		}
		_, err = workstations.NewWorkstationCluster(ctx, "default", &workstations.WorkstationClusterArgs{
			WorkstationClusterId: pulumi.String("workstation-cluster"),
			Network:              defaultNetwork.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 = organizations.LookupProject(ctx, &organizations.LookupProjectArgs{}, nil)
		if err != nil {
			return err
		}
		return nil
	})
}
Copy
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Gcp = Pulumi.Gcp;

return await Deployment.RunAsync(() => 
{
    var defaultNetwork = 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 = defaultNetwork.Name,
    });

    var @default = new Gcp.Workstations.WorkstationCluster("default", new()
    {
        WorkstationClusterId = "workstation-cluster",
        Network = defaultNetwork.Id,
        Subnetwork = defaultSubnetwork.Id,
        Location = "us-central1",
        Labels = 
        {
            { "label", "key" },
        },
        Annotations = 
        {
            { "label-one", "value-one" },
        },
    });

    var project = Gcp.Organizations.GetProject.Invoke();

});
Copy
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.organizations.OrganizationsFunctions;
import com.pulumi.gcp.organizations.inputs.GetProjectArgs;
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 defaultNetwork = new Network("defaultNetwork", 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(defaultNetwork.name())
            .build());

        var default_ = new WorkstationCluster("default", WorkstationClusterArgs.builder()
            .workstationClusterId("workstation-cluster")
            .network(defaultNetwork.id())
            .subnetwork(defaultSubnetwork.id())
            .location("us-central1")
            .labels(Map.of("label", "key"))
            .annotations(Map.of("label-one", "value-one"))
            .build());

        final var project = OrganizationsFunctions.getProject();

    }
}
Copy
resources:
  default:
    type: gcp:workstations:WorkstationCluster
    properties:
      workstationClusterId: workstation-cluster
      network: ${defaultNetwork.id}
      subnetwork: ${defaultSubnetwork.id}
      location: us-central1
      labels:
        label: key
      annotations:
        label-one: value-one
  defaultNetwork:
    type: gcp:compute:Network
    name: default
    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: ${defaultNetwork.name}
variables:
  project:
    fn::invoke:
      function: gcp:organizations:getProject
      arguments: {}
Copy

Workstation Cluster Private

import * as pulumi from "@pulumi/pulumi";
import * as gcp from "@pulumi/gcp";

const defaultNetwork = new gcp.compute.Network("default", {
    name: "workstation-cluster-private",
    autoCreateSubnetworks: false,
});
const defaultSubnetwork = new gcp.compute.Subnetwork("default", {
    name: "workstation-cluster-private",
    ipCidrRange: "10.0.0.0/24",
    region: "us-central1",
    network: defaultNetwork.name,
});
const _default = new gcp.workstations.WorkstationCluster("default", {
    workstationClusterId: "workstation-cluster-private",
    network: defaultNetwork.id,
    subnetwork: defaultSubnetwork.id,
    location: "us-central1",
    privateClusterConfig: {
        enablePrivateEndpoint: true,
    },
    labels: {
        label: "key",
    },
    annotations: {
        "label-one": "value-one",
    },
});
const project = gcp.organizations.getProject({});
Copy
import pulumi
import pulumi_gcp as gcp

default_network = gcp.compute.Network("default",
    name="workstation-cluster-private",
    auto_create_subnetworks=False)
default_subnetwork = gcp.compute.Subnetwork("default",
    name="workstation-cluster-private",
    ip_cidr_range="10.0.0.0/24",
    region="us-central1",
    network=default_network.name)
default = gcp.workstations.WorkstationCluster("default",
    workstation_cluster_id="workstation-cluster-private",
    network=default_network.id,
    subnetwork=default_subnetwork.id,
    location="us-central1",
    private_cluster_config={
        "enable_private_endpoint": True,
    },
    labels={
        "label": "key",
    },
    annotations={
        "label-one": "value-one",
    })
project = gcp.organizations.get_project()
Copy
package main

import (
	"github.com/pulumi/pulumi-gcp/sdk/v8/go/gcp/compute"
	"github.com/pulumi/pulumi-gcp/sdk/v8/go/gcp/organizations"
	"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 {
		defaultNetwork, err := compute.NewNetwork(ctx, "default", &compute.NetworkArgs{
			Name:                  pulumi.String("workstation-cluster-private"),
			AutoCreateSubnetworks: pulumi.Bool(false),
		})
		if err != nil {
			return err
		}
		defaultSubnetwork, err := compute.NewSubnetwork(ctx, "default", &compute.SubnetworkArgs{
			Name:        pulumi.String("workstation-cluster-private"),
			IpCidrRange: pulumi.String("10.0.0.0/24"),
			Region:      pulumi.String("us-central1"),
			Network:     defaultNetwork.Name,
		})
		if err != nil {
			return err
		}
		_, err = workstations.NewWorkstationCluster(ctx, "default", &workstations.WorkstationClusterArgs{
			WorkstationClusterId: pulumi.String("workstation-cluster-private"),
			Network:              defaultNetwork.ID(),
			Subnetwork:           defaultSubnetwork.ID(),
			Location:             pulumi.String("us-central1"),
			PrivateClusterConfig: &workstations.WorkstationClusterPrivateClusterConfigArgs{
				EnablePrivateEndpoint: pulumi.Bool(true),
			},
			Labels: pulumi.StringMap{
				"label": pulumi.String("key"),
			},
			Annotations: pulumi.StringMap{
				"label-one": pulumi.String("value-one"),
			},
		})
		if err != nil {
			return err
		}
		_, err = organizations.LookupProject(ctx, &organizations.LookupProjectArgs{}, nil)
		if err != nil {
			return err
		}
		return nil
	})
}
Copy
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Gcp = Pulumi.Gcp;

return await Deployment.RunAsync(() => 
{
    var defaultNetwork = new Gcp.Compute.Network("default", new()
    {
        Name = "workstation-cluster-private",
        AutoCreateSubnetworks = false,
    });

    var defaultSubnetwork = new Gcp.Compute.Subnetwork("default", new()
    {
        Name = "workstation-cluster-private",
        IpCidrRange = "10.0.0.0/24",
        Region = "us-central1",
        Network = defaultNetwork.Name,
    });

    var @default = new Gcp.Workstations.WorkstationCluster("default", new()
    {
        WorkstationClusterId = "workstation-cluster-private",
        Network = defaultNetwork.Id,
        Subnetwork = defaultSubnetwork.Id,
        Location = "us-central1",
        PrivateClusterConfig = new Gcp.Workstations.Inputs.WorkstationClusterPrivateClusterConfigArgs
        {
            EnablePrivateEndpoint = true,
        },
        Labels = 
        {
            { "label", "key" },
        },
        Annotations = 
        {
            { "label-one", "value-one" },
        },
    });

    var project = Gcp.Organizations.GetProject.Invoke();

});
Copy
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.inputs.WorkstationClusterPrivateClusterConfigArgs;
import com.pulumi.gcp.organizations.OrganizationsFunctions;
import com.pulumi.gcp.organizations.inputs.GetProjectArgs;
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 defaultNetwork = new Network("defaultNetwork", NetworkArgs.builder()
            .name("workstation-cluster-private")
            .autoCreateSubnetworks(false)
            .build());

        var defaultSubnetwork = new Subnetwork("defaultSubnetwork", SubnetworkArgs.builder()
            .name("workstation-cluster-private")
            .ipCidrRange("10.0.0.0/24")
            .region("us-central1")
            .network(defaultNetwork.name())
            .build());

        var default_ = new WorkstationCluster("default", WorkstationClusterArgs.builder()
            .workstationClusterId("workstation-cluster-private")
            .network(defaultNetwork.id())
            .subnetwork(defaultSubnetwork.id())
            .location("us-central1")
            .privateClusterConfig(WorkstationClusterPrivateClusterConfigArgs.builder()
                .enablePrivateEndpoint(true)
                .build())
            .labels(Map.of("label", "key"))
            .annotations(Map.of("label-one", "value-one"))
            .build());

        final var project = OrganizationsFunctions.getProject();

    }
}
Copy
resources:
  default:
    type: gcp:workstations:WorkstationCluster
    properties:
      workstationClusterId: workstation-cluster-private
      network: ${defaultNetwork.id}
      subnetwork: ${defaultSubnetwork.id}
      location: us-central1
      privateClusterConfig:
        enablePrivateEndpoint: true
      labels:
        label: key
      annotations:
        label-one: value-one
  defaultNetwork:
    type: gcp:compute:Network
    name: default
    properties:
      name: workstation-cluster-private
      autoCreateSubnetworks: false
  defaultSubnetwork:
    type: gcp:compute:Subnetwork
    name: default
    properties:
      name: workstation-cluster-private
      ipCidrRange: 10.0.0.0/24
      region: us-central1
      network: ${defaultNetwork.name}
variables:
  project:
    fn::invoke:
      function: gcp:organizations:getProject
      arguments: {}
Copy

Workstation Cluster Custom Domain

import * as pulumi from "@pulumi/pulumi";
import * as gcp from "@pulumi/gcp";

const defaultNetwork = new gcp.compute.Network("default", {
    name: "workstation-cluster-custom-domain",
    autoCreateSubnetworks: false,
});
const defaultSubnetwork = new gcp.compute.Subnetwork("default", {
    name: "workstation-cluster-custom-domain",
    ipCidrRange: "10.0.0.0/24",
    region: "us-central1",
    network: defaultNetwork.name,
});
const _default = new gcp.workstations.WorkstationCluster("default", {
    workstationClusterId: "workstation-cluster-custom-domain",
    network: defaultNetwork.id,
    subnetwork: defaultSubnetwork.id,
    location: "us-central1",
    privateClusterConfig: {
        enablePrivateEndpoint: true,
    },
    domainConfig: {
        domain: "workstations.example.com",
    },
    labels: {
        label: "key",
    },
    annotations: {
        "label-one": "value-one",
    },
});
const project = gcp.organizations.getProject({});
Copy
import pulumi
import pulumi_gcp as gcp

default_network = gcp.compute.Network("default",
    name="workstation-cluster-custom-domain",
    auto_create_subnetworks=False)
default_subnetwork = gcp.compute.Subnetwork("default",
    name="workstation-cluster-custom-domain",
    ip_cidr_range="10.0.0.0/24",
    region="us-central1",
    network=default_network.name)
default = gcp.workstations.WorkstationCluster("default",
    workstation_cluster_id="workstation-cluster-custom-domain",
    network=default_network.id,
    subnetwork=default_subnetwork.id,
    location="us-central1",
    private_cluster_config={
        "enable_private_endpoint": True,
    },
    domain_config={
        "domain": "workstations.example.com",
    },
    labels={
        "label": "key",
    },
    annotations={
        "label-one": "value-one",
    })
project = gcp.organizations.get_project()
Copy
package main

import (
	"github.com/pulumi/pulumi-gcp/sdk/v8/go/gcp/compute"
	"github.com/pulumi/pulumi-gcp/sdk/v8/go/gcp/organizations"
	"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 {
		defaultNetwork, err := compute.NewNetwork(ctx, "default", &compute.NetworkArgs{
			Name:                  pulumi.String("workstation-cluster-custom-domain"),
			AutoCreateSubnetworks: pulumi.Bool(false),
		})
		if err != nil {
			return err
		}
		defaultSubnetwork, err := compute.NewSubnetwork(ctx, "default", &compute.SubnetworkArgs{
			Name:        pulumi.String("workstation-cluster-custom-domain"),
			IpCidrRange: pulumi.String("10.0.0.0/24"),
			Region:      pulumi.String("us-central1"),
			Network:     defaultNetwork.Name,
		})
		if err != nil {
			return err
		}
		_, err = workstations.NewWorkstationCluster(ctx, "default", &workstations.WorkstationClusterArgs{
			WorkstationClusterId: pulumi.String("workstation-cluster-custom-domain"),
			Network:              defaultNetwork.ID(),
			Subnetwork:           defaultSubnetwork.ID(),
			Location:             pulumi.String("us-central1"),
			PrivateClusterConfig: &workstations.WorkstationClusterPrivateClusterConfigArgs{
				EnablePrivateEndpoint: pulumi.Bool(true),
			},
			DomainConfig: &workstations.WorkstationClusterDomainConfigArgs{
				Domain: pulumi.String("workstations.example.com"),
			},
			Labels: pulumi.StringMap{
				"label": pulumi.String("key"),
			},
			Annotations: pulumi.StringMap{
				"label-one": pulumi.String("value-one"),
			},
		})
		if err != nil {
			return err
		}
		_, err = organizations.LookupProject(ctx, &organizations.LookupProjectArgs{}, nil)
		if err != nil {
			return err
		}
		return nil
	})
}
Copy
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Gcp = Pulumi.Gcp;

return await Deployment.RunAsync(() => 
{
    var defaultNetwork = new Gcp.Compute.Network("default", new()
    {
        Name = "workstation-cluster-custom-domain",
        AutoCreateSubnetworks = false,
    });

    var defaultSubnetwork = new Gcp.Compute.Subnetwork("default", new()
    {
        Name = "workstation-cluster-custom-domain",
        IpCidrRange = "10.0.0.0/24",
        Region = "us-central1",
        Network = defaultNetwork.Name,
    });

    var @default = new Gcp.Workstations.WorkstationCluster("default", new()
    {
        WorkstationClusterId = "workstation-cluster-custom-domain",
        Network = defaultNetwork.Id,
        Subnetwork = defaultSubnetwork.Id,
        Location = "us-central1",
        PrivateClusterConfig = new Gcp.Workstations.Inputs.WorkstationClusterPrivateClusterConfigArgs
        {
            EnablePrivateEndpoint = true,
        },
        DomainConfig = new Gcp.Workstations.Inputs.WorkstationClusterDomainConfigArgs
        {
            Domain = "workstations.example.com",
        },
        Labels = 
        {
            { "label", "key" },
        },
        Annotations = 
        {
            { "label-one", "value-one" },
        },
    });

    var project = Gcp.Organizations.GetProject.Invoke();

});
Copy
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.inputs.WorkstationClusterPrivateClusterConfigArgs;
import com.pulumi.gcp.workstations.inputs.WorkstationClusterDomainConfigArgs;
import com.pulumi.gcp.organizations.OrganizationsFunctions;
import com.pulumi.gcp.organizations.inputs.GetProjectArgs;
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 defaultNetwork = new Network("defaultNetwork", NetworkArgs.builder()
            .name("workstation-cluster-custom-domain")
            .autoCreateSubnetworks(false)
            .build());

        var defaultSubnetwork = new Subnetwork("defaultSubnetwork", SubnetworkArgs.builder()
            .name("workstation-cluster-custom-domain")
            .ipCidrRange("10.0.0.0/24")
            .region("us-central1")
            .network(defaultNetwork.name())
            .build());

        var default_ = new WorkstationCluster("default", WorkstationClusterArgs.builder()
            .workstationClusterId("workstation-cluster-custom-domain")
            .network(defaultNetwork.id())
            .subnetwork(defaultSubnetwork.id())
            .location("us-central1")
            .privateClusterConfig(WorkstationClusterPrivateClusterConfigArgs.builder()
                .enablePrivateEndpoint(true)
                .build())
            .domainConfig(WorkstationClusterDomainConfigArgs.builder()
                .domain("workstations.example.com")
                .build())
            .labels(Map.of("label", "key"))
            .annotations(Map.of("label-one", "value-one"))
            .build());

        final var project = OrganizationsFunctions.getProject();

    }
}
Copy
resources:
  default:
    type: gcp:workstations:WorkstationCluster
    properties:
      workstationClusterId: workstation-cluster-custom-domain
      network: ${defaultNetwork.id}
      subnetwork: ${defaultSubnetwork.id}
      location: us-central1
      privateClusterConfig:
        enablePrivateEndpoint: true
      domainConfig:
        domain: workstations.example.com
      labels:
        label: key
      annotations:
        label-one: value-one
  defaultNetwork:
    type: gcp:compute:Network
    name: default
    properties:
      name: workstation-cluster-custom-domain
      autoCreateSubnetworks: false
  defaultSubnetwork:
    type: gcp:compute:Subnetwork
    name: default
    properties:
      name: workstation-cluster-custom-domain
      ipCidrRange: 10.0.0.0/24
      region: us-central1
      network: ${defaultNetwork.name}
variables:
  project:
    fn::invoke:
      function: gcp:organizations:getProject
      arguments: {}
Copy

Workstation Cluster Tags

import * as pulumi from "@pulumi/pulumi";
import * as gcp from "@pulumi/gcp";

const project = gcp.organizations.getProject({});
const tagKey = new gcp.tags.TagKey("tag_key", {
    parent: project.then(project => `projects/${project.number}`),
    shortName: "keyname",
});
const tagValue = new gcp.tags.TagValue("tag_value", {
    parent: pulumi.interpolate`tagKeys/${tagKey.name}`,
    shortName: "valuename",
});
const defaultNetwork = new gcp.compute.Network("default", {
    name: "workstation-cluster-tags",
    autoCreateSubnetworks: false,
});
const defaultSubnetwork = new gcp.compute.Subnetwork("default", {
    name: "workstation-cluster-tags",
    ipCidrRange: "10.0.0.0/24",
    region: "us-central1",
    network: defaultNetwork.name,
});
const _default = new gcp.workstations.WorkstationCluster("default", {
    workstationClusterId: "workstation-cluster-tags",
    network: defaultNetwork.id,
    subnetwork: defaultSubnetwork.id,
    location: "us-central1",
    tags: pulumi.all([project, tagKey.shortName, tagValue.shortName]).apply(([project, tagKeyShortName, tagValueShortName]) => {
        [`${project.projectId}/${tagKeyShortName}`]: tagValueShortName,
    }),
});
Copy
import pulumi
import pulumi_gcp as gcp

project = gcp.organizations.get_project()
tag_key = gcp.tags.TagKey("tag_key",
    parent=f"projects/{project.number}",
    short_name="keyname")
tag_value = gcp.tags.TagValue("tag_value",
    parent=tag_key.name.apply(lambda name: f"tagKeys/{name}"),
    short_name="valuename")
default_network = gcp.compute.Network("default",
    name="workstation-cluster-tags",
    auto_create_subnetworks=False)
default_subnetwork = gcp.compute.Subnetwork("default",
    name="workstation-cluster-tags",
    ip_cidr_range="10.0.0.0/24",
    region="us-central1",
    network=default_network.name)
default = gcp.workstations.WorkstationCluster("default",
    workstation_cluster_id="workstation-cluster-tags",
    network=default_network.id,
    subnetwork=default_subnetwork.id,
    location="us-central1",
    tags=pulumi.Output.all(
        tagKeyShort_name=tag_key.short_name,
        tagValueShort_name=tag_value.short_name
).apply(lambda resolved_outputs: {
        f"{project.project_id}/{resolved_outputs['tagKeyShort_name']}": resolved_outputs['tagValueShort_name'],
    })
)
Copy
package main

import (
	"fmt"

	"github.com/pulumi/pulumi-gcp/sdk/v8/go/gcp/compute"
	"github.com/pulumi/pulumi-gcp/sdk/v8/go/gcp/organizations"
	"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 {
project, err := organizations.LookupProject(ctx, &organizations.LookupProjectArgs{
}, nil);
if err != nil {
return err
}
tagKey, err := tags.NewTagKey(ctx, "tag_key", &tags.TagKeyArgs{
Parent: pulumi.Sprintf("projects/%v", project.Number),
ShortName: pulumi.String("keyname"),
})
if err != nil {
return err
}
tagValue, err := tags.NewTagValue(ctx, "tag_value", &tags.TagValueArgs{
Parent: tagKey.Name.ApplyT(func(name string) (string, error) {
return fmt.Sprintf("tagKeys/%v", name), nil
}).(pulumi.StringOutput),
ShortName: pulumi.String("valuename"),
})
if err != nil {
return err
}
defaultNetwork, err := compute.NewNetwork(ctx, "default", &compute.NetworkArgs{
Name: pulumi.String("workstation-cluster-tags"),
AutoCreateSubnetworks: pulumi.Bool(false),
})
if err != nil {
return err
}
defaultSubnetwork, err := compute.NewSubnetwork(ctx, "default", &compute.SubnetworkArgs{
Name: pulumi.String("workstation-cluster-tags"),
IpCidrRange: pulumi.String("10.0.0.0/24"),
Region: pulumi.String("us-central1"),
Network: defaultNetwork.Name,
})
if err != nil {
return err
}
_, err = workstations.NewWorkstationCluster(ctx, "default", &workstations.WorkstationClusterArgs{
WorkstationClusterId: pulumi.String("workstation-cluster-tags"),
Network: defaultNetwork.ID(),
Subnetwork: defaultSubnetwork.ID(),
Location: pulumi.String("us-central1"),
Tags: pulumi.All(tagKey.ShortName,tagValue.ShortName).ApplyT(func(_args []interface{}) (map[string]string, error) {
tagKeyShortName := _args[0].(string)
tagValueShortName := _args[1].(string)
return map[string]string{
fmt.Sprintf("%v/%v", project.ProjectId, tagKeyShortName): tagValueShortName,
}, nil
}).(pulumi.Map[string]stringOutput),
})
if err != nil {
return err
}
return nil
})
}
Copy
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Gcp = Pulumi.Gcp;

return await Deployment.RunAsync(() => 
{
    var project = Gcp.Organizations.GetProject.Invoke();

    var tagKey = new Gcp.Tags.TagKey("tag_key", new()
    {
        Parent = $"projects/{project.Apply(getProjectResult => getProjectResult.Number)}",
        ShortName = "keyname",
    });

    var tagValue = new Gcp.Tags.TagValue("tag_value", new()
    {
        Parent = tagKey.Name.Apply(name => $"tagKeys/{name}"),
        ShortName = "valuename",
    });

    var defaultNetwork = new Gcp.Compute.Network("default", new()
    {
        Name = "workstation-cluster-tags",
        AutoCreateSubnetworks = false,
    });

    var defaultSubnetwork = new Gcp.Compute.Subnetwork("default", new()
    {
        Name = "workstation-cluster-tags",
        IpCidrRange = "10.0.0.0/24",
        Region = "us-central1",
        Network = defaultNetwork.Name,
    });

    var @default = new Gcp.Workstations.WorkstationCluster("default", new()
    {
        WorkstationClusterId = "workstation-cluster-tags",
        Network = defaultNetwork.Id,
        Subnetwork = defaultSubnetwork.Id,
        Location = "us-central1",
        Tags = Output.Tuple(project, tagKey.ShortName, tagValue.ShortName).Apply(values =>
        {
            var project = values.Item1;
            var tagKeyShortName = values.Item2;
            var tagValueShortName = values.Item3;
            return 
            {
                { $"{project.Apply(getProjectResult => getProjectResult.ProjectId)}/{tagKeyShortName}", tagValueShortName },
            };
        }),
    });

});
Copy
package generated_program;

import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.gcp.organizations.OrganizationsFunctions;
import com.pulumi.gcp.organizations.inputs.GetProjectArgs;
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 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) {
        final var project = OrganizationsFunctions.getProject();

        var tagKey = new TagKey("tagKey", TagKeyArgs.builder()
            .parent(String.format("projects/%s", project.applyValue(getProjectResult -> getProjectResult.number())))
            .shortName("keyname")
            .build());

        var tagValue = new TagValue("tagValue", TagValueArgs.builder()
            .parent(tagKey.name().applyValue(name -> String.format("tagKeys/%s", name)))
            .shortName("valuename")
            .build());

        var defaultNetwork = new Network("defaultNetwork", NetworkArgs.builder()
            .name("workstation-cluster-tags")
            .autoCreateSubnetworks(false)
            .build());

        var defaultSubnetwork = new Subnetwork("defaultSubnetwork", SubnetworkArgs.builder()
            .name("workstation-cluster-tags")
            .ipCidrRange("10.0.0.0/24")
            .region("us-central1")
            .network(defaultNetwork.name())
            .build());

        var default_ = new WorkstationCluster("default", WorkstationClusterArgs.builder()
            .workstationClusterId("workstation-cluster-tags")
            .network(defaultNetwork.id())
            .subnetwork(defaultSubnetwork.id())
            .location("us-central1")
            .tags(Output.tuple(tagKey.shortName(), tagValue.shortName()).applyValue(values -> {
                var tagKeyShortName = values.t1;
                var tagValueShortName = values.t2;
                return Map.of(String.format("%s/%s", project.applyValue(getProjectResult -> getProjectResult.projectId()),tagKeyShortName), tagValueShortName);
            }))
            .build());

    }
}
Copy
resources:
  tagKey:
    type: gcp:tags:TagKey
    name: tag_key
    properties:
      parent: projects/${project.number}
      shortName: keyname
  tagValue:
    type: gcp:tags:TagValue
    name: tag_value
    properties:
      parent: tagKeys/${tagKey.name}
      shortName: valuename
  default:
    type: gcp:workstations:WorkstationCluster
    properties:
      workstationClusterId: workstation-cluster-tags
      network: ${defaultNetwork.id}
      subnetwork: ${defaultSubnetwork.id}
      location: us-central1
      tags:
        ${project.projectId}/${tagKey.shortName}: ${tagValue.shortName}
  defaultNetwork:
    type: gcp:compute:Network
    name: default
    properties:
      name: workstation-cluster-tags
      autoCreateSubnetworks: false
  defaultSubnetwork:
    type: gcp:compute:Subnetwork
    name: default
    properties:
      name: workstation-cluster-tags
      ipCidrRange: 10.0.0.0/24
      region: us-central1
      network: ${defaultNetwork.name}
variables:
  project:
    fn::invoke:
      function: gcp:organizations:getProject
      arguments: {}
Copy

Create WorkstationCluster Resource

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

Constructor syntax

new WorkstationCluster(name: string, args: WorkstationClusterArgs, opts?: CustomResourceOptions);
@overload
def WorkstationCluster(resource_name: str,
                       args: WorkstationClusterArgs,
                       opts: Optional[ResourceOptions] = None)

@overload
def WorkstationCluster(resource_name: str,
                       opts: Optional[ResourceOptions] = None,
                       network: Optional[str] = None,
                       subnetwork: Optional[str] = None,
                       workstation_cluster_id: Optional[str] = None,
                       annotations: Optional[Mapping[str, str]] = None,
                       display_name: Optional[str] = None,
                       domain_config: Optional[WorkstationClusterDomainConfigArgs] = None,
                       labels: Optional[Mapping[str, str]] = None,
                       location: Optional[str] = None,
                       private_cluster_config: Optional[WorkstationClusterPrivateClusterConfigArgs] = None,
                       project: Optional[str] = None,
                       tags: Optional[Mapping[str, str]] = None)
func NewWorkstationCluster(ctx *Context, name string, args WorkstationClusterArgs, opts ...ResourceOption) (*WorkstationCluster, error)
public WorkstationCluster(string name, WorkstationClusterArgs args, CustomResourceOptions? opts = null)
public WorkstationCluster(String name, WorkstationClusterArgs args)
public WorkstationCluster(String name, WorkstationClusterArgs args, CustomResourceOptions options)
type: gcp:workstations:WorkstationCluster
properties: # The arguments to resource properties.
options: # Bag of options to control resource's behavior.

Parameters

name This property is required. string
The unique name of the resource.
args This property is required. WorkstationClusterArgs
The arguments to resource properties.
opts CustomResourceOptions
Bag of options to control resource's behavior.
resource_name This property is required. str
The unique name of the resource.
args This property is required. WorkstationClusterArgs
The arguments to resource properties.
opts ResourceOptions
Bag of options to control resource's behavior.
ctx Context
Context object for the current deployment.
name This property is required. string
The unique name of the resource.
args This property is required. WorkstationClusterArgs
The arguments to resource properties.
opts ResourceOption
Bag of options to control resource's behavior.
name This property is required. string
The unique name of the resource.
args This property is required. WorkstationClusterArgs
The arguments to resource properties.
opts CustomResourceOptions
Bag of options to control resource's behavior.
name This property is required. String
The unique name of the resource.
args This property is required. WorkstationClusterArgs
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 workstationClusterResource = new Gcp.Workstations.WorkstationCluster("workstationClusterResource", new()
{
    Network = "string",
    Subnetwork = "string",
    WorkstationClusterId = "string",
    Annotations = 
    {
        { "string", "string" },
    },
    DisplayName = "string",
    DomainConfig = new Gcp.Workstations.Inputs.WorkstationClusterDomainConfigArgs
    {
        Domain = "string",
    },
    Labels = 
    {
        { "string", "string" },
    },
    Location = "string",
    PrivateClusterConfig = new Gcp.Workstations.Inputs.WorkstationClusterPrivateClusterConfigArgs
    {
        EnablePrivateEndpoint = false,
        AllowedProjects = new[]
        {
            "string",
        },
        ClusterHostname = "string",
        ServiceAttachmentUri = "string",
    },
    Project = "string",
    Tags = 
    {
        { "string", "string" },
    },
});
Copy
example, err := workstations.NewWorkstationCluster(ctx, "workstationClusterResource", &workstations.WorkstationClusterArgs{
	Network:              pulumi.String("string"),
	Subnetwork:           pulumi.String("string"),
	WorkstationClusterId: pulumi.String("string"),
	Annotations: pulumi.StringMap{
		"string": pulumi.String("string"),
	},
	DisplayName: pulumi.String("string"),
	DomainConfig: &workstations.WorkstationClusterDomainConfigArgs{
		Domain: pulumi.String("string"),
	},
	Labels: pulumi.StringMap{
		"string": pulumi.String("string"),
	},
	Location: pulumi.String("string"),
	PrivateClusterConfig: &workstations.WorkstationClusterPrivateClusterConfigArgs{
		EnablePrivateEndpoint: pulumi.Bool(false),
		AllowedProjects: pulumi.StringArray{
			pulumi.String("string"),
		},
		ClusterHostname:      pulumi.String("string"),
		ServiceAttachmentUri: pulumi.String("string"),
	},
	Project: pulumi.String("string"),
	Tags: pulumi.StringMap{
		"string": pulumi.String("string"),
	},
})
Copy
var workstationClusterResource = new WorkstationCluster("workstationClusterResource", WorkstationClusterArgs.builder()
    .network("string")
    .subnetwork("string")
    .workstationClusterId("string")
    .annotations(Map.of("string", "string"))
    .displayName("string")
    .domainConfig(WorkstationClusterDomainConfigArgs.builder()
        .domain("string")
        .build())
    .labels(Map.of("string", "string"))
    .location("string")
    .privateClusterConfig(WorkstationClusterPrivateClusterConfigArgs.builder()
        .enablePrivateEndpoint(false)
        .allowedProjects("string")
        .clusterHostname("string")
        .serviceAttachmentUri("string")
        .build())
    .project("string")
    .tags(Map.of("string", "string"))
    .build());
Copy
workstation_cluster_resource = gcp.workstations.WorkstationCluster("workstationClusterResource",
    network="string",
    subnetwork="string",
    workstation_cluster_id="string",
    annotations={
        "string": "string",
    },
    display_name="string",
    domain_config={
        "domain": "string",
    },
    labels={
        "string": "string",
    },
    location="string",
    private_cluster_config={
        "enable_private_endpoint": False,
        "allowed_projects": ["string"],
        "cluster_hostname": "string",
        "service_attachment_uri": "string",
    },
    project="string",
    tags={
        "string": "string",
    })
Copy
const workstationClusterResource = new gcp.workstations.WorkstationCluster("workstationClusterResource", {
    network: "string",
    subnetwork: "string",
    workstationClusterId: "string",
    annotations: {
        string: "string",
    },
    displayName: "string",
    domainConfig: {
        domain: "string",
    },
    labels: {
        string: "string",
    },
    location: "string",
    privateClusterConfig: {
        enablePrivateEndpoint: false,
        allowedProjects: ["string"],
        clusterHostname: "string",
        serviceAttachmentUri: "string",
    },
    project: "string",
    tags: {
        string: "string",
    },
});
Copy
type: gcp:workstations:WorkstationCluster
properties:
    annotations:
        string: string
    displayName: string
    domainConfig:
        domain: string
    labels:
        string: string
    location: string
    network: string
    privateClusterConfig:
        allowedProjects:
            - string
        clusterHostname: string
        enablePrivateEndpoint: false
        serviceAttachmentUri: string
    project: string
    subnetwork: string
    tags:
        string: string
    workstationClusterId: string
Copy

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

Network
This property is required.
Changes to this property will trigger replacement.
string
The relative resource name of the VPC network on which the instance can be accessed. It is specified in the following form: "projects/{projectNumber}/global/networks/{network_id}".
Subnetwork
This property is required.
Changes to this property will trigger replacement.
string
Name of the Compute Engine subnetwork in which instances associated with this cluster will be created. Must be part of the subnetwork specified for this cluster.
WorkstationClusterId
This property is required.
Changes to this property will trigger replacement.
string
ID to use for the workstation cluster.


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_annotations for all of the annotations present on the resource.
DisplayName string
Human-readable name for this resource.
DomainConfig WorkstationClusterDomainConfig
Configuration options for a custom domain. Structure is documented below.
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_labels for all of the labels present on the resource.
Location Changes to this property will trigger replacement. string
The location where the workstation cluster should reside.
PrivateClusterConfig WorkstationClusterPrivateClusterConfig
Configuration for private cluster. Structure is documented below.
Project Changes to this property will trigger replacement. string
The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
Tags Changes to this property will trigger replacement. Dictionary<string, string>
Resource manager tags bound to this resource. For example: "123/environment": "production", "123/costCenter": "marketing"
Network
This property is required.
Changes to this property will trigger replacement.
string
The relative resource name of the VPC network on which the instance can be accessed. It is specified in the following form: "projects/{projectNumber}/global/networks/{network_id}".
Subnetwork
This property is required.
Changes to this property will trigger replacement.
string
Name of the Compute Engine subnetwork in which instances associated with this cluster will be created. Must be part of the subnetwork specified for this cluster.
WorkstationClusterId
This property is required.
Changes to this property will trigger replacement.
string
ID to use for the workstation cluster.


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_annotations for all of the annotations present on the resource.
DisplayName string
Human-readable name for this resource.
DomainConfig WorkstationClusterDomainConfigArgs
Configuration options for a custom domain. Structure is documented below.
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_labels for all of the labels present on the resource.
Location Changes to this property will trigger replacement. string
The location where the workstation cluster should reside.
PrivateClusterConfig WorkstationClusterPrivateClusterConfigArgs
Configuration for private cluster. Structure is documented below.
Project Changes to this property will trigger replacement. string
The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
Tags Changes to this property will trigger replacement. map[string]string
Resource manager tags bound to this resource. For example: "123/environment": "production", "123/costCenter": "marketing"
network
This property is required.
Changes to this property will trigger replacement.
String
The relative resource name of the VPC network on which the instance can be accessed. It is specified in the following form: "projects/{projectNumber}/global/networks/{network_id}".
subnetwork
This property is required.
Changes to this property will trigger replacement.
String
Name of the Compute Engine subnetwork in which instances associated with this cluster will be created. Must be part of the subnetwork specified for this cluster.
workstationClusterId
This property is required.
Changes to this property will trigger replacement.
String
ID to use for the workstation cluster.


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_annotations for all of the annotations present on the resource.
displayName String
Human-readable name for this resource.
domainConfig WorkstationClusterDomainConfig
Configuration options for a custom domain. Structure is documented below.
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_labels for all of the labels present on the resource.
location Changes to this property will trigger replacement. String
The location where the workstation cluster should reside.
privateClusterConfig WorkstationClusterPrivateClusterConfig
Configuration for private cluster. Structure is documented below.
project Changes to this property will trigger replacement. String
The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
tags Changes to this property will trigger replacement. Map<String,String>
Resource manager tags bound to this resource. For example: "123/environment": "production", "123/costCenter": "marketing"
network
This property is required.
Changes to this property will trigger replacement.
string
The relative resource name of the VPC network on which the instance can be accessed. It is specified in the following form: "projects/{projectNumber}/global/networks/{network_id}".
subnetwork
This property is required.
Changes to this property will trigger replacement.
string
Name of the Compute Engine subnetwork in which instances associated with this cluster will be created. Must be part of the subnetwork specified for this cluster.
workstationClusterId
This property is required.
Changes to this property will trigger replacement.
string
ID to use for the workstation cluster.


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_annotations for all of the annotations present on the resource.
displayName string
Human-readable name for this resource.
domainConfig WorkstationClusterDomainConfig
Configuration options for a custom domain. Structure is documented below.
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_labels for all of the labels present on the resource.
location Changes to this property will trigger replacement. string
The location where the workstation cluster should reside.
privateClusterConfig WorkstationClusterPrivateClusterConfig
Configuration for private cluster. Structure is documented below.
project Changes to this property will trigger replacement. string
The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
tags Changes to this property will trigger replacement. {[key: string]: string}
Resource manager tags bound to this resource. For example: "123/environment": "production", "123/costCenter": "marketing"
network
This property is required.
Changes to this property will trigger replacement.
str
The relative resource name of the VPC network on which the instance can be accessed. It is specified in the following form: "projects/{projectNumber}/global/networks/{network_id}".
subnetwork
This property is required.
Changes to this property will trigger replacement.
str
Name of the Compute Engine subnetwork in which instances associated with this cluster will be created. Must be part of the subnetwork specified for this cluster.
workstation_cluster_id
This property is required.
Changes to this property will trigger replacement.
str
ID to use for the workstation cluster.


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_annotations for all of the annotations present on the resource.
display_name str
Human-readable name for this resource.
domain_config WorkstationClusterDomainConfigArgs
Configuration options for a custom domain. Structure is documented below.
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_labels for all of the labels present on the resource.
location Changes to this property will trigger replacement. str
The location where the workstation cluster should reside.
private_cluster_config WorkstationClusterPrivateClusterConfigArgs
Configuration for private cluster. Structure is documented below.
project Changes to this property will trigger replacement. str
The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
tags Changes to this property will trigger replacement. Mapping[str, str]
Resource manager tags bound to this resource. For example: "123/environment": "production", "123/costCenter": "marketing"
network
This property is required.
Changes to this property will trigger replacement.
String
The relative resource name of the VPC network on which the instance can be accessed. It is specified in the following form: "projects/{projectNumber}/global/networks/{network_id}".
subnetwork
This property is required.
Changes to this property will trigger replacement.
String
Name of the Compute Engine subnetwork in which instances associated with this cluster will be created. Must be part of the subnetwork specified for this cluster.
workstationClusterId
This property is required.
Changes to this property will trigger replacement.
String
ID to use for the workstation cluster.


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_annotations for all of the annotations present on the resource.
displayName String
Human-readable name for this resource.
domainConfig Property Map
Configuration options for a custom domain. Structure is documented below.
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_labels for all of the labels present on the resource.
location Changes to this property will trigger replacement. String
The location where the workstation cluster should reside.
privateClusterConfig Property Map
Configuration for private cluster. Structure is documented below.
project Changes to this property will trigger replacement. String
The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
tags Changes to this property will trigger replacement. Map<String>
Resource manager tags bound to this resource. For example: "123/environment": "production", "123/costCenter": "marketing"

Outputs

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

Conditions List<WorkstationClusterCondition>
Status conditions describing the current resource state. Structure is documented below.
ControlPlaneIp string
The private IP address of the control plane for this workstation cluster. Workstation VMs need access to this IP address to work with the service, so make sure that your firewall rules allow egress from the workstation VMs to this address.
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
The name of the cluster 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 []WorkstationClusterCondition
Status conditions describing the current resource state. Structure is documented below.
ControlPlaneIp string
The private IP address of the control plane for this workstation cluster. Workstation VMs need access to this IP address to work with the service, so make sure that your firewall rules allow egress from the workstation VMs to this address.
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
The name of the cluster 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<WorkstationClusterCondition>
Status conditions describing the current resource state. Structure is documented below.
controlPlaneIp String
The private IP address of the control plane for this workstation cluster. Workstation VMs need access to this IP address to work with the service, so make sure that your firewall rules allow egress from the workstation VMs to this address.
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
The name of the cluster 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 WorkstationClusterCondition[]
Status conditions describing the current resource state. Structure is documented below.
controlPlaneIp string
The private IP address of the control plane for this workstation cluster. Workstation VMs need access to this IP address to work with the service, so make sure that your firewall rules allow egress from the workstation VMs to this address.
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
The name of the cluster 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[WorkstationClusterCondition]
Status conditions describing the current resource state. Structure is documented below.
control_plane_ip str
The private IP address of the control plane for this workstation cluster. Workstation VMs need access to this IP address to work with the service, so make sure that your firewall rules allow egress from the workstation VMs to this address.
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
The name of the cluster 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.
controlPlaneIp String
The private IP address of the control plane for this workstation cluster. Workstation VMs need access to this IP address to work with the service, so make sure that your firewall rules allow egress from the workstation VMs to this address.
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
The name of the cluster 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 WorkstationCluster Resource

Get an existing WorkstationCluster 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?: WorkstationClusterState, opts?: CustomResourceOptions): WorkstationCluster
@staticmethod
def get(resource_name: str,
        id: str,
        opts: Optional[ResourceOptions] = None,
        annotations: Optional[Mapping[str, str]] = None,
        conditions: Optional[Sequence[WorkstationClusterConditionArgs]] = None,
        control_plane_ip: Optional[str] = None,
        create_time: Optional[str] = None,
        degraded: Optional[bool] = None,
        display_name: Optional[str] = None,
        domain_config: Optional[WorkstationClusterDomainConfigArgs] = None,
        effective_annotations: Optional[Mapping[str, str]] = None,
        effective_labels: Optional[Mapping[str, str]] = None,
        etag: Optional[str] = None,
        labels: Optional[Mapping[str, str]] = None,
        location: Optional[str] = None,
        name: Optional[str] = None,
        network: Optional[str] = None,
        private_cluster_config: Optional[WorkstationClusterPrivateClusterConfigArgs] = None,
        project: Optional[str] = None,
        pulumi_labels: Optional[Mapping[str, str]] = None,
        subnetwork: Optional[str] = None,
        tags: Optional[Mapping[str, str]] = None,
        uid: Optional[str] = None,
        workstation_cluster_id: Optional[str] = None) -> WorkstationCluster
func GetWorkstationCluster(ctx *Context, name string, id IDInput, state *WorkstationClusterState, opts ...ResourceOption) (*WorkstationCluster, error)
public static WorkstationCluster Get(string name, Input<string> id, WorkstationClusterState? state, CustomResourceOptions? opts = null)
public static WorkstationCluster get(String name, Output<String> id, WorkstationClusterState state, CustomResourceOptions options)
resources:  _:    type: gcp:workstations:WorkstationCluster    get:      id: ${id}
name This property is required.
The unique name of the resulting resource.
id This property is required.
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 This property is required.
The unique name of the resulting resource.
id This property is required.
The unique provider ID of the resource to lookup.
name This property is required.
The unique name of the resulting resource.
id This property is required.
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 This property is required.
The unique name of the resulting resource.
id This property is required.
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 This property is required.
The unique name of the resulting resource.
id This property is required.
The unique provider ID of the resource to lookup.
state
Any extra arguments used during the lookup.
opts
A bag of options that control this resource's behavior.
The following state arguments are supported:
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_annotations for all of the annotations present on the resource.
Conditions List<WorkstationClusterCondition>
Status conditions describing the current resource state. Structure is documented below.
ControlPlaneIp string
The private IP address of the control plane for this workstation cluster. Workstation VMs need access to this IP address to work with the service, so make sure that your firewall rules allow egress from the workstation VMs to this address.
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.
DisplayName string
Human-readable name for this resource.
DomainConfig WorkstationClusterDomainConfig
Configuration options for a custom domain. Structure is documented below.
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.
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_labels for all of the labels present on the resource.
Location Changes to this property will trigger replacement. string
The location where the workstation cluster should reside.
Name string
The name of the cluster resource.
Network Changes to this property will trigger replacement. string
The relative resource name of the VPC network on which the instance can be accessed. It is specified in the following form: "projects/{projectNumber}/global/networks/{network_id}".
PrivateClusterConfig WorkstationClusterPrivateClusterConfig
Configuration for private cluster. Structure is documented below.
Project Changes to this property will trigger replacement. 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.
Subnetwork Changes to this property will trigger replacement. string
Name of the Compute Engine subnetwork in which instances associated with this cluster will be created. Must be part of the subnetwork specified for this cluster.
Tags Changes to this property will trigger replacement. Dictionary<string, string>
Resource manager tags bound to this resource. For example: "123/environment": "production", "123/costCenter": "marketing"
Uid string
The system-generated UID of the resource.
WorkstationClusterId Changes to this property will trigger replacement. string
ID to use for the workstation cluster.


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_annotations for all of the annotations present on the resource.
Conditions []WorkstationClusterConditionArgs
Status conditions describing the current resource state. Structure is documented below.
ControlPlaneIp string
The private IP address of the control plane for this workstation cluster. Workstation VMs need access to this IP address to work with the service, so make sure that your firewall rules allow egress from the workstation VMs to this address.
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.
DisplayName string
Human-readable name for this resource.
DomainConfig WorkstationClusterDomainConfigArgs
Configuration options for a custom domain. Structure is documented below.
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.
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_labels for all of the labels present on the resource.
Location Changes to this property will trigger replacement. string
The location where the workstation cluster should reside.
Name string
The name of the cluster resource.
Network Changes to this property will trigger replacement. string
The relative resource name of the VPC network on which the instance can be accessed. It is specified in the following form: "projects/{projectNumber}/global/networks/{network_id}".
PrivateClusterConfig WorkstationClusterPrivateClusterConfigArgs
Configuration for private cluster. Structure is documented below.
Project Changes to this property will trigger replacement. 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.
Subnetwork Changes to this property will trigger replacement. string
Name of the Compute Engine subnetwork in which instances associated with this cluster will be created. Must be part of the subnetwork specified for this cluster.
Tags Changes to this property will trigger replacement. map[string]string
Resource manager tags bound to this resource. For example: "123/environment": "production", "123/costCenter": "marketing"
Uid string
The system-generated UID of the resource.
WorkstationClusterId Changes to this property will trigger replacement. string
ID to use for the workstation cluster.


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_annotations for all of the annotations present on the resource.
conditions List<WorkstationClusterCondition>
Status conditions describing the current resource state. Structure is documented below.
controlPlaneIp String
The private IP address of the control plane for this workstation cluster. Workstation VMs need access to this IP address to work with the service, so make sure that your firewall rules allow egress from the workstation VMs to this address.
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.
displayName String
Human-readable name for this resource.
domainConfig WorkstationClusterDomainConfig
Configuration options for a custom domain. Structure is documented below.
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.
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_labels for all of the labels present on the resource.
location Changes to this property will trigger replacement. String
The location where the workstation cluster should reside.
name String
The name of the cluster resource.
network Changes to this property will trigger replacement. String
The relative resource name of the VPC network on which the instance can be accessed. It is specified in the following form: "projects/{projectNumber}/global/networks/{network_id}".
privateClusterConfig WorkstationClusterPrivateClusterConfig
Configuration for private cluster. Structure is documented below.
project Changes to this property will trigger replacement. 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.
subnetwork Changes to this property will trigger replacement. String
Name of the Compute Engine subnetwork in which instances associated with this cluster will be created. Must be part of the subnetwork specified for this cluster.
tags Changes to this property will trigger replacement. Map<String,String>
Resource manager tags bound to this resource. For example: "123/environment": "production", "123/costCenter": "marketing"
uid String
The system-generated UID of the resource.
workstationClusterId Changes to this property will trigger replacement. String
ID to use for the workstation cluster.


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_annotations for all of the annotations present on the resource.
conditions WorkstationClusterCondition[]
Status conditions describing the current resource state. Structure is documented below.
controlPlaneIp string
The private IP address of the control plane for this workstation cluster. Workstation VMs need access to this IP address to work with the service, so make sure that your firewall rules allow egress from the workstation VMs to this address.
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.
displayName string
Human-readable name for this resource.
domainConfig WorkstationClusterDomainConfig
Configuration options for a custom domain. Structure is documented below.
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.
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_labels for all of the labels present on the resource.
location Changes to this property will trigger replacement. string
The location where the workstation cluster should reside.
name string
The name of the cluster resource.
network Changes to this property will trigger replacement. string
The relative resource name of the VPC network on which the instance can be accessed. It is specified in the following form: "projects/{projectNumber}/global/networks/{network_id}".
privateClusterConfig WorkstationClusterPrivateClusterConfig
Configuration for private cluster. Structure is documented below.
project Changes to this property will trigger replacement. 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.
subnetwork Changes to this property will trigger replacement. string
Name of the Compute Engine subnetwork in which instances associated with this cluster will be created. Must be part of the subnetwork specified for this cluster.
tags Changes to this property will trigger replacement. {[key: string]: string}
Resource manager tags bound to this resource. For example: "123/environment": "production", "123/costCenter": "marketing"
uid string
The system-generated UID of the resource.
workstationClusterId Changes to this property will trigger replacement. string
ID to use for the workstation cluster.


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_annotations for all of the annotations present on the resource.
conditions Sequence[WorkstationClusterConditionArgs]
Status conditions describing the current resource state. Structure is documented below.
control_plane_ip str
The private IP address of the control plane for this workstation cluster. Workstation VMs need access to this IP address to work with the service, so make sure that your firewall rules allow egress from the workstation VMs to this address.
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.
display_name str
Human-readable name for this resource.
domain_config WorkstationClusterDomainConfigArgs
Configuration options for a custom domain. Structure is documented below.
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.
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_labels for all of the labels present on the resource.
location Changes to this property will trigger replacement. str
The location where the workstation cluster should reside.
name str
The name of the cluster resource.
network Changes to this property will trigger replacement. str
The relative resource name of the VPC network on which the instance can be accessed. It is specified in the following form: "projects/{projectNumber}/global/networks/{network_id}".
private_cluster_config WorkstationClusterPrivateClusterConfigArgs
Configuration for private cluster. Structure is documented below.
project Changes to this property will trigger replacement. 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.
subnetwork Changes to this property will trigger replacement. str
Name of the Compute Engine subnetwork in which instances associated with this cluster will be created. Must be part of the subnetwork specified for this cluster.
tags Changes to this property will trigger replacement. Mapping[str, str]
Resource manager tags bound to this resource. For example: "123/environment": "production", "123/costCenter": "marketing"
uid str
The system-generated UID of the resource.
workstation_cluster_id Changes to this property will trigger replacement. str
ID to use for the workstation cluster.


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_annotations for all of the annotations present on the resource.
conditions List<Property Map>
Status conditions describing the current resource state. Structure is documented below.
controlPlaneIp String
The private IP address of the control plane for this workstation cluster. Workstation VMs need access to this IP address to work with the service, so make sure that your firewall rules allow egress from the workstation VMs to this address.
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.
displayName String
Human-readable name for this resource.
domainConfig Property Map
Configuration options for a custom domain. Structure is documented below.
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.
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_labels for all of the labels present on the resource.
location Changes to this property will trigger replacement. String
The location where the workstation cluster should reside.
name String
The name of the cluster resource.
network Changes to this property will trigger replacement. String
The relative resource name of the VPC network on which the instance can be accessed. It is specified in the following form: "projects/{projectNumber}/global/networks/{network_id}".
privateClusterConfig Property Map
Configuration for private cluster. Structure is documented below.
project Changes to this property will trigger replacement. 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.
subnetwork Changes to this property will trigger replacement. String
Name of the Compute Engine subnetwork in which instances associated with this cluster will be created. Must be part of the subnetwork specified for this cluster.
tags Changes to this property will trigger replacement. Map<String>
Resource manager tags bound to this resource. For example: "123/environment": "production", "123/costCenter": "marketing"
uid String
The system-generated UID of the resource.
workstationClusterId Changes to this property will trigger replacement. String
ID to use for the workstation cluster.


Supporting Types

WorkstationClusterCondition
, WorkstationClusterConditionArgs

Code int
(Output) The status code, which should be an enum value of google.rpc.Code.
Details List<ImmutableDictionary<string, string>>
(Output) A list of messages that carry the error details.
Message string
(Output) Human readable message indicating details about the current status.
Code int
(Output) The status code, which should be an enum value of google.rpc.Code.
Details []map[string]string
(Output) A list of messages that carry the error details.
Message string
(Output) Human readable message indicating details about the current status.
code Integer
(Output) The status code, which should be an enum value of google.rpc.Code.
details List<Map<String,String>>
(Output) A list of messages that carry the error details.
message String
(Output) Human readable message indicating details about the current status.
code number
(Output) The status code, which should be an enum value of google.rpc.Code.
details {[key: string]: string}[]
(Output) A list of messages that carry the error details.
message string
(Output) Human readable message indicating details about the current status.
code int
(Output) The status code, which should be an enum value of google.rpc.Code.
details Sequence[Mapping[str, str]]
(Output) A list of messages that carry the error details.
message str
(Output) Human readable message indicating details about the current status.
code Number
(Output) The status code, which should be an enum value of google.rpc.Code.
details List<Map<String>>
(Output) A list of messages that carry the error details.
message String
(Output) Human readable message indicating details about the current status.

WorkstationClusterDomainConfig
, WorkstationClusterDomainConfigArgs

Domain
This property is required.
Changes to this property will trigger replacement.
string
Domain used by Workstations for HTTP ingress.
Domain
This property is required.
Changes to this property will trigger replacement.
string
Domain used by Workstations for HTTP ingress.
domain
This property is required.
Changes to this property will trigger replacement.
String
Domain used by Workstations for HTTP ingress.
domain
This property is required.
Changes to this property will trigger replacement.
string
Domain used by Workstations for HTTP ingress.
domain
This property is required.
Changes to this property will trigger replacement.
str
Domain used by Workstations for HTTP ingress.
domain
This property is required.
Changes to this property will trigger replacement.
String
Domain used by Workstations for HTTP ingress.

WorkstationClusterPrivateClusterConfig
, WorkstationClusterPrivateClusterConfigArgs

EnablePrivateEndpoint
This property is required.
Changes to this property will trigger replacement.
bool
Whether Workstations endpoint is private.
AllowedProjects List<string>
Additional project IDs that are allowed to attach to the workstation cluster's service attachment. By default, the workstation cluster's project and the VPC host project (if different) are allowed.
ClusterHostname string
(Output) Hostname for the workstation cluster. This field will be populated only when private endpoint is enabled. To access workstations in the cluster, create a new DNS zone mapping this domain name to an internal IP address and a forwarding rule mapping that address to the service attachment.
ServiceAttachmentUri string
(Output) Service attachment URI for the workstation cluster. The service attachment is created when private endpoint is enabled. To access workstations in the cluster, configure access to the managed service using (Private Service Connect)[https://cloud.google.com/vpc/docs/configure-private-service-connect-services].
EnablePrivateEndpoint
This property is required.
Changes to this property will trigger replacement.
bool
Whether Workstations endpoint is private.
AllowedProjects []string
Additional project IDs that are allowed to attach to the workstation cluster's service attachment. By default, the workstation cluster's project and the VPC host project (if different) are allowed.
ClusterHostname string
(Output) Hostname for the workstation cluster. This field will be populated only when private endpoint is enabled. To access workstations in the cluster, create a new DNS zone mapping this domain name to an internal IP address and a forwarding rule mapping that address to the service attachment.
ServiceAttachmentUri string
(Output) Service attachment URI for the workstation cluster. The service attachment is created when private endpoint is enabled. To access workstations in the cluster, configure access to the managed service using (Private Service Connect)[https://cloud.google.com/vpc/docs/configure-private-service-connect-services].
enablePrivateEndpoint
This property is required.
Changes to this property will trigger replacement.
Boolean
Whether Workstations endpoint is private.
allowedProjects List<String>
Additional project IDs that are allowed to attach to the workstation cluster's service attachment. By default, the workstation cluster's project and the VPC host project (if different) are allowed.
clusterHostname String
(Output) Hostname for the workstation cluster. This field will be populated only when private endpoint is enabled. To access workstations in the cluster, create a new DNS zone mapping this domain name to an internal IP address and a forwarding rule mapping that address to the service attachment.
serviceAttachmentUri String
(Output) Service attachment URI for the workstation cluster. The service attachment is created when private endpoint is enabled. To access workstations in the cluster, configure access to the managed service using (Private Service Connect)[https://cloud.google.com/vpc/docs/configure-private-service-connect-services].
enablePrivateEndpoint
This property is required.
Changes to this property will trigger replacement.
boolean
Whether Workstations endpoint is private.
allowedProjects string[]
Additional project IDs that are allowed to attach to the workstation cluster's service attachment. By default, the workstation cluster's project and the VPC host project (if different) are allowed.
clusterHostname string
(Output) Hostname for the workstation cluster. This field will be populated only when private endpoint is enabled. To access workstations in the cluster, create a new DNS zone mapping this domain name to an internal IP address and a forwarding rule mapping that address to the service attachment.
serviceAttachmentUri string
(Output) Service attachment URI for the workstation cluster. The service attachment is created when private endpoint is enabled. To access workstations in the cluster, configure access to the managed service using (Private Service Connect)[https://cloud.google.com/vpc/docs/configure-private-service-connect-services].
enable_private_endpoint
This property is required.
Changes to this property will trigger replacement.
bool
Whether Workstations endpoint is private.
allowed_projects Sequence[str]
Additional project IDs that are allowed to attach to the workstation cluster's service attachment. By default, the workstation cluster's project and the VPC host project (if different) are allowed.
cluster_hostname str
(Output) Hostname for the workstation cluster. This field will be populated only when private endpoint is enabled. To access workstations in the cluster, create a new DNS zone mapping this domain name to an internal IP address and a forwarding rule mapping that address to the service attachment.
service_attachment_uri str
(Output) Service attachment URI for the workstation cluster. The service attachment is created when private endpoint is enabled. To access workstations in the cluster, configure access to the managed service using (Private Service Connect)[https://cloud.google.com/vpc/docs/configure-private-service-connect-services].
enablePrivateEndpoint
This property is required.
Changes to this property will trigger replacement.
Boolean
Whether Workstations endpoint is private.
allowedProjects List<String>
Additional project IDs that are allowed to attach to the workstation cluster's service attachment. By default, the workstation cluster's project and the VPC host project (if different) are allowed.
clusterHostname String
(Output) Hostname for the workstation cluster. This field will be populated only when private endpoint is enabled. To access workstations in the cluster, create a new DNS zone mapping this domain name to an internal IP address and a forwarding rule mapping that address to the service attachment.
serviceAttachmentUri String
(Output) Service attachment URI for the workstation cluster. The service attachment is created when private endpoint is enabled. To access workstations in the cluster, configure access to the managed service using (Private Service Connect)[https://cloud.google.com/vpc/docs/configure-private-service-connect-services].

Import

WorkstationCluster can be imported using any of these accepted formats:

  • projects/{{project}}/locations/{{location}}/workstationClusters/{{workstation_cluster_id}}

  • {{project}}/{{location}}/{{workstation_cluster_id}}

  • {{location}}/{{workstation_cluster_id}}

When using the pulumi import command, WorkstationCluster can be imported using one of the formats above. For example:

$ pulumi import gcp:workstations/workstationCluster:WorkstationCluster default projects/{{project}}/locations/{{location}}/workstationClusters/{{workstation_cluster_id}}
Copy
$ pulumi import gcp:workstations/workstationCluster:WorkstationCluster default {{project}}/{{location}}/{{workstation_cluster_id}}
Copy
$ pulumi import gcp:workstations/workstationCluster:WorkstationCluster default {{location}}/{{workstation_cluster_id}}
Copy

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-beta Terraform Provider.