tpu

package
v8.0.0-rc.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 13, 2024 License: Apache-2.0 Imports: 7 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type GetTensorflowVersionsArgs

type GetTensorflowVersionsArgs struct {
	// The project to list versions for. If it
	// is not provided, the provider project is used.
	Project *string `pulumi:"project"`
	// The zone to list versions for. If it
	// is not provided, the provider zone is used.
	Zone *string `pulumi:"zone"`
}

A collection of arguments for invoking getTensorflowVersions.

type GetTensorflowVersionsOutputArgs

type GetTensorflowVersionsOutputArgs struct {
	// The project to list versions for. If it
	// is not provided, the provider project is used.
	Project pulumi.StringPtrInput `pulumi:"project"`
	// The zone to list versions for. If it
	// is not provided, the provider zone is used.
	Zone pulumi.StringPtrInput `pulumi:"zone"`
}

A collection of arguments for invoking getTensorflowVersions.

func (GetTensorflowVersionsOutputArgs) ElementType

type GetTensorflowVersionsResult

type GetTensorflowVersionsResult struct {
	// The provider-assigned unique ID for this managed resource.
	Id      string `pulumi:"id"`
	Project string `pulumi:"project"`
	// The list of TensorFlow versions available for the given project and zone.
	Versions []string `pulumi:"versions"`
	Zone     string   `pulumi:"zone"`
}

A collection of values returned by getTensorflowVersions.

func GetTensorflowVersions

func GetTensorflowVersions(ctx *pulumi.Context, args *GetTensorflowVersionsArgs, opts ...pulumi.InvokeOption) (*GetTensorflowVersionsResult, error)

Get TensorFlow versions available for a project. For more information see the [official documentation](https://cloud.google.com/tpu/docs/) and [API](https://cloud.google.com/tpu/docs/reference/rest/v1/projects.locations.tensorflowVersions).

## Example Usage

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v8/go/gcp/tpu"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := tpu.GetTensorflowVersions(ctx, nil, nil)
		if err != nil {
			return err
		}
		return nil
	})
}

```

### Configure Basic TPU Node With Available Version

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v8/go/gcp/tpu"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		available, err := tpu.GetTensorflowVersions(ctx, nil, nil)
		if err != nil {
			return err
		}
		_, err = tpu.NewNode(ctx, "tpu", &tpu.NodeArgs{
			Name:              pulumi.String("test-tpu"),
			Zone:              pulumi.String("us-central1-b"),
			AcceleratorType:   pulumi.String("v3-8"),
			TensorflowVersion: pulumi.String(available.Versions[0]),
			CidrBlock:         pulumi.String("10.2.0.0/29"),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

type GetTensorflowVersionsResultOutput

type GetTensorflowVersionsResultOutput struct{ *pulumi.OutputState }

A collection of values returned by getTensorflowVersions.

func (GetTensorflowVersionsResultOutput) ElementType

func (GetTensorflowVersionsResultOutput) Id

The provider-assigned unique ID for this managed resource.

func (GetTensorflowVersionsResultOutput) Project

func (GetTensorflowVersionsResultOutput) ToGetTensorflowVersionsResultOutput

func (o GetTensorflowVersionsResultOutput) ToGetTensorflowVersionsResultOutput() GetTensorflowVersionsResultOutput

func (GetTensorflowVersionsResultOutput) ToGetTensorflowVersionsResultOutputWithContext

func (o GetTensorflowVersionsResultOutput) ToGetTensorflowVersionsResultOutputWithContext(ctx context.Context) GetTensorflowVersionsResultOutput

func (GetTensorflowVersionsResultOutput) Versions

The list of TensorFlow versions available for the given project and zone.

func (GetTensorflowVersionsResultOutput) Zone

type GetV2AcceleratorTypesArgs

type GetV2AcceleratorTypesArgs struct {
	// The project to list types for. If it
	// is not provided, the provider project is used.
	Project *string `pulumi:"project"`
	// The zone to list types for. If it
	// is not provided, the provider zone is used.
	Zone *string `pulumi:"zone"`
}

A collection of arguments for invoking getV2AcceleratorTypes.

type GetV2AcceleratorTypesOutputArgs

type GetV2AcceleratorTypesOutputArgs struct {
	// The project to list types for. If it
	// is not provided, the provider project is used.
	Project pulumi.StringPtrInput `pulumi:"project"`
	// The zone to list types for. If it
	// is not provided, the provider zone is used.
	Zone pulumi.StringPtrInput `pulumi:"zone"`
}

A collection of arguments for invoking getV2AcceleratorTypes.

func (GetV2AcceleratorTypesOutputArgs) ElementType

type GetV2AcceleratorTypesResult

type GetV2AcceleratorTypesResult struct {
	// The provider-assigned unique ID for this managed resource.
	Id      string `pulumi:"id"`
	Project string `pulumi:"project"`
	// The list of accelerator types available for the given project and zone.
	Types []string `pulumi:"types"`
	Zone  string   `pulumi:"zone"`
}

A collection of values returned by getV2AcceleratorTypes.

func GetV2AcceleratorTypes

func GetV2AcceleratorTypes(ctx *pulumi.Context, args *GetV2AcceleratorTypesArgs, opts ...pulumi.InvokeOption) (*GetV2AcceleratorTypesResult, error)

Get accelerator types available for a project. For more information see the [official documentation](https://cloud.google.com/tpu/docs/) and [API](https://cloud.google.com/tpu/docs/reference/rest/v2/projects.locations.acceleratorTypes).

## Example Usage

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v8/go/gcp/tpu"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := tpu.GetV2AcceleratorTypes(ctx, nil, nil)
		if err != nil {
			return err
		}
		return nil
	})
}

```

### Configure Basic TPU VM With Available Type

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v8/go/gcp/tpu"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		available, err := tpu.GetV2AcceleratorTypes(ctx, nil, nil)
		if err != nil {
			return err
		}
		availableGetV2RuntimeVersions, err := tpu.GetV2RuntimeVersions(ctx, nil, nil)
		if err != nil {
			return err
		}
		_, err = tpu.NewV2Vm(ctx, "tpu", &tpu.V2VmArgs{
			Name:            pulumi.String("test-tpu"),
			Zone:            pulumi.String("us-central1-b"),
			RuntimeVersion:  pulumi.String(availableGetV2RuntimeVersions.Versions[0]),
			AcceleratorType: pulumi.String(available.Types[0]),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

type GetV2AcceleratorTypesResultOutput

type GetV2AcceleratorTypesResultOutput struct{ *pulumi.OutputState }

A collection of values returned by getV2AcceleratorTypes.

func (GetV2AcceleratorTypesResultOutput) ElementType

func (GetV2AcceleratorTypesResultOutput) Id

The provider-assigned unique ID for this managed resource.

func (GetV2AcceleratorTypesResultOutput) Project

func (GetV2AcceleratorTypesResultOutput) ToGetV2AcceleratorTypesResultOutput

func (o GetV2AcceleratorTypesResultOutput) ToGetV2AcceleratorTypesResultOutput() GetV2AcceleratorTypesResultOutput

func (GetV2AcceleratorTypesResultOutput) ToGetV2AcceleratorTypesResultOutputWithContext

func (o GetV2AcceleratorTypesResultOutput) ToGetV2AcceleratorTypesResultOutputWithContext(ctx context.Context) GetV2AcceleratorTypesResultOutput

func (GetV2AcceleratorTypesResultOutput) Types

The list of accelerator types available for the given project and zone.

func (GetV2AcceleratorTypesResultOutput) Zone

type GetV2RuntimeVersionsArgs

type GetV2RuntimeVersionsArgs struct {
	// The project to list versions for. If it
	// is not provided, the provider project is used.
	Project *string `pulumi:"project"`
	// The zone to list versions for. If it
	// is not provided, the provider zone is used.
	Zone *string `pulumi:"zone"`
}

A collection of arguments for invoking getV2RuntimeVersions.

type GetV2RuntimeVersionsOutputArgs

type GetV2RuntimeVersionsOutputArgs struct {
	// The project to list versions for. If it
	// is not provided, the provider project is used.
	Project pulumi.StringPtrInput `pulumi:"project"`
	// The zone to list versions for. If it
	// is not provided, the provider zone is used.
	Zone pulumi.StringPtrInput `pulumi:"zone"`
}

A collection of arguments for invoking getV2RuntimeVersions.

func (GetV2RuntimeVersionsOutputArgs) ElementType

type GetV2RuntimeVersionsResult

type GetV2RuntimeVersionsResult struct {
	// The provider-assigned unique ID for this managed resource.
	Id      string `pulumi:"id"`
	Project string `pulumi:"project"`
	// The list of runtime versions available for the given project and zone.
	Versions []string `pulumi:"versions"`
	Zone     string   `pulumi:"zone"`
}

A collection of values returned by getV2RuntimeVersions.

func GetV2RuntimeVersions

func GetV2RuntimeVersions(ctx *pulumi.Context, args *GetV2RuntimeVersionsArgs, opts ...pulumi.InvokeOption) (*GetV2RuntimeVersionsResult, error)

Get runtime versions available for a project. For more information see the [official documentation](https://cloud.google.com/tpu/docs/) and [API](https://cloud.google.com/tpu/docs/reference/rest/v2/projects.locations.runtimeVersions).

## Example Usage

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v8/go/gcp/tpu"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := tpu.GetV2RuntimeVersions(ctx, nil, nil)
		if err != nil {
			return err
		}
		return nil
	})
}

```

### Configure Basic TPU VM With Available Version

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v8/go/gcp/tpu"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		available, err := tpu.GetV2RuntimeVersions(ctx, nil, nil)
		if err != nil {
			return err
		}
		_, err = tpu.NewV2Vm(ctx, "tpu", &tpu.V2VmArgs{
			Name:           pulumi.String("test-tpu"),
			Zone:           pulumi.String("us-central1-b"),
			RuntimeVersion: pulumi.String(available.Versions[0]),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

type GetV2RuntimeVersionsResultOutput

type GetV2RuntimeVersionsResultOutput struct{ *pulumi.OutputState }

A collection of values returned by getV2RuntimeVersions.

func (GetV2RuntimeVersionsResultOutput) ElementType

func (GetV2RuntimeVersionsResultOutput) Id

The provider-assigned unique ID for this managed resource.

func (GetV2RuntimeVersionsResultOutput) Project

func (GetV2RuntimeVersionsResultOutput) ToGetV2RuntimeVersionsResultOutput

func (o GetV2RuntimeVersionsResultOutput) ToGetV2RuntimeVersionsResultOutput() GetV2RuntimeVersionsResultOutput

func (GetV2RuntimeVersionsResultOutput) ToGetV2RuntimeVersionsResultOutputWithContext

func (o GetV2RuntimeVersionsResultOutput) ToGetV2RuntimeVersionsResultOutputWithContext(ctx context.Context) GetV2RuntimeVersionsResultOutput

func (GetV2RuntimeVersionsResultOutput) Versions

The list of runtime versions available for the given project and zone.

func (GetV2RuntimeVersionsResultOutput) Zone

type Node

type Node struct {
	pulumi.CustomResourceState

	// The type of hardware accelerators associated with this node.
	AcceleratorType pulumi.StringOutput `pulumi:"acceleratorType"`
	// The CIDR block that the TPU node will use when selecting an IP
	// address. This CIDR block must be a /29 block; the Compute Engine
	// networks API forbids a smaller block, and using a larger block would
	// be wasteful (a node can only consume one IP address).
	// Errors will occur if the CIDR block has already been used for a
	// currently existing TPU node, the CIDR block conflicts with any
	// subnetworks in the user's provided network, or the provided network
	// is peered with another network that is using that CIDR block.
	CidrBlock pulumi.StringOutput `pulumi:"cidrBlock"`
	// The user-supplied description of the TPU. Maximum of 512 characters.
	Description pulumi.StringPtrOutput `pulumi:"description"`
	// All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
	EffectiveLabels pulumi.StringMapOutput `pulumi:"effectiveLabels"`
	// Resource labels to represent user provided metadata.
	// **Note**: This field is non-authoritative, and will only manage the labels present in your configuration.
	// Please refer to the field `effectiveLabels` for all of the labels present on the resource.
	Labels pulumi.StringMapOutput `pulumi:"labels"`
	// The immutable name of the TPU.
	Name pulumi.StringOutput `pulumi:"name"`
	// The name of a network to peer the TPU node to. It must be a
	// preexisting Compute Engine network inside of the project on which
	// this API has been activated. If none is provided, "default" will be
	// used.
	Network pulumi.StringOutput `pulumi:"network"`
	// The network endpoints where TPU workers can be accessed and sent work.
	// It is recommended that Tensorflow clients of the node first reach out
	// to the first (index 0) entry.
	// Structure is documented below.
	NetworkEndpoints NodeNetworkEndpointArrayOutput `pulumi:"networkEndpoints"`
	// The ID of the project in which the resource belongs.
	// If it is not provided, the provider project is used.
	Project pulumi.StringOutput `pulumi:"project"`
	// The combination of labels configured directly on the resource
	// and default labels configured on the provider.
	PulumiLabels pulumi.StringMapOutput `pulumi:"pulumiLabels"`
	// Sets the scheduling options for this TPU instance.
	// Structure is documented below.
	SchedulingConfig NodeSchedulingConfigPtrOutput `pulumi:"schedulingConfig"`
	// The service account used to run the tensor flow services within the
	// node. To share resources, including Google Cloud Storage data, with
	// the Tensorflow job running in the Node, this account must have
	// permissions to that data.
	ServiceAccount pulumi.StringOutput `pulumi:"serviceAccount"`
	// The version of Tensorflow running in the Node.
	//
	// ***
	TensorflowVersion pulumi.StringOutput `pulumi:"tensorflowVersion"`
	// Whether the VPC peering for the node is set up through Service Networking API.
	// The VPC Peering should be set up before provisioning the node. If this field is set,
	// cidrBlock field should not be specified. If the network that you want to peer the
	// TPU Node to is a Shared VPC network, the node must be created with this this field enabled.
	UseServiceNetworking pulumi.BoolPtrOutput `pulumi:"useServiceNetworking"`
	// The GCP location for the TPU. If it is not provided, the provider zone is used.
	Zone pulumi.StringOutput `pulumi:"zone"`
}

A Cloud TPU instance.

To get more information about Node, see:

* [API documentation](https://cloud.google.com/tpu/docs/reference/rest/v1/projects.locations.nodes) * How-to Guides

## Example Usage

### Tpu Node Basic

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v8/go/gcp/tpu"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		available, err := tpu.GetTensorflowVersions(ctx, nil, nil)
		if err != nil {
			return err
		}
		_, err = tpu.NewNode(ctx, "tpu", &tpu.NodeArgs{
			Name:              pulumi.String("test-tpu"),
			Zone:              pulumi.String("us-central1-b"),
			AcceleratorType:   pulumi.String("v3-8"),
			TensorflowVersion: pulumi.String(available.Versions[0]),
			CidrBlock:         pulumi.String("10.2.0.0/29"),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

``` ### Tpu Node Full

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v8/go/gcp/compute"
"github.com/pulumi/pulumi-gcp/sdk/v8/go/gcp/servicenetworking"
"github.com/pulumi/pulumi-gcp/sdk/v8/go/gcp/tpu"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		available, err := tpu.GetTensorflowVersions(ctx, nil, nil)
		if err != nil {
			return err
		}
		network, err := compute.NewNetwork(ctx, "network", &compute.NetworkArgs{
			Name: pulumi.String("tpu-node-network"),
		})
		if err != nil {
			return err
		}
		serviceRange, err := compute.NewGlobalAddress(ctx, "service_range", &compute.GlobalAddressArgs{
			Name:         pulumi.String("my-global-address"),
			Purpose:      pulumi.String("VPC_PEERING"),
			AddressType:  pulumi.String("INTERNAL"),
			PrefixLength: pulumi.Int(16),
			Network:      network.ID(),
		})
		if err != nil {
			return err
		}
		privateServiceConnection, err := servicenetworking.NewConnection(ctx, "private_service_connection", &servicenetworking.ConnectionArgs{
			Network: network.ID(),
			Service: pulumi.String("servicenetworking.googleapis.com"),
			ReservedPeeringRanges: pulumi.StringArray{
				serviceRange.Name,
			},
		})
		if err != nil {
			return err
		}
		_, err = tpu.NewNode(ctx, "tpu", &tpu.NodeArgs{
			Name:                 pulumi.String("test-tpu"),
			Zone:                 pulumi.String("us-central1-b"),
			AcceleratorType:      pulumi.String("v3-8"),
			TensorflowVersion:    pulumi.String(available.Versions[0]),
			Description:          pulumi.String("Google Provider test TPU"),
			UseServiceNetworking: pulumi.Bool(true),
			Network:              privateServiceConnection.Network,
			Labels: pulumi.StringMap{
				"foo": pulumi.String("bar"),
			},
			SchedulingConfig: &tpu.NodeSchedulingConfigArgs{
				Preemptible: pulumi.Bool(true),
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## Import

Node can be imported using any of these accepted formats:

* `projects/{{project}}/locations/{{zone}}/nodes/{{name}}`

* `{{project}}/{{zone}}/{{name}}`

* `{{zone}}/{{name}}`

* `{{name}}`

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

```sh $ pulumi import gcp:tpu/node:Node default projects/{{project}}/locations/{{zone}}/nodes/{{name}} ```

```sh $ pulumi import gcp:tpu/node:Node default {{project}}/{{zone}}/{{name}} ```

```sh $ pulumi import gcp:tpu/node:Node default {{zone}}/{{name}} ```

```sh $ pulumi import gcp:tpu/node:Node default {{name}} ```

func GetNode

func GetNode(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *NodeState, opts ...pulumi.ResourceOption) (*Node, error)

GetNode gets an existing Node resource's state with the given name, ID, and optional state properties that are used to uniquely qualify the lookup (nil if not required).

func NewNode

func NewNode(ctx *pulumi.Context,
	name string, args *NodeArgs, opts ...pulumi.ResourceOption) (*Node, error)

NewNode registers a new resource with the given unique name, arguments, and options.

func (*Node) ElementType

func (*Node) ElementType() reflect.Type

func (*Node) ToNodeOutput

func (i *Node) ToNodeOutput() NodeOutput

func (*Node) ToNodeOutputWithContext

func (i *Node) ToNodeOutputWithContext(ctx context.Context) NodeOutput

type NodeArgs

type NodeArgs struct {
	// The type of hardware accelerators associated with this node.
	AcceleratorType pulumi.StringInput
	// The CIDR block that the TPU node will use when selecting an IP
	// address. This CIDR block must be a /29 block; the Compute Engine
	// networks API forbids a smaller block, and using a larger block would
	// be wasteful (a node can only consume one IP address).
	// Errors will occur if the CIDR block has already been used for a
	// currently existing TPU node, the CIDR block conflicts with any
	// subnetworks in the user's provided network, or the provided network
	// is peered with another network that is using that CIDR block.
	CidrBlock pulumi.StringPtrInput
	// The user-supplied description of the TPU. Maximum of 512 characters.
	Description pulumi.StringPtrInput
	// Resource labels to represent user provided metadata.
	// **Note**: This field is non-authoritative, and will only manage the labels present in your configuration.
	// Please refer to the field `effectiveLabels` for all of the labels present on the resource.
	Labels pulumi.StringMapInput
	// The immutable name of the TPU.
	Name pulumi.StringPtrInput
	// The name of a network to peer the TPU node to. It must be a
	// preexisting Compute Engine network inside of the project on which
	// this API has been activated. If none is provided, "default" will be
	// used.
	Network pulumi.StringPtrInput
	// The ID of the project in which the resource belongs.
	// If it is not provided, the provider project is used.
	Project pulumi.StringPtrInput
	// Sets the scheduling options for this TPU instance.
	// Structure is documented below.
	SchedulingConfig NodeSchedulingConfigPtrInput
	// The version of Tensorflow running in the Node.
	//
	// ***
	TensorflowVersion pulumi.StringInput
	// Whether the VPC peering for the node is set up through Service Networking API.
	// The VPC Peering should be set up before provisioning the node. If this field is set,
	// cidrBlock field should not be specified. If the network that you want to peer the
	// TPU Node to is a Shared VPC network, the node must be created with this this field enabled.
	UseServiceNetworking pulumi.BoolPtrInput
	// The GCP location for the TPU. If it is not provided, the provider zone is used.
	Zone pulumi.StringPtrInput
}

The set of arguments for constructing a Node resource.

func (NodeArgs) ElementType

func (NodeArgs) ElementType() reflect.Type

type NodeArray

type NodeArray []NodeInput

func (NodeArray) ElementType

func (NodeArray) ElementType() reflect.Type

func (NodeArray) ToNodeArrayOutput

func (i NodeArray) ToNodeArrayOutput() NodeArrayOutput

func (NodeArray) ToNodeArrayOutputWithContext

func (i NodeArray) ToNodeArrayOutputWithContext(ctx context.Context) NodeArrayOutput

type NodeArrayInput

type NodeArrayInput interface {
	pulumi.Input

	ToNodeArrayOutput() NodeArrayOutput
	ToNodeArrayOutputWithContext(context.Context) NodeArrayOutput
}

NodeArrayInput is an input type that accepts NodeArray and NodeArrayOutput values. You can construct a concrete instance of `NodeArrayInput` via:

NodeArray{ NodeArgs{...} }

type NodeArrayOutput

type NodeArrayOutput struct{ *pulumi.OutputState }

func (NodeArrayOutput) ElementType

func (NodeArrayOutput) ElementType() reflect.Type

func (NodeArrayOutput) Index

func (NodeArrayOutput) ToNodeArrayOutput

func (o NodeArrayOutput) ToNodeArrayOutput() NodeArrayOutput

func (NodeArrayOutput) ToNodeArrayOutputWithContext

func (o NodeArrayOutput) ToNodeArrayOutputWithContext(ctx context.Context) NodeArrayOutput

type NodeInput

type NodeInput interface {
	pulumi.Input

	ToNodeOutput() NodeOutput
	ToNodeOutputWithContext(ctx context.Context) NodeOutput
}

type NodeMap

type NodeMap map[string]NodeInput

func (NodeMap) ElementType

func (NodeMap) ElementType() reflect.Type

func (NodeMap) ToNodeMapOutput

func (i NodeMap) ToNodeMapOutput() NodeMapOutput

func (NodeMap) ToNodeMapOutputWithContext

func (i NodeMap) ToNodeMapOutputWithContext(ctx context.Context) NodeMapOutput

type NodeMapInput

type NodeMapInput interface {
	pulumi.Input

	ToNodeMapOutput() NodeMapOutput
	ToNodeMapOutputWithContext(context.Context) NodeMapOutput
}

NodeMapInput is an input type that accepts NodeMap and NodeMapOutput values. You can construct a concrete instance of `NodeMapInput` via:

NodeMap{ "key": NodeArgs{...} }

type NodeMapOutput

type NodeMapOutput struct{ *pulumi.OutputState }

func (NodeMapOutput) ElementType

func (NodeMapOutput) ElementType() reflect.Type

func (NodeMapOutput) MapIndex

func (NodeMapOutput) ToNodeMapOutput

func (o NodeMapOutput) ToNodeMapOutput() NodeMapOutput

func (NodeMapOutput) ToNodeMapOutputWithContext

func (o NodeMapOutput) ToNodeMapOutputWithContext(ctx context.Context) NodeMapOutput

type NodeNetworkEndpoint

type NodeNetworkEndpoint struct {
	// (Output)
	// The IP address of this network endpoint.
	IpAddress *string `pulumi:"ipAddress"`
	// (Output)
	// The port of this network endpoint.
	Port *int `pulumi:"port"`
}

type NodeNetworkEndpointArgs

type NodeNetworkEndpointArgs struct {
	// (Output)
	// The IP address of this network endpoint.
	IpAddress pulumi.StringPtrInput `pulumi:"ipAddress"`
	// (Output)
	// The port of this network endpoint.
	Port pulumi.IntPtrInput `pulumi:"port"`
}

func (NodeNetworkEndpointArgs) ElementType

func (NodeNetworkEndpointArgs) ElementType() reflect.Type

func (NodeNetworkEndpointArgs) ToNodeNetworkEndpointOutput

func (i NodeNetworkEndpointArgs) ToNodeNetworkEndpointOutput() NodeNetworkEndpointOutput

func (NodeNetworkEndpointArgs) ToNodeNetworkEndpointOutputWithContext

func (i NodeNetworkEndpointArgs) ToNodeNetworkEndpointOutputWithContext(ctx context.Context) NodeNetworkEndpointOutput

type NodeNetworkEndpointArray

type NodeNetworkEndpointArray []NodeNetworkEndpointInput

func (NodeNetworkEndpointArray) ElementType

func (NodeNetworkEndpointArray) ElementType() reflect.Type

func (NodeNetworkEndpointArray) ToNodeNetworkEndpointArrayOutput

func (i NodeNetworkEndpointArray) ToNodeNetworkEndpointArrayOutput() NodeNetworkEndpointArrayOutput

func (NodeNetworkEndpointArray) ToNodeNetworkEndpointArrayOutputWithContext

func (i NodeNetworkEndpointArray) ToNodeNetworkEndpointArrayOutputWithContext(ctx context.Context) NodeNetworkEndpointArrayOutput

type NodeNetworkEndpointArrayInput

type NodeNetworkEndpointArrayInput interface {
	pulumi.Input

	ToNodeNetworkEndpointArrayOutput() NodeNetworkEndpointArrayOutput
	ToNodeNetworkEndpointArrayOutputWithContext(context.Context) NodeNetworkEndpointArrayOutput
}

NodeNetworkEndpointArrayInput is an input type that accepts NodeNetworkEndpointArray and NodeNetworkEndpointArrayOutput values. You can construct a concrete instance of `NodeNetworkEndpointArrayInput` via:

NodeNetworkEndpointArray{ NodeNetworkEndpointArgs{...} }

type NodeNetworkEndpointArrayOutput

type NodeNetworkEndpointArrayOutput struct{ *pulumi.OutputState }

func (NodeNetworkEndpointArrayOutput) ElementType

func (NodeNetworkEndpointArrayOutput) Index

func (NodeNetworkEndpointArrayOutput) ToNodeNetworkEndpointArrayOutput

func (o NodeNetworkEndpointArrayOutput) ToNodeNetworkEndpointArrayOutput() NodeNetworkEndpointArrayOutput

func (NodeNetworkEndpointArrayOutput) ToNodeNetworkEndpointArrayOutputWithContext

func (o NodeNetworkEndpointArrayOutput) ToNodeNetworkEndpointArrayOutputWithContext(ctx context.Context) NodeNetworkEndpointArrayOutput

type NodeNetworkEndpointInput

type NodeNetworkEndpointInput interface {
	pulumi.Input

	ToNodeNetworkEndpointOutput() NodeNetworkEndpointOutput
	ToNodeNetworkEndpointOutputWithContext(context.Context) NodeNetworkEndpointOutput
}

NodeNetworkEndpointInput is an input type that accepts NodeNetworkEndpointArgs and NodeNetworkEndpointOutput values. You can construct a concrete instance of `NodeNetworkEndpointInput` via:

NodeNetworkEndpointArgs{...}

type NodeNetworkEndpointOutput

type NodeNetworkEndpointOutput struct{ *pulumi.OutputState }

func (NodeNetworkEndpointOutput) ElementType

func (NodeNetworkEndpointOutput) ElementType() reflect.Type

func (NodeNetworkEndpointOutput) IpAddress

(Output) The IP address of this network endpoint.

func (NodeNetworkEndpointOutput) Port

(Output) The port of this network endpoint.

func (NodeNetworkEndpointOutput) ToNodeNetworkEndpointOutput

func (o NodeNetworkEndpointOutput) ToNodeNetworkEndpointOutput() NodeNetworkEndpointOutput

func (NodeNetworkEndpointOutput) ToNodeNetworkEndpointOutputWithContext

func (o NodeNetworkEndpointOutput) ToNodeNetworkEndpointOutputWithContext(ctx context.Context) NodeNetworkEndpointOutput

type NodeOutput

type NodeOutput struct{ *pulumi.OutputState }

func (NodeOutput) AcceleratorType

func (o NodeOutput) AcceleratorType() pulumi.StringOutput

The type of hardware accelerators associated with this node.

func (NodeOutput) CidrBlock

func (o NodeOutput) CidrBlock() pulumi.StringOutput

The CIDR block that the TPU node will use when selecting an IP address. This CIDR block must be a /29 block; the Compute Engine networks API forbids a smaller block, and using a larger block would be wasteful (a node can only consume one IP address). Errors will occur if the CIDR block has already been used for a currently existing TPU node, the CIDR block conflicts with any subnetworks in the user's provided network, or the provided network is peered with another network that is using that CIDR block.

func (NodeOutput) Description

func (o NodeOutput) Description() pulumi.StringPtrOutput

The user-supplied description of the TPU. Maximum of 512 characters.

func (NodeOutput) EffectiveLabels

func (o NodeOutput) EffectiveLabels() pulumi.StringMapOutput

All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.

func (NodeOutput) ElementType

func (NodeOutput) ElementType() reflect.Type

func (NodeOutput) Labels

func (o NodeOutput) Labels() pulumi.StringMapOutput

Resource labels to represent user provided metadata. **Note**: This field is non-authoritative, and will only manage the labels present in your configuration. Please refer to the field `effectiveLabels` for all of the labels present on the resource.

func (NodeOutput) Name

func (o NodeOutput) Name() pulumi.StringOutput

The immutable name of the TPU.

func (NodeOutput) Network

func (o NodeOutput) Network() pulumi.StringOutput

The name of a network to peer the TPU node to. It must be a preexisting Compute Engine network inside of the project on which this API has been activated. If none is provided, "default" will be used.

func (NodeOutput) NetworkEndpoints

func (o NodeOutput) NetworkEndpoints() NodeNetworkEndpointArrayOutput

The network endpoints where TPU workers can be accessed and sent work. It is recommended that Tensorflow clients of the node first reach out to the first (index 0) entry. Structure is documented below.

func (NodeOutput) Project

func (o NodeOutput) Project() pulumi.StringOutput

The ID of the project in which the resource belongs. If it is not provided, the provider project is used.

func (NodeOutput) PulumiLabels

func (o NodeOutput) PulumiLabels() pulumi.StringMapOutput

The combination of labels configured directly on the resource and default labels configured on the provider.

func (NodeOutput) SchedulingConfig

func (o NodeOutput) SchedulingConfig() NodeSchedulingConfigPtrOutput

Sets the scheduling options for this TPU instance. Structure is documented below.

func (NodeOutput) ServiceAccount

func (o NodeOutput) ServiceAccount() pulumi.StringOutput

The service account used to run the tensor flow services within the node. To share resources, including Google Cloud Storage data, with the Tensorflow job running in the Node, this account must have permissions to that data.

func (NodeOutput) TensorflowVersion

func (o NodeOutput) TensorflowVersion() pulumi.StringOutput

The version of Tensorflow running in the Node.

***

func (NodeOutput) ToNodeOutput

func (o NodeOutput) ToNodeOutput() NodeOutput

func (NodeOutput) ToNodeOutputWithContext

func (o NodeOutput) ToNodeOutputWithContext(ctx context.Context) NodeOutput

func (NodeOutput) UseServiceNetworking

func (o NodeOutput) UseServiceNetworking() pulumi.BoolPtrOutput

Whether the VPC peering for the node is set up through Service Networking API. The VPC Peering should be set up before provisioning the node. If this field is set, cidrBlock field should not be specified. If the network that you want to peer the TPU Node to is a Shared VPC network, the node must be created with this this field enabled.

func (NodeOutput) Zone

func (o NodeOutput) Zone() pulumi.StringOutput

The GCP location for the TPU. If it is not provided, the provider zone is used.

type NodeSchedulingConfig

type NodeSchedulingConfig struct {
	// Defines whether the TPU instance is preemptible.
	Preemptible bool `pulumi:"preemptible"`
}

type NodeSchedulingConfigArgs

type NodeSchedulingConfigArgs struct {
	// Defines whether the TPU instance is preemptible.
	Preemptible pulumi.BoolInput `pulumi:"preemptible"`
}

func (NodeSchedulingConfigArgs) ElementType

func (NodeSchedulingConfigArgs) ElementType() reflect.Type

func (NodeSchedulingConfigArgs) ToNodeSchedulingConfigOutput

func (i NodeSchedulingConfigArgs) ToNodeSchedulingConfigOutput() NodeSchedulingConfigOutput

func (NodeSchedulingConfigArgs) ToNodeSchedulingConfigOutputWithContext

func (i NodeSchedulingConfigArgs) ToNodeSchedulingConfigOutputWithContext(ctx context.Context) NodeSchedulingConfigOutput

func (NodeSchedulingConfigArgs) ToNodeSchedulingConfigPtrOutput

func (i NodeSchedulingConfigArgs) ToNodeSchedulingConfigPtrOutput() NodeSchedulingConfigPtrOutput

func (NodeSchedulingConfigArgs) ToNodeSchedulingConfigPtrOutputWithContext

func (i NodeSchedulingConfigArgs) ToNodeSchedulingConfigPtrOutputWithContext(ctx context.Context) NodeSchedulingConfigPtrOutput

type NodeSchedulingConfigInput

type NodeSchedulingConfigInput interface {
	pulumi.Input

	ToNodeSchedulingConfigOutput() NodeSchedulingConfigOutput
	ToNodeSchedulingConfigOutputWithContext(context.Context) NodeSchedulingConfigOutput
}

NodeSchedulingConfigInput is an input type that accepts NodeSchedulingConfigArgs and NodeSchedulingConfigOutput values. You can construct a concrete instance of `NodeSchedulingConfigInput` via:

NodeSchedulingConfigArgs{...}

type NodeSchedulingConfigOutput

type NodeSchedulingConfigOutput struct{ *pulumi.OutputState }

func (NodeSchedulingConfigOutput) ElementType

func (NodeSchedulingConfigOutput) ElementType() reflect.Type

func (NodeSchedulingConfigOutput) Preemptible

Defines whether the TPU instance is preemptible.

func (NodeSchedulingConfigOutput) ToNodeSchedulingConfigOutput

func (o NodeSchedulingConfigOutput) ToNodeSchedulingConfigOutput() NodeSchedulingConfigOutput

func (NodeSchedulingConfigOutput) ToNodeSchedulingConfigOutputWithContext

func (o NodeSchedulingConfigOutput) ToNodeSchedulingConfigOutputWithContext(ctx context.Context) NodeSchedulingConfigOutput

func (NodeSchedulingConfigOutput) ToNodeSchedulingConfigPtrOutput

func (o NodeSchedulingConfigOutput) ToNodeSchedulingConfigPtrOutput() NodeSchedulingConfigPtrOutput

func (NodeSchedulingConfigOutput) ToNodeSchedulingConfigPtrOutputWithContext

func (o NodeSchedulingConfigOutput) ToNodeSchedulingConfigPtrOutputWithContext(ctx context.Context) NodeSchedulingConfigPtrOutput

type NodeSchedulingConfigPtrInput

type NodeSchedulingConfigPtrInput interface {
	pulumi.Input

	ToNodeSchedulingConfigPtrOutput() NodeSchedulingConfigPtrOutput
	ToNodeSchedulingConfigPtrOutputWithContext(context.Context) NodeSchedulingConfigPtrOutput
}

NodeSchedulingConfigPtrInput is an input type that accepts NodeSchedulingConfigArgs, NodeSchedulingConfigPtr and NodeSchedulingConfigPtrOutput values. You can construct a concrete instance of `NodeSchedulingConfigPtrInput` via:

        NodeSchedulingConfigArgs{...}

or:

        nil

type NodeSchedulingConfigPtrOutput

type NodeSchedulingConfigPtrOutput struct{ *pulumi.OutputState }

func (NodeSchedulingConfigPtrOutput) Elem

func (NodeSchedulingConfigPtrOutput) ElementType

func (NodeSchedulingConfigPtrOutput) Preemptible

Defines whether the TPU instance is preemptible.

func (NodeSchedulingConfigPtrOutput) ToNodeSchedulingConfigPtrOutput

func (o NodeSchedulingConfigPtrOutput) ToNodeSchedulingConfigPtrOutput() NodeSchedulingConfigPtrOutput

func (NodeSchedulingConfigPtrOutput) ToNodeSchedulingConfigPtrOutputWithContext

func (o NodeSchedulingConfigPtrOutput) ToNodeSchedulingConfigPtrOutputWithContext(ctx context.Context) NodeSchedulingConfigPtrOutput

type NodeState

type NodeState struct {
	// The type of hardware accelerators associated with this node.
	AcceleratorType pulumi.StringPtrInput
	// The CIDR block that the TPU node will use when selecting an IP
	// address. This CIDR block must be a /29 block; the Compute Engine
	// networks API forbids a smaller block, and using a larger block would
	// be wasteful (a node can only consume one IP address).
	// Errors will occur if the CIDR block has already been used for a
	// currently existing TPU node, the CIDR block conflicts with any
	// subnetworks in the user's provided network, or the provided network
	// is peered with another network that is using that CIDR block.
	CidrBlock pulumi.StringPtrInput
	// The user-supplied description of the TPU. Maximum of 512 characters.
	Description pulumi.StringPtrInput
	// All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
	EffectiveLabels pulumi.StringMapInput
	// Resource labels to represent user provided metadata.
	// **Note**: This field is non-authoritative, and will only manage the labels present in your configuration.
	// Please refer to the field `effectiveLabels` for all of the labels present on the resource.
	Labels pulumi.StringMapInput
	// The immutable name of the TPU.
	Name pulumi.StringPtrInput
	// The name of a network to peer the TPU node to. It must be a
	// preexisting Compute Engine network inside of the project on which
	// this API has been activated. If none is provided, "default" will be
	// used.
	Network pulumi.StringPtrInput
	// The network endpoints where TPU workers can be accessed and sent work.
	// It is recommended that Tensorflow clients of the node first reach out
	// to the first (index 0) entry.
	// Structure is documented below.
	NetworkEndpoints NodeNetworkEndpointArrayInput
	// The ID of the project in which the resource belongs.
	// If it is not provided, the provider project is used.
	Project pulumi.StringPtrInput
	// The combination of labels configured directly on the resource
	// and default labels configured on the provider.
	PulumiLabels pulumi.StringMapInput
	// Sets the scheduling options for this TPU instance.
	// Structure is documented below.
	SchedulingConfig NodeSchedulingConfigPtrInput
	// The service account used to run the tensor flow services within the
	// node. To share resources, including Google Cloud Storage data, with
	// the Tensorflow job running in the Node, this account must have
	// permissions to that data.
	ServiceAccount pulumi.StringPtrInput
	// The version of Tensorflow running in the Node.
	//
	// ***
	TensorflowVersion pulumi.StringPtrInput
	// Whether the VPC peering for the node is set up through Service Networking API.
	// The VPC Peering should be set up before provisioning the node. If this field is set,
	// cidrBlock field should not be specified. If the network that you want to peer the
	// TPU Node to is a Shared VPC network, the node must be created with this this field enabled.
	UseServiceNetworking pulumi.BoolPtrInput
	// The GCP location for the TPU. If it is not provided, the provider zone is used.
	Zone pulumi.StringPtrInput
}

func (NodeState) ElementType

func (NodeState) ElementType() reflect.Type

type V2Vm

type V2Vm struct {
	pulumi.CustomResourceState

	// The AccleratorConfig for the TPU Node. `acceleratorConfig` cannot be used at the same time
	// as `acceleratorType`. If neither is specified, `acceleratorType` defaults to 'v2-8'.
	// Structure is documented below.
	AcceleratorConfig V2VmAcceleratorConfigOutput `pulumi:"acceleratorConfig"`
	// TPU accelerator type for the TPU. `acceleratorType` cannot be used at the same time as
	// `acceleratorConfig`. If neither is specified, `acceleratorType` defaults to 'v2-8'.
	AcceleratorType pulumi.StringOutput `pulumi:"acceleratorType"`
	// The API version that created this Node.
	ApiVersion pulumi.StringOutput `pulumi:"apiVersion"`
	// The CIDR block that the TPU node will use when selecting an IP address. This CIDR block must
	// be a /29 block; the Compute Engine networks API forbids a smaller block, and using a larger
	// block would be wasteful (a node can only consume one IP address). Errors will occur if the
	// CIDR block has already been used for a currently existing TPU node, the CIDR block conflicts
	// with any subnetworks in the user's provided network, or the provided network is peered with
	// another network that is using that CIDR block.
	CidrBlock pulumi.StringOutput `pulumi:"cidrBlock"`
	// The additional data disks for the Node.
	// Structure is documented below.
	DataDisks V2VmDataDiskArrayOutput `pulumi:"dataDisks"`
	// Text description of the TPU.
	Description pulumi.StringPtrOutput `pulumi:"description"`
	// All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
	EffectiveLabels pulumi.StringMapOutput `pulumi:"effectiveLabels"`
	// The health status of the TPU node.
	Health pulumi.StringOutput `pulumi:"health"`
	// If this field is populated, it contains a description of why the TPU Node is unhealthy.
	HealthDescription pulumi.StringOutput `pulumi:"healthDescription"`
	// Resource labels to represent user-provided metadata.
	// **Note**: This field is non-authoritative, and will only manage the labels present in your configuration.
	// Please refer to the field `effectiveLabels` for all of the labels present on the resource.
	Labels pulumi.StringMapOutput `pulumi:"labels"`
	// Custom metadata to apply to the TPU Node. Can set startup-script and shutdown-script.
	Metadata pulumi.StringMapOutput `pulumi:"metadata"`
	// Whether the Node belongs to a Multislice group.
	MultisliceNode pulumi.BoolOutput `pulumi:"multisliceNode"`
	// The immutable name of the TPU.
	Name pulumi.StringOutput `pulumi:"name"`
	// Network configurations for the TPU node.
	// Structure is documented below.
	NetworkConfig V2VmNetworkConfigOutput `pulumi:"networkConfig"`
	// The network endpoints where TPU workers can be accessed and sent work. It is recommended that
	// runtime clients of the node reach out to the 0th entry in this map first.
	// Structure is documented below.
	NetworkEndpoints V2VmNetworkEndpointArrayOutput `pulumi:"networkEndpoints"`
	// The ID of the project in which the resource belongs.
	// If it is not provided, the provider project is used.
	Project pulumi.StringOutput `pulumi:"project"`
	// The combination of labels configured directly on the resource
	// and default labels configured on the provider.
	PulumiLabels pulumi.StringMapOutput `pulumi:"pulumiLabels"`
	// The qualified name of the QueuedResource that requested this Node.
	QueuedResource pulumi.StringOutput `pulumi:"queuedResource"`
	// Runtime version for the TPU.
	//
	// ***
	RuntimeVersion pulumi.StringOutput `pulumi:"runtimeVersion"`
	// The scheduling options for this node.
	// Structure is documented below.
	SchedulingConfig V2VmSchedulingConfigPtrOutput `pulumi:"schedulingConfig"`
	// The Google Cloud Platform Service Account to be used by the TPU node VMs. If None is
	// specified, the default compute service account will be used.
	// Structure is documented below.
	ServiceAccount V2VmServiceAccountOutput `pulumi:"serviceAccount"`
	// Shielded Instance options.
	// Structure is documented below.
	ShieldedInstanceConfig V2VmShieldedInstanceConfigPtrOutput `pulumi:"shieldedInstanceConfig"`
	// The current state for the TPU Node.
	State pulumi.StringOutput `pulumi:"state"`
	// The Symptoms that have occurred to the TPU Node.
	// Structure is documented below.
	Symptoms V2VmSymptomArrayOutput `pulumi:"symptoms"`
	// Tags to apply to the TPU Node. Tags are used to identify valid sources or targets for network firewalls.
	Tags pulumi.StringArrayOutput `pulumi:"tags"`
	// The GCP location for the TPU. If it is not provided, the provider zone is used.
	Zone pulumi.StringOutput `pulumi:"zone"`
}

## Example Usage

### Tpu V2 Vm Basic

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v8/go/gcp/tpu"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := tpu.GetV2RuntimeVersions(ctx, nil, nil)
		if err != nil {
			return err
		}
		_, err = tpu.NewV2Vm(ctx, "tpu", &tpu.V2VmArgs{
			Name:           pulumi.String("test-tpu"),
			Zone:           pulumi.String("us-central1-c"),
			RuntimeVersion: pulumi.String("tpu-vm-tf-2.13.0"),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

``` ### Tpu V2 Vm Full

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v8/go/gcp/compute"
"github.com/pulumi/pulumi-gcp/sdk/v8/go/gcp/serviceaccount"
"github.com/pulumi/pulumi-gcp/sdk/v8/go/gcp/tpu"
"github.com/pulumi/pulumi-time/sdk/go/time"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := tpu.GetV2RuntimeVersions(ctx, nil, nil)
		if err != nil {
			return err
		}
		_, err = tpu.GetV2AcceleratorTypes(ctx, nil, nil)
		if err != nil {
			return err
		}
		network, err := compute.NewNetwork(ctx, "network", &compute.NetworkArgs{
			Name:                  pulumi.String("tpu-net"),
			AutoCreateSubnetworks: pulumi.Bool(false),
		})
		if err != nil {
			return err
		}
		subnet, err := compute.NewSubnetwork(ctx, "subnet", &compute.SubnetworkArgs{
			Name:        pulumi.String("tpu-subnet"),
			IpCidrRange: pulumi.String("10.0.0.0/16"),
			Region:      pulumi.String("us-central1"),
			Network:     network.ID(),
		})
		if err != nil {
			return err
		}
		sa, err := serviceaccount.NewAccount(ctx, "sa", &serviceaccount.AccountArgs{
			AccountId:   pulumi.String("tpu-sa"),
			DisplayName: pulumi.String("Test TPU VM"),
		})
		if err != nil {
			return err
		}
		disk, err := compute.NewDisk(ctx, "disk", &compute.DiskArgs{
			Name:  pulumi.String("tpu-disk"),
			Image: pulumi.String("debian-cloud/debian-11"),
			Size:  pulumi.Int(10),
			Type:  pulumi.String("pd-ssd"),
			Zone:  pulumi.String("us-central1-c"),
		})
		if err != nil {
			return err
		}
		// Wait after service account creation to limit eventual consistency errors.
		wait60Seconds, err := time.NewSleep(ctx, "wait_60_seconds", &time.SleepArgs{
			CreateDuration: "60s",
		}, pulumi.DependsOn([]pulumi.Resource{
			sa,
		}))
		if err != nil {
			return err
		}
		_, err = tpu.NewV2Vm(ctx, "tpu", &tpu.V2VmArgs{
			Name:           pulumi.String("test-tpu"),
			Zone:           pulumi.String("us-central1-c"),
			Description:    pulumi.String("Text description of the TPU."),
			RuntimeVersion: pulumi.String("tpu-vm-tf-2.13.0"),
			AcceleratorConfig: &tpu.V2VmAcceleratorConfigArgs{
				Type:     pulumi.String("V2"),
				Topology: pulumi.String("2x2"),
			},
			CidrBlock: pulumi.String("10.0.0.0/29"),
			NetworkConfig: &tpu.V2VmNetworkConfigArgs{
				CanIpForward:      pulumi.Bool(true),
				EnableExternalIps: pulumi.Bool(true),
				Network:           network.ID(),
				Subnetwork:        subnet.ID(),
			},
			SchedulingConfig: &tpu.V2VmSchedulingConfigArgs{
				Preemptible: pulumi.Bool(true),
			},
			ShieldedInstanceConfig: &tpu.V2VmShieldedInstanceConfigArgs{
				EnableSecureBoot: pulumi.Bool(true),
			},
			ServiceAccount: &tpu.V2VmServiceAccountArgs{
				Email: sa.Email,
				Scopes: pulumi.StringArray{
					pulumi.String("https://www.googleapis.com/auth/cloud-platform"),
				},
			},
			DataDisks: tpu.V2VmDataDiskArray{
				&tpu.V2VmDataDiskArgs{
					SourceDisk: disk.ID(),
					Mode:       pulumi.String("READ_ONLY"),
				},
			},
			Labels: pulumi.StringMap{
				"foo": pulumi.String("bar"),
			},
			Metadata: pulumi.StringMap{
				"foo": pulumi.String("bar"),
			},
			Tags: pulumi.StringArray{
				pulumi.String("foo"),
			},
		}, pulumi.DependsOn([]pulumi.Resource{
			wait60Seconds,
		}))
		if err != nil {
			return err
		}
		return nil
	})
}

```

## Import

Vm can be imported using any of these accepted formats:

* `projects/{{project}}/locations/{{zone}}/nodes/{{name}}`

* `{{project}}/{{zone}}/{{name}}`

* `{{zone}}/{{name}}`

* `{{name}}`

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

```sh $ pulumi import gcp:tpu/v2Vm:V2Vm default projects/{{project}}/locations/{{zone}}/nodes/{{name}} ```

```sh $ pulumi import gcp:tpu/v2Vm:V2Vm default {{project}}/{{zone}}/{{name}} ```

```sh $ pulumi import gcp:tpu/v2Vm:V2Vm default {{zone}}/{{name}} ```

```sh $ pulumi import gcp:tpu/v2Vm:V2Vm default {{name}} ```

func GetV2Vm

func GetV2Vm(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *V2VmState, opts ...pulumi.ResourceOption) (*V2Vm, error)

GetV2Vm gets an existing V2Vm resource's state with the given name, ID, and optional state properties that are used to uniquely qualify the lookup (nil if not required).

func NewV2Vm

func NewV2Vm(ctx *pulumi.Context,
	name string, args *V2VmArgs, opts ...pulumi.ResourceOption) (*V2Vm, error)

NewV2Vm registers a new resource with the given unique name, arguments, and options.

func (*V2Vm) ElementType

func (*V2Vm) ElementType() reflect.Type

func (*V2Vm) ToV2VmOutput

func (i *V2Vm) ToV2VmOutput() V2VmOutput

func (*V2Vm) ToV2VmOutputWithContext

func (i *V2Vm) ToV2VmOutputWithContext(ctx context.Context) V2VmOutput

type V2VmAcceleratorConfig

type V2VmAcceleratorConfig struct {
	// Topology of TPU in chips.
	Topology string `pulumi:"topology"`
	// Type of TPU.
	// Possible values are: `V2`, `V3`, `V4`, `V5P`.
	Type string `pulumi:"type"`
}

type V2VmAcceleratorConfigArgs

type V2VmAcceleratorConfigArgs struct {
	// Topology of TPU in chips.
	Topology pulumi.StringInput `pulumi:"topology"`
	// Type of TPU.
	// Possible values are: `V2`, `V3`, `V4`, `V5P`.
	Type pulumi.StringInput `pulumi:"type"`
}

func (V2VmAcceleratorConfigArgs) ElementType

func (V2VmAcceleratorConfigArgs) ElementType() reflect.Type

func (V2VmAcceleratorConfigArgs) ToV2VmAcceleratorConfigOutput

func (i V2VmAcceleratorConfigArgs) ToV2VmAcceleratorConfigOutput() V2VmAcceleratorConfigOutput

func (V2VmAcceleratorConfigArgs) ToV2VmAcceleratorConfigOutputWithContext

func (i V2VmAcceleratorConfigArgs) ToV2VmAcceleratorConfigOutputWithContext(ctx context.Context) V2VmAcceleratorConfigOutput

func (V2VmAcceleratorConfigArgs) ToV2VmAcceleratorConfigPtrOutput

func (i V2VmAcceleratorConfigArgs) ToV2VmAcceleratorConfigPtrOutput() V2VmAcceleratorConfigPtrOutput

func (V2VmAcceleratorConfigArgs) ToV2VmAcceleratorConfigPtrOutputWithContext

func (i V2VmAcceleratorConfigArgs) ToV2VmAcceleratorConfigPtrOutputWithContext(ctx context.Context) V2VmAcceleratorConfigPtrOutput

type V2VmAcceleratorConfigInput

type V2VmAcceleratorConfigInput interface {
	pulumi.Input

	ToV2VmAcceleratorConfigOutput() V2VmAcceleratorConfigOutput
	ToV2VmAcceleratorConfigOutputWithContext(context.Context) V2VmAcceleratorConfigOutput
}

V2VmAcceleratorConfigInput is an input type that accepts V2VmAcceleratorConfigArgs and V2VmAcceleratorConfigOutput values. You can construct a concrete instance of `V2VmAcceleratorConfigInput` via:

V2VmAcceleratorConfigArgs{...}

type V2VmAcceleratorConfigOutput

type V2VmAcceleratorConfigOutput struct{ *pulumi.OutputState }

func (V2VmAcceleratorConfigOutput) ElementType

func (V2VmAcceleratorConfigOutput) ToV2VmAcceleratorConfigOutput

func (o V2VmAcceleratorConfigOutput) ToV2VmAcceleratorConfigOutput() V2VmAcceleratorConfigOutput

func (V2VmAcceleratorConfigOutput) ToV2VmAcceleratorConfigOutputWithContext

func (o V2VmAcceleratorConfigOutput) ToV2VmAcceleratorConfigOutputWithContext(ctx context.Context) V2VmAcceleratorConfigOutput

func (V2VmAcceleratorConfigOutput) ToV2VmAcceleratorConfigPtrOutput

func (o V2VmAcceleratorConfigOutput) ToV2VmAcceleratorConfigPtrOutput() V2VmAcceleratorConfigPtrOutput

func (V2VmAcceleratorConfigOutput) ToV2VmAcceleratorConfigPtrOutputWithContext

func (o V2VmAcceleratorConfigOutput) ToV2VmAcceleratorConfigPtrOutputWithContext(ctx context.Context) V2VmAcceleratorConfigPtrOutput

func (V2VmAcceleratorConfigOutput) Topology

Topology of TPU in chips.

func (V2VmAcceleratorConfigOutput) Type

Type of TPU. Possible values are: `V2`, `V3`, `V4`, `V5P`.

type V2VmAcceleratorConfigPtrInput

type V2VmAcceleratorConfigPtrInput interface {
	pulumi.Input

	ToV2VmAcceleratorConfigPtrOutput() V2VmAcceleratorConfigPtrOutput
	ToV2VmAcceleratorConfigPtrOutputWithContext(context.Context) V2VmAcceleratorConfigPtrOutput
}

V2VmAcceleratorConfigPtrInput is an input type that accepts V2VmAcceleratorConfigArgs, V2VmAcceleratorConfigPtr and V2VmAcceleratorConfigPtrOutput values. You can construct a concrete instance of `V2VmAcceleratorConfigPtrInput` via:

        V2VmAcceleratorConfigArgs{...}

or:

        nil

type V2VmAcceleratorConfigPtrOutput

type V2VmAcceleratorConfigPtrOutput struct{ *pulumi.OutputState }

func (V2VmAcceleratorConfigPtrOutput) Elem

func (V2VmAcceleratorConfigPtrOutput) ElementType

func (V2VmAcceleratorConfigPtrOutput) ToV2VmAcceleratorConfigPtrOutput

func (o V2VmAcceleratorConfigPtrOutput) ToV2VmAcceleratorConfigPtrOutput() V2VmAcceleratorConfigPtrOutput

func (V2VmAcceleratorConfigPtrOutput) ToV2VmAcceleratorConfigPtrOutputWithContext

func (o V2VmAcceleratorConfigPtrOutput) ToV2VmAcceleratorConfigPtrOutputWithContext(ctx context.Context) V2VmAcceleratorConfigPtrOutput

func (V2VmAcceleratorConfigPtrOutput) Topology

Topology of TPU in chips.

func (V2VmAcceleratorConfigPtrOutput) Type

Type of TPU. Possible values are: `V2`, `V3`, `V4`, `V5P`.

type V2VmArgs

type V2VmArgs struct {
	// The AccleratorConfig for the TPU Node. `acceleratorConfig` cannot be used at the same time
	// as `acceleratorType`. If neither is specified, `acceleratorType` defaults to 'v2-8'.
	// Structure is documented below.
	AcceleratorConfig V2VmAcceleratorConfigPtrInput
	// TPU accelerator type for the TPU. `acceleratorType` cannot be used at the same time as
	// `acceleratorConfig`. If neither is specified, `acceleratorType` defaults to 'v2-8'.
	AcceleratorType pulumi.StringPtrInput
	// The CIDR block that the TPU node will use when selecting an IP address. This CIDR block must
	// be a /29 block; the Compute Engine networks API forbids a smaller block, and using a larger
	// block would be wasteful (a node can only consume one IP address). Errors will occur if the
	// CIDR block has already been used for a currently existing TPU node, the CIDR block conflicts
	// with any subnetworks in the user's provided network, or the provided network is peered with
	// another network that is using that CIDR block.
	CidrBlock pulumi.StringPtrInput
	// The additional data disks for the Node.
	// Structure is documented below.
	DataDisks V2VmDataDiskArrayInput
	// Text description of the TPU.
	Description pulumi.StringPtrInput
	// Resource labels to represent user-provided metadata.
	// **Note**: This field is non-authoritative, and will only manage the labels present in your configuration.
	// Please refer to the field `effectiveLabels` for all of the labels present on the resource.
	Labels pulumi.StringMapInput
	// Custom metadata to apply to the TPU Node. Can set startup-script and shutdown-script.
	Metadata pulumi.StringMapInput
	// The immutable name of the TPU.
	Name pulumi.StringPtrInput
	// Network configurations for the TPU node.
	// Structure is documented below.
	NetworkConfig V2VmNetworkConfigPtrInput
	// The ID of the project in which the resource belongs.
	// If it is not provided, the provider project is used.
	Project pulumi.StringPtrInput
	// Runtime version for the TPU.
	//
	// ***
	RuntimeVersion pulumi.StringInput
	// The scheduling options for this node.
	// Structure is documented below.
	SchedulingConfig V2VmSchedulingConfigPtrInput
	// The Google Cloud Platform Service Account to be used by the TPU node VMs. If None is
	// specified, the default compute service account will be used.
	// Structure is documented below.
	ServiceAccount V2VmServiceAccountPtrInput
	// Shielded Instance options.
	// Structure is documented below.
	ShieldedInstanceConfig V2VmShieldedInstanceConfigPtrInput
	// Tags to apply to the TPU Node. Tags are used to identify valid sources or targets for network firewalls.
	Tags pulumi.StringArrayInput
	// The GCP location for the TPU. If it is not provided, the provider zone is used.
	Zone pulumi.StringPtrInput
}

The set of arguments for constructing a V2Vm resource.

func (V2VmArgs) ElementType

func (V2VmArgs) ElementType() reflect.Type

type V2VmArray

type V2VmArray []V2VmInput

func (V2VmArray) ElementType

func (V2VmArray) ElementType() reflect.Type

func (V2VmArray) ToV2VmArrayOutput

func (i V2VmArray) ToV2VmArrayOutput() V2VmArrayOutput

func (V2VmArray) ToV2VmArrayOutputWithContext

func (i V2VmArray) ToV2VmArrayOutputWithContext(ctx context.Context) V2VmArrayOutput

type V2VmArrayInput

type V2VmArrayInput interface {
	pulumi.Input

	ToV2VmArrayOutput() V2VmArrayOutput
	ToV2VmArrayOutputWithContext(context.Context) V2VmArrayOutput
}

V2VmArrayInput is an input type that accepts V2VmArray and V2VmArrayOutput values. You can construct a concrete instance of `V2VmArrayInput` via:

V2VmArray{ V2VmArgs{...} }

type V2VmArrayOutput

type V2VmArrayOutput struct{ *pulumi.OutputState }

func (V2VmArrayOutput) ElementType

func (V2VmArrayOutput) ElementType() reflect.Type

func (V2VmArrayOutput) Index

func (V2VmArrayOutput) ToV2VmArrayOutput

func (o V2VmArrayOutput) ToV2VmArrayOutput() V2VmArrayOutput

func (V2VmArrayOutput) ToV2VmArrayOutputWithContext

func (o V2VmArrayOutput) ToV2VmArrayOutputWithContext(ctx context.Context) V2VmArrayOutput

type V2VmDataDisk

type V2VmDataDisk struct {
	// The mode in which to attach this disk. If not specified, the default is READ_WRITE
	// mode. Only applicable to dataDisks.
	// Default value is `READ_WRITE`.
	// Possible values are: `READ_WRITE`, `READ_ONLY`.
	Mode *string `pulumi:"mode"`
	// Specifies the full path to an existing disk. For example:
	// "projects/my-project/zones/us-central1-c/disks/my-disk".
	SourceDisk string `pulumi:"sourceDisk"`
}

type V2VmDataDiskArgs

type V2VmDataDiskArgs struct {
	// The mode in which to attach this disk. If not specified, the default is READ_WRITE
	// mode. Only applicable to dataDisks.
	// Default value is `READ_WRITE`.
	// Possible values are: `READ_WRITE`, `READ_ONLY`.
	Mode pulumi.StringPtrInput `pulumi:"mode"`
	// Specifies the full path to an existing disk. For example:
	// "projects/my-project/zones/us-central1-c/disks/my-disk".
	SourceDisk pulumi.StringInput `pulumi:"sourceDisk"`
}

func (V2VmDataDiskArgs) ElementType

func (V2VmDataDiskArgs) ElementType() reflect.Type

func (V2VmDataDiskArgs) ToV2VmDataDiskOutput

func (i V2VmDataDiskArgs) ToV2VmDataDiskOutput() V2VmDataDiskOutput

func (V2VmDataDiskArgs) ToV2VmDataDiskOutputWithContext

func (i V2VmDataDiskArgs) ToV2VmDataDiskOutputWithContext(ctx context.Context) V2VmDataDiskOutput

type V2VmDataDiskArray

type V2VmDataDiskArray []V2VmDataDiskInput

func (V2VmDataDiskArray) ElementType

func (V2VmDataDiskArray) ElementType() reflect.Type

func (V2VmDataDiskArray) ToV2VmDataDiskArrayOutput

func (i V2VmDataDiskArray) ToV2VmDataDiskArrayOutput() V2VmDataDiskArrayOutput

func (V2VmDataDiskArray) ToV2VmDataDiskArrayOutputWithContext

func (i V2VmDataDiskArray) ToV2VmDataDiskArrayOutputWithContext(ctx context.Context) V2VmDataDiskArrayOutput

type V2VmDataDiskArrayInput

type V2VmDataDiskArrayInput interface {
	pulumi.Input

	ToV2VmDataDiskArrayOutput() V2VmDataDiskArrayOutput
	ToV2VmDataDiskArrayOutputWithContext(context.Context) V2VmDataDiskArrayOutput
}

V2VmDataDiskArrayInput is an input type that accepts V2VmDataDiskArray and V2VmDataDiskArrayOutput values. You can construct a concrete instance of `V2VmDataDiskArrayInput` via:

V2VmDataDiskArray{ V2VmDataDiskArgs{...} }

type V2VmDataDiskArrayOutput

type V2VmDataDiskArrayOutput struct{ *pulumi.OutputState }

func (V2VmDataDiskArrayOutput) ElementType

func (V2VmDataDiskArrayOutput) ElementType() reflect.Type

func (V2VmDataDiskArrayOutput) Index

func (V2VmDataDiskArrayOutput) ToV2VmDataDiskArrayOutput

func (o V2VmDataDiskArrayOutput) ToV2VmDataDiskArrayOutput() V2VmDataDiskArrayOutput

func (V2VmDataDiskArrayOutput) ToV2VmDataDiskArrayOutputWithContext

func (o V2VmDataDiskArrayOutput) ToV2VmDataDiskArrayOutputWithContext(ctx context.Context) V2VmDataDiskArrayOutput

type V2VmDataDiskInput

type V2VmDataDiskInput interface {
	pulumi.Input

	ToV2VmDataDiskOutput() V2VmDataDiskOutput
	ToV2VmDataDiskOutputWithContext(context.Context) V2VmDataDiskOutput
}

V2VmDataDiskInput is an input type that accepts V2VmDataDiskArgs and V2VmDataDiskOutput values. You can construct a concrete instance of `V2VmDataDiskInput` via:

V2VmDataDiskArgs{...}

type V2VmDataDiskOutput

type V2VmDataDiskOutput struct{ *pulumi.OutputState }

func (V2VmDataDiskOutput) ElementType

func (V2VmDataDiskOutput) ElementType() reflect.Type

func (V2VmDataDiskOutput) Mode

The mode in which to attach this disk. If not specified, the default is READ_WRITE mode. Only applicable to dataDisks. Default value is `READ_WRITE`. Possible values are: `READ_WRITE`, `READ_ONLY`.

func (V2VmDataDiskOutput) SourceDisk

func (o V2VmDataDiskOutput) SourceDisk() pulumi.StringOutput

Specifies the full path to an existing disk. For example: "projects/my-project/zones/us-central1-c/disks/my-disk".

func (V2VmDataDiskOutput) ToV2VmDataDiskOutput

func (o V2VmDataDiskOutput) ToV2VmDataDiskOutput() V2VmDataDiskOutput

func (V2VmDataDiskOutput) ToV2VmDataDiskOutputWithContext

func (o V2VmDataDiskOutput) ToV2VmDataDiskOutputWithContext(ctx context.Context) V2VmDataDiskOutput

type V2VmInput

type V2VmInput interface {
	pulumi.Input

	ToV2VmOutput() V2VmOutput
	ToV2VmOutputWithContext(ctx context.Context) V2VmOutput
}

type V2VmMap

type V2VmMap map[string]V2VmInput

func (V2VmMap) ElementType

func (V2VmMap) ElementType() reflect.Type

func (V2VmMap) ToV2VmMapOutput

func (i V2VmMap) ToV2VmMapOutput() V2VmMapOutput

func (V2VmMap) ToV2VmMapOutputWithContext

func (i V2VmMap) ToV2VmMapOutputWithContext(ctx context.Context) V2VmMapOutput

type V2VmMapInput

type V2VmMapInput interface {
	pulumi.Input

	ToV2VmMapOutput() V2VmMapOutput
	ToV2VmMapOutputWithContext(context.Context) V2VmMapOutput
}

V2VmMapInput is an input type that accepts V2VmMap and V2VmMapOutput values. You can construct a concrete instance of `V2VmMapInput` via:

V2VmMap{ "key": V2VmArgs{...} }

type V2VmMapOutput

type V2VmMapOutput struct{ *pulumi.OutputState }

func (V2VmMapOutput) ElementType

func (V2VmMapOutput) ElementType() reflect.Type

func (V2VmMapOutput) MapIndex

func (V2VmMapOutput) ToV2VmMapOutput

func (o V2VmMapOutput) ToV2VmMapOutput() V2VmMapOutput

func (V2VmMapOutput) ToV2VmMapOutputWithContext

func (o V2VmMapOutput) ToV2VmMapOutputWithContext(ctx context.Context) V2VmMapOutput

type V2VmNetworkConfig

type V2VmNetworkConfig struct {
	// Allows the TPU node to send and receive packets with non-matching destination or source
	// IPs. This is required if you plan to use the TPU workers to forward routes.
	CanIpForward *bool `pulumi:"canIpForward"`
	// Indicates that external IP addresses would be associated with the TPU workers. If set to
	// false, the specified subnetwork or network should have Private Google Access enabled.
	EnableExternalIps *bool `pulumi:"enableExternalIps"`
	// The name of the network for the TPU node. It must be a preexisting Google Compute Engine
	// network. If both network and subnetwork are specified, the given subnetwork must belong
	// to the given network. If network is not specified, it will be looked up from the
	// subnetwork if one is provided, or otherwise use "default".
	Network *string `pulumi:"network"`
	// The name of the subnetwork for the TPU node. It must be a preexisting Google Compute
	// Engine subnetwork. If both network and subnetwork are specified, the given subnetwork
	// must belong to the given network. If subnetwork is not specified, the subnetwork with the
	// same name as the network will be used.
	Subnetwork *string `pulumi:"subnetwork"`
}

type V2VmNetworkConfigArgs

type V2VmNetworkConfigArgs struct {
	// Allows the TPU node to send and receive packets with non-matching destination or source
	// IPs. This is required if you plan to use the TPU workers to forward routes.
	CanIpForward pulumi.BoolPtrInput `pulumi:"canIpForward"`
	// Indicates that external IP addresses would be associated with the TPU workers. If set to
	// false, the specified subnetwork or network should have Private Google Access enabled.
	EnableExternalIps pulumi.BoolPtrInput `pulumi:"enableExternalIps"`
	// The name of the network for the TPU node. It must be a preexisting Google Compute Engine
	// network. If both network and subnetwork are specified, the given subnetwork must belong
	// to the given network. If network is not specified, it will be looked up from the
	// subnetwork if one is provided, or otherwise use "default".
	Network pulumi.StringPtrInput `pulumi:"network"`
	// The name of the subnetwork for the TPU node. It must be a preexisting Google Compute
	// Engine subnetwork. If both network and subnetwork are specified, the given subnetwork
	// must belong to the given network. If subnetwork is not specified, the subnetwork with the
	// same name as the network will be used.
	Subnetwork pulumi.StringPtrInput `pulumi:"subnetwork"`
}

func (V2VmNetworkConfigArgs) ElementType

func (V2VmNetworkConfigArgs) ElementType() reflect.Type

func (V2VmNetworkConfigArgs) ToV2VmNetworkConfigOutput

func (i V2VmNetworkConfigArgs) ToV2VmNetworkConfigOutput() V2VmNetworkConfigOutput

func (V2VmNetworkConfigArgs) ToV2VmNetworkConfigOutputWithContext

func (i V2VmNetworkConfigArgs) ToV2VmNetworkConfigOutputWithContext(ctx context.Context) V2VmNetworkConfigOutput

func (V2VmNetworkConfigArgs) ToV2VmNetworkConfigPtrOutput

func (i V2VmNetworkConfigArgs) ToV2VmNetworkConfigPtrOutput() V2VmNetworkConfigPtrOutput

func (V2VmNetworkConfigArgs) ToV2VmNetworkConfigPtrOutputWithContext

func (i V2VmNetworkConfigArgs) ToV2VmNetworkConfigPtrOutputWithContext(ctx context.Context) V2VmNetworkConfigPtrOutput

type V2VmNetworkConfigInput

type V2VmNetworkConfigInput interface {
	pulumi.Input

	ToV2VmNetworkConfigOutput() V2VmNetworkConfigOutput
	ToV2VmNetworkConfigOutputWithContext(context.Context) V2VmNetworkConfigOutput
}

V2VmNetworkConfigInput is an input type that accepts V2VmNetworkConfigArgs and V2VmNetworkConfigOutput values. You can construct a concrete instance of `V2VmNetworkConfigInput` via:

V2VmNetworkConfigArgs{...}

type V2VmNetworkConfigOutput

type V2VmNetworkConfigOutput struct{ *pulumi.OutputState }

func (V2VmNetworkConfigOutput) CanIpForward

func (o V2VmNetworkConfigOutput) CanIpForward() pulumi.BoolPtrOutput

Allows the TPU node to send and receive packets with non-matching destination or source IPs. This is required if you plan to use the TPU workers to forward routes.

func (V2VmNetworkConfigOutput) ElementType

func (V2VmNetworkConfigOutput) ElementType() reflect.Type

func (V2VmNetworkConfigOutput) EnableExternalIps

func (o V2VmNetworkConfigOutput) EnableExternalIps() pulumi.BoolPtrOutput

Indicates that external IP addresses would be associated with the TPU workers. If set to false, the specified subnetwork or network should have Private Google Access enabled.

func (V2VmNetworkConfigOutput) Network

The name of the network for the TPU node. It must be a preexisting Google Compute Engine network. If both network and subnetwork are specified, the given subnetwork must belong to the given network. If network is not specified, it will be looked up from the subnetwork if one is provided, or otherwise use "default".

func (V2VmNetworkConfigOutput) Subnetwork

The name of the subnetwork for the TPU node. It must be a preexisting Google Compute Engine subnetwork. If both network and subnetwork are specified, the given subnetwork must belong to the given network. If subnetwork is not specified, the subnetwork with the same name as the network will be used.

func (V2VmNetworkConfigOutput) ToV2VmNetworkConfigOutput

func (o V2VmNetworkConfigOutput) ToV2VmNetworkConfigOutput() V2VmNetworkConfigOutput

func (V2VmNetworkConfigOutput) ToV2VmNetworkConfigOutputWithContext

func (o V2VmNetworkConfigOutput) ToV2VmNetworkConfigOutputWithContext(ctx context.Context) V2VmNetworkConfigOutput

func (V2VmNetworkConfigOutput) ToV2VmNetworkConfigPtrOutput

func (o V2VmNetworkConfigOutput) ToV2VmNetworkConfigPtrOutput() V2VmNetworkConfigPtrOutput

func (V2VmNetworkConfigOutput) ToV2VmNetworkConfigPtrOutputWithContext

func (o V2VmNetworkConfigOutput) ToV2VmNetworkConfigPtrOutputWithContext(ctx context.Context) V2VmNetworkConfigPtrOutput

type V2VmNetworkConfigPtrInput

type V2VmNetworkConfigPtrInput interface {
	pulumi.Input

	ToV2VmNetworkConfigPtrOutput() V2VmNetworkConfigPtrOutput
	ToV2VmNetworkConfigPtrOutputWithContext(context.Context) V2VmNetworkConfigPtrOutput
}

V2VmNetworkConfigPtrInput is an input type that accepts V2VmNetworkConfigArgs, V2VmNetworkConfigPtr and V2VmNetworkConfigPtrOutput values. You can construct a concrete instance of `V2VmNetworkConfigPtrInput` via:

        V2VmNetworkConfigArgs{...}

or:

        nil

type V2VmNetworkConfigPtrOutput

type V2VmNetworkConfigPtrOutput struct{ *pulumi.OutputState }

func (V2VmNetworkConfigPtrOutput) CanIpForward

Allows the TPU node to send and receive packets with non-matching destination or source IPs. This is required if you plan to use the TPU workers to forward routes.

func (V2VmNetworkConfigPtrOutput) Elem

func (V2VmNetworkConfigPtrOutput) ElementType

func (V2VmNetworkConfigPtrOutput) ElementType() reflect.Type

func (V2VmNetworkConfigPtrOutput) EnableExternalIps

func (o V2VmNetworkConfigPtrOutput) EnableExternalIps() pulumi.BoolPtrOutput

Indicates that external IP addresses would be associated with the TPU workers. If set to false, the specified subnetwork or network should have Private Google Access enabled.

func (V2VmNetworkConfigPtrOutput) Network

The name of the network for the TPU node. It must be a preexisting Google Compute Engine network. If both network and subnetwork are specified, the given subnetwork must belong to the given network. If network is not specified, it will be looked up from the subnetwork if one is provided, or otherwise use "default".

func (V2VmNetworkConfigPtrOutput) Subnetwork

The name of the subnetwork for the TPU node. It must be a preexisting Google Compute Engine subnetwork. If both network and subnetwork are specified, the given subnetwork must belong to the given network. If subnetwork is not specified, the subnetwork with the same name as the network will be used.

func (V2VmNetworkConfigPtrOutput) ToV2VmNetworkConfigPtrOutput

func (o V2VmNetworkConfigPtrOutput) ToV2VmNetworkConfigPtrOutput() V2VmNetworkConfigPtrOutput

func (V2VmNetworkConfigPtrOutput) ToV2VmNetworkConfigPtrOutputWithContext

func (o V2VmNetworkConfigPtrOutput) ToV2VmNetworkConfigPtrOutputWithContext(ctx context.Context) V2VmNetworkConfigPtrOutput

type V2VmNetworkEndpoint

type V2VmNetworkEndpoint struct {
	// (Output)
	// The access config for the TPU worker.
	// Structure is documented below.
	AccessConfigs []V2VmNetworkEndpointAccessConfig `pulumi:"accessConfigs"`
	// (Output)
	// The internal IP address of this network endpoint.
	IpAddress *string `pulumi:"ipAddress"`
	// (Output)
	// The port of this network endpoint.
	Port *int `pulumi:"port"`
}

type V2VmNetworkEndpointAccessConfig

type V2VmNetworkEndpointAccessConfig struct {
	// (Output)
	// An external IP address associated with the TPU worker.
	ExternalIp *string `pulumi:"externalIp"`
}

type V2VmNetworkEndpointAccessConfigArgs

type V2VmNetworkEndpointAccessConfigArgs struct {
	// (Output)
	// An external IP address associated with the TPU worker.
	ExternalIp pulumi.StringPtrInput `pulumi:"externalIp"`
}

func (V2VmNetworkEndpointAccessConfigArgs) ElementType

func (V2VmNetworkEndpointAccessConfigArgs) ToV2VmNetworkEndpointAccessConfigOutput

func (i V2VmNetworkEndpointAccessConfigArgs) ToV2VmNetworkEndpointAccessConfigOutput() V2VmNetworkEndpointAccessConfigOutput

func (V2VmNetworkEndpointAccessConfigArgs) ToV2VmNetworkEndpointAccessConfigOutputWithContext

func (i V2VmNetworkEndpointAccessConfigArgs) ToV2VmNetworkEndpointAccessConfigOutputWithContext(ctx context.Context) V2VmNetworkEndpointAccessConfigOutput

type V2VmNetworkEndpointAccessConfigArray

type V2VmNetworkEndpointAccessConfigArray []V2VmNetworkEndpointAccessConfigInput

func (V2VmNetworkEndpointAccessConfigArray) ElementType

func (V2VmNetworkEndpointAccessConfigArray) ToV2VmNetworkEndpointAccessConfigArrayOutput

func (i V2VmNetworkEndpointAccessConfigArray) ToV2VmNetworkEndpointAccessConfigArrayOutput() V2VmNetworkEndpointAccessConfigArrayOutput

func (V2VmNetworkEndpointAccessConfigArray) ToV2VmNetworkEndpointAccessConfigArrayOutputWithContext

func (i V2VmNetworkEndpointAccessConfigArray) ToV2VmNetworkEndpointAccessConfigArrayOutputWithContext(ctx context.Context) V2VmNetworkEndpointAccessConfigArrayOutput

type V2VmNetworkEndpointAccessConfigArrayInput

type V2VmNetworkEndpointAccessConfigArrayInput interface {
	pulumi.Input

	ToV2VmNetworkEndpointAccessConfigArrayOutput() V2VmNetworkEndpointAccessConfigArrayOutput
	ToV2VmNetworkEndpointAccessConfigArrayOutputWithContext(context.Context) V2VmNetworkEndpointAccessConfigArrayOutput
}

V2VmNetworkEndpointAccessConfigArrayInput is an input type that accepts V2VmNetworkEndpointAccessConfigArray and V2VmNetworkEndpointAccessConfigArrayOutput values. You can construct a concrete instance of `V2VmNetworkEndpointAccessConfigArrayInput` via:

V2VmNetworkEndpointAccessConfigArray{ V2VmNetworkEndpointAccessConfigArgs{...} }

type V2VmNetworkEndpointAccessConfigArrayOutput

type V2VmNetworkEndpointAccessConfigArrayOutput struct{ *pulumi.OutputState }

func (V2VmNetworkEndpointAccessConfigArrayOutput) ElementType

func (V2VmNetworkEndpointAccessConfigArrayOutput) Index

func (V2VmNetworkEndpointAccessConfigArrayOutput) ToV2VmNetworkEndpointAccessConfigArrayOutput

func (o V2VmNetworkEndpointAccessConfigArrayOutput) ToV2VmNetworkEndpointAccessConfigArrayOutput() V2VmNetworkEndpointAccessConfigArrayOutput

func (V2VmNetworkEndpointAccessConfigArrayOutput) ToV2VmNetworkEndpointAccessConfigArrayOutputWithContext

func (o V2VmNetworkEndpointAccessConfigArrayOutput) ToV2VmNetworkEndpointAccessConfigArrayOutputWithContext(ctx context.Context) V2VmNetworkEndpointAccessConfigArrayOutput

type V2VmNetworkEndpointAccessConfigInput

type V2VmNetworkEndpointAccessConfigInput interface {
	pulumi.Input

	ToV2VmNetworkEndpointAccessConfigOutput() V2VmNetworkEndpointAccessConfigOutput
	ToV2VmNetworkEndpointAccessConfigOutputWithContext(context.Context) V2VmNetworkEndpointAccessConfigOutput
}

V2VmNetworkEndpointAccessConfigInput is an input type that accepts V2VmNetworkEndpointAccessConfigArgs and V2VmNetworkEndpointAccessConfigOutput values. You can construct a concrete instance of `V2VmNetworkEndpointAccessConfigInput` via:

V2VmNetworkEndpointAccessConfigArgs{...}

type V2VmNetworkEndpointAccessConfigOutput

type V2VmNetworkEndpointAccessConfigOutput struct{ *pulumi.OutputState }

func (V2VmNetworkEndpointAccessConfigOutput) ElementType

func (V2VmNetworkEndpointAccessConfigOutput) ExternalIp

(Output) An external IP address associated with the TPU worker.

func (V2VmNetworkEndpointAccessConfigOutput) ToV2VmNetworkEndpointAccessConfigOutput

func (o V2VmNetworkEndpointAccessConfigOutput) ToV2VmNetworkEndpointAccessConfigOutput() V2VmNetworkEndpointAccessConfigOutput

func (V2VmNetworkEndpointAccessConfigOutput) ToV2VmNetworkEndpointAccessConfigOutputWithContext

func (o V2VmNetworkEndpointAccessConfigOutput) ToV2VmNetworkEndpointAccessConfigOutputWithContext(ctx context.Context) V2VmNetworkEndpointAccessConfigOutput

type V2VmNetworkEndpointArgs

type V2VmNetworkEndpointArgs struct {
	// (Output)
	// The access config for the TPU worker.
	// Structure is documented below.
	AccessConfigs V2VmNetworkEndpointAccessConfigArrayInput `pulumi:"accessConfigs"`
	// (Output)
	// The internal IP address of this network endpoint.
	IpAddress pulumi.StringPtrInput `pulumi:"ipAddress"`
	// (Output)
	// The port of this network endpoint.
	Port pulumi.IntPtrInput `pulumi:"port"`
}

func (V2VmNetworkEndpointArgs) ElementType

func (V2VmNetworkEndpointArgs) ElementType() reflect.Type

func (V2VmNetworkEndpointArgs) ToV2VmNetworkEndpointOutput

func (i V2VmNetworkEndpointArgs) ToV2VmNetworkEndpointOutput() V2VmNetworkEndpointOutput

func (V2VmNetworkEndpointArgs) ToV2VmNetworkEndpointOutputWithContext

func (i V2VmNetworkEndpointArgs) ToV2VmNetworkEndpointOutputWithContext(ctx context.Context) V2VmNetworkEndpointOutput

type V2VmNetworkEndpointArray

type V2VmNetworkEndpointArray []V2VmNetworkEndpointInput

func (V2VmNetworkEndpointArray) ElementType

func (V2VmNetworkEndpointArray) ElementType() reflect.Type

func (V2VmNetworkEndpointArray) ToV2VmNetworkEndpointArrayOutput

func (i V2VmNetworkEndpointArray) ToV2VmNetworkEndpointArrayOutput() V2VmNetworkEndpointArrayOutput

func (V2VmNetworkEndpointArray) ToV2VmNetworkEndpointArrayOutputWithContext

func (i V2VmNetworkEndpointArray) ToV2VmNetworkEndpointArrayOutputWithContext(ctx context.Context) V2VmNetworkEndpointArrayOutput

type V2VmNetworkEndpointArrayInput

type V2VmNetworkEndpointArrayInput interface {
	pulumi.Input

	ToV2VmNetworkEndpointArrayOutput() V2VmNetworkEndpointArrayOutput
	ToV2VmNetworkEndpointArrayOutputWithContext(context.Context) V2VmNetworkEndpointArrayOutput
}

V2VmNetworkEndpointArrayInput is an input type that accepts V2VmNetworkEndpointArray and V2VmNetworkEndpointArrayOutput values. You can construct a concrete instance of `V2VmNetworkEndpointArrayInput` via:

V2VmNetworkEndpointArray{ V2VmNetworkEndpointArgs{...} }

type V2VmNetworkEndpointArrayOutput

type V2VmNetworkEndpointArrayOutput struct{ *pulumi.OutputState }

func (V2VmNetworkEndpointArrayOutput) ElementType

func (V2VmNetworkEndpointArrayOutput) Index

func (V2VmNetworkEndpointArrayOutput) ToV2VmNetworkEndpointArrayOutput

func (o V2VmNetworkEndpointArrayOutput) ToV2VmNetworkEndpointArrayOutput() V2VmNetworkEndpointArrayOutput

func (V2VmNetworkEndpointArrayOutput) ToV2VmNetworkEndpointArrayOutputWithContext

func (o V2VmNetworkEndpointArrayOutput) ToV2VmNetworkEndpointArrayOutputWithContext(ctx context.Context) V2VmNetworkEndpointArrayOutput

type V2VmNetworkEndpointInput

type V2VmNetworkEndpointInput interface {
	pulumi.Input

	ToV2VmNetworkEndpointOutput() V2VmNetworkEndpointOutput
	ToV2VmNetworkEndpointOutputWithContext(context.Context) V2VmNetworkEndpointOutput
}

V2VmNetworkEndpointInput is an input type that accepts V2VmNetworkEndpointArgs and V2VmNetworkEndpointOutput values. You can construct a concrete instance of `V2VmNetworkEndpointInput` via:

V2VmNetworkEndpointArgs{...}

type V2VmNetworkEndpointOutput

type V2VmNetworkEndpointOutput struct{ *pulumi.OutputState }

func (V2VmNetworkEndpointOutput) AccessConfigs

(Output) The access config for the TPU worker. Structure is documented below.

func (V2VmNetworkEndpointOutput) ElementType

func (V2VmNetworkEndpointOutput) ElementType() reflect.Type

func (V2VmNetworkEndpointOutput) IpAddress

(Output) The internal IP address of this network endpoint.

func (V2VmNetworkEndpointOutput) Port

(Output) The port of this network endpoint.

func (V2VmNetworkEndpointOutput) ToV2VmNetworkEndpointOutput

func (o V2VmNetworkEndpointOutput) ToV2VmNetworkEndpointOutput() V2VmNetworkEndpointOutput

func (V2VmNetworkEndpointOutput) ToV2VmNetworkEndpointOutputWithContext

func (o V2VmNetworkEndpointOutput) ToV2VmNetworkEndpointOutputWithContext(ctx context.Context) V2VmNetworkEndpointOutput

type V2VmOutput

type V2VmOutput struct{ *pulumi.OutputState }

func (V2VmOutput) AcceleratorConfig

func (o V2VmOutput) AcceleratorConfig() V2VmAcceleratorConfigOutput

The AccleratorConfig for the TPU Node. `acceleratorConfig` cannot be used at the same time as `acceleratorType`. If neither is specified, `acceleratorType` defaults to 'v2-8'. Structure is documented below.

func (V2VmOutput) AcceleratorType

func (o V2VmOutput) AcceleratorType() pulumi.StringOutput

TPU accelerator type for the TPU. `acceleratorType` cannot be used at the same time as `acceleratorConfig`. If neither is specified, `acceleratorType` defaults to 'v2-8'.

func (V2VmOutput) ApiVersion

func (o V2VmOutput) ApiVersion() pulumi.StringOutput

The API version that created this Node.

func (V2VmOutput) CidrBlock

func (o V2VmOutput) CidrBlock() pulumi.StringOutput

The CIDR block that the TPU node will use when selecting an IP address. This CIDR block must be a /29 block; the Compute Engine networks API forbids a smaller block, and using a larger block would be wasteful (a node can only consume one IP address). Errors will occur if the CIDR block has already been used for a currently existing TPU node, the CIDR block conflicts with any subnetworks in the user's provided network, or the provided network is peered with another network that is using that CIDR block.

func (V2VmOutput) DataDisks

func (o V2VmOutput) DataDisks() V2VmDataDiskArrayOutput

The additional data disks for the Node. Structure is documented below.

func (V2VmOutput) Description

func (o V2VmOutput) Description() pulumi.StringPtrOutput

Text description of the TPU.

func (V2VmOutput) EffectiveLabels

func (o V2VmOutput) EffectiveLabels() pulumi.StringMapOutput

All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.

func (V2VmOutput) ElementType

func (V2VmOutput) ElementType() reflect.Type

func (V2VmOutput) Health

func (o V2VmOutput) Health() pulumi.StringOutput

The health status of the TPU node.

func (V2VmOutput) HealthDescription

func (o V2VmOutput) HealthDescription() pulumi.StringOutput

If this field is populated, it contains a description of why the TPU Node is unhealthy.

func (V2VmOutput) Labels

func (o V2VmOutput) Labels() pulumi.StringMapOutput

Resource labels to represent user-provided metadata. **Note**: This field is non-authoritative, and will only manage the labels present in your configuration. Please refer to the field `effectiveLabels` for all of the labels present on the resource.

func (V2VmOutput) Metadata

func (o V2VmOutput) Metadata() pulumi.StringMapOutput

Custom metadata to apply to the TPU Node. Can set startup-script and shutdown-script.

func (V2VmOutput) MultisliceNode

func (o V2VmOutput) MultisliceNode() pulumi.BoolOutput

Whether the Node belongs to a Multislice group.

func (V2VmOutput) Name

func (o V2VmOutput) Name() pulumi.StringOutput

The immutable name of the TPU.

func (V2VmOutput) NetworkConfig

func (o V2VmOutput) NetworkConfig() V2VmNetworkConfigOutput

Network configurations for the TPU node. Structure is documented below.

func (V2VmOutput) NetworkEndpoints

func (o V2VmOutput) NetworkEndpoints() V2VmNetworkEndpointArrayOutput

The network endpoints where TPU workers can be accessed and sent work. It is recommended that runtime clients of the node reach out to the 0th entry in this map first. Structure is documented below.

func (V2VmOutput) Project

func (o V2VmOutput) Project() pulumi.StringOutput

The ID of the project in which the resource belongs. If it is not provided, the provider project is used.

func (V2VmOutput) PulumiLabels

func (o V2VmOutput) PulumiLabels() pulumi.StringMapOutput

The combination of labels configured directly on the resource and default labels configured on the provider.

func (V2VmOutput) QueuedResource

func (o V2VmOutput) QueuedResource() pulumi.StringOutput

The qualified name of the QueuedResource that requested this Node.

func (V2VmOutput) RuntimeVersion

func (o V2VmOutput) RuntimeVersion() pulumi.StringOutput

Runtime version for the TPU.

***

func (V2VmOutput) SchedulingConfig

func (o V2VmOutput) SchedulingConfig() V2VmSchedulingConfigPtrOutput

The scheduling options for this node. Structure is documented below.

func (V2VmOutput) ServiceAccount

func (o V2VmOutput) ServiceAccount() V2VmServiceAccountOutput

The Google Cloud Platform Service Account to be used by the TPU node VMs. If None is specified, the default compute service account will be used. Structure is documented below.

func (V2VmOutput) ShieldedInstanceConfig

func (o V2VmOutput) ShieldedInstanceConfig() V2VmShieldedInstanceConfigPtrOutput

Shielded Instance options. Structure is documented below.

func (V2VmOutput) State

func (o V2VmOutput) State() pulumi.StringOutput

The current state for the TPU Node.

func (V2VmOutput) Symptoms

func (o V2VmOutput) Symptoms() V2VmSymptomArrayOutput

The Symptoms that have occurred to the TPU Node. Structure is documented below.

func (V2VmOutput) Tags

Tags to apply to the TPU Node. Tags are used to identify valid sources or targets for network firewalls.

func (V2VmOutput) ToV2VmOutput

func (o V2VmOutput) ToV2VmOutput() V2VmOutput

func (V2VmOutput) ToV2VmOutputWithContext

func (o V2VmOutput) ToV2VmOutputWithContext(ctx context.Context) V2VmOutput

func (V2VmOutput) Zone

func (o V2VmOutput) Zone() pulumi.StringOutput

The GCP location for the TPU. If it is not provided, the provider zone is used.

type V2VmSchedulingConfig

type V2VmSchedulingConfig struct {
	// Defines whether the node is preemptible.
	Preemptible *bool `pulumi:"preemptible"`
	// Whether the node is created under a reservation.
	Reserved *bool `pulumi:"reserved"`
}

type V2VmSchedulingConfigArgs

type V2VmSchedulingConfigArgs struct {
	// Defines whether the node is preemptible.
	Preemptible pulumi.BoolPtrInput `pulumi:"preemptible"`
	// Whether the node is created under a reservation.
	Reserved pulumi.BoolPtrInput `pulumi:"reserved"`
}

func (V2VmSchedulingConfigArgs) ElementType

func (V2VmSchedulingConfigArgs) ElementType() reflect.Type

func (V2VmSchedulingConfigArgs) ToV2VmSchedulingConfigOutput

func (i V2VmSchedulingConfigArgs) ToV2VmSchedulingConfigOutput() V2VmSchedulingConfigOutput

func (V2VmSchedulingConfigArgs) ToV2VmSchedulingConfigOutputWithContext

func (i V2VmSchedulingConfigArgs) ToV2VmSchedulingConfigOutputWithContext(ctx context.Context) V2VmSchedulingConfigOutput

func (V2VmSchedulingConfigArgs) ToV2VmSchedulingConfigPtrOutput

func (i V2VmSchedulingConfigArgs) ToV2VmSchedulingConfigPtrOutput() V2VmSchedulingConfigPtrOutput

func (V2VmSchedulingConfigArgs) ToV2VmSchedulingConfigPtrOutputWithContext

func (i V2VmSchedulingConfigArgs) ToV2VmSchedulingConfigPtrOutputWithContext(ctx context.Context) V2VmSchedulingConfigPtrOutput

type V2VmSchedulingConfigInput

type V2VmSchedulingConfigInput interface {
	pulumi.Input

	ToV2VmSchedulingConfigOutput() V2VmSchedulingConfigOutput
	ToV2VmSchedulingConfigOutputWithContext(context.Context) V2VmSchedulingConfigOutput
}

V2VmSchedulingConfigInput is an input type that accepts V2VmSchedulingConfigArgs and V2VmSchedulingConfigOutput values. You can construct a concrete instance of `V2VmSchedulingConfigInput` via:

V2VmSchedulingConfigArgs{...}

type V2VmSchedulingConfigOutput

type V2VmSchedulingConfigOutput struct{ *pulumi.OutputState }

func (V2VmSchedulingConfigOutput) ElementType

func (V2VmSchedulingConfigOutput) ElementType() reflect.Type

func (V2VmSchedulingConfigOutput) Preemptible

Defines whether the node is preemptible.

func (V2VmSchedulingConfigOutput) Reserved

Whether the node is created under a reservation.

func (V2VmSchedulingConfigOutput) ToV2VmSchedulingConfigOutput

func (o V2VmSchedulingConfigOutput) ToV2VmSchedulingConfigOutput() V2VmSchedulingConfigOutput

func (V2VmSchedulingConfigOutput) ToV2VmSchedulingConfigOutputWithContext

func (o V2VmSchedulingConfigOutput) ToV2VmSchedulingConfigOutputWithContext(ctx context.Context) V2VmSchedulingConfigOutput

func (V2VmSchedulingConfigOutput) ToV2VmSchedulingConfigPtrOutput

func (o V2VmSchedulingConfigOutput) ToV2VmSchedulingConfigPtrOutput() V2VmSchedulingConfigPtrOutput

func (V2VmSchedulingConfigOutput) ToV2VmSchedulingConfigPtrOutputWithContext

func (o V2VmSchedulingConfigOutput) ToV2VmSchedulingConfigPtrOutputWithContext(ctx context.Context) V2VmSchedulingConfigPtrOutput

type V2VmSchedulingConfigPtrInput

type V2VmSchedulingConfigPtrInput interface {
	pulumi.Input

	ToV2VmSchedulingConfigPtrOutput() V2VmSchedulingConfigPtrOutput
	ToV2VmSchedulingConfigPtrOutputWithContext(context.Context) V2VmSchedulingConfigPtrOutput
}

V2VmSchedulingConfigPtrInput is an input type that accepts V2VmSchedulingConfigArgs, V2VmSchedulingConfigPtr and V2VmSchedulingConfigPtrOutput values. You can construct a concrete instance of `V2VmSchedulingConfigPtrInput` via:

        V2VmSchedulingConfigArgs{...}

or:

        nil

type V2VmSchedulingConfigPtrOutput

type V2VmSchedulingConfigPtrOutput struct{ *pulumi.OutputState }

func (V2VmSchedulingConfigPtrOutput) Elem

func (V2VmSchedulingConfigPtrOutput) ElementType

func (V2VmSchedulingConfigPtrOutput) Preemptible

Defines whether the node is preemptible.

func (V2VmSchedulingConfigPtrOutput) Reserved

Whether the node is created under a reservation.

func (V2VmSchedulingConfigPtrOutput) ToV2VmSchedulingConfigPtrOutput

func (o V2VmSchedulingConfigPtrOutput) ToV2VmSchedulingConfigPtrOutput() V2VmSchedulingConfigPtrOutput

func (V2VmSchedulingConfigPtrOutput) ToV2VmSchedulingConfigPtrOutputWithContext

func (o V2VmSchedulingConfigPtrOutput) ToV2VmSchedulingConfigPtrOutputWithContext(ctx context.Context) V2VmSchedulingConfigPtrOutput

type V2VmServiceAccount

type V2VmServiceAccount struct {
	// Email address of the service account. If empty, default Compute service account will be used.
	Email *string `pulumi:"email"`
	// The list of scopes to be made available for this service account. If empty, access to all
	// Cloud APIs will be allowed.
	Scopes []string `pulumi:"scopes"`
}

type V2VmServiceAccountArgs

type V2VmServiceAccountArgs struct {
	// Email address of the service account. If empty, default Compute service account will be used.
	Email pulumi.StringPtrInput `pulumi:"email"`
	// The list of scopes to be made available for this service account. If empty, access to all
	// Cloud APIs will be allowed.
	Scopes pulumi.StringArrayInput `pulumi:"scopes"`
}

func (V2VmServiceAccountArgs) ElementType

func (V2VmServiceAccountArgs) ElementType() reflect.Type

func (V2VmServiceAccountArgs) ToV2VmServiceAccountOutput

func (i V2VmServiceAccountArgs) ToV2VmServiceAccountOutput() V2VmServiceAccountOutput

func (V2VmServiceAccountArgs) ToV2VmServiceAccountOutputWithContext

func (i V2VmServiceAccountArgs) ToV2VmServiceAccountOutputWithContext(ctx context.Context) V2VmServiceAccountOutput

func (V2VmServiceAccountArgs) ToV2VmServiceAccountPtrOutput

func (i V2VmServiceAccountArgs) ToV2VmServiceAccountPtrOutput() V2VmServiceAccountPtrOutput

func (V2VmServiceAccountArgs) ToV2VmServiceAccountPtrOutputWithContext

func (i V2VmServiceAccountArgs) ToV2VmServiceAccountPtrOutputWithContext(ctx context.Context) V2VmServiceAccountPtrOutput

type V2VmServiceAccountInput

type V2VmServiceAccountInput interface {
	pulumi.Input

	ToV2VmServiceAccountOutput() V2VmServiceAccountOutput
	ToV2VmServiceAccountOutputWithContext(context.Context) V2VmServiceAccountOutput
}

V2VmServiceAccountInput is an input type that accepts V2VmServiceAccountArgs and V2VmServiceAccountOutput values. You can construct a concrete instance of `V2VmServiceAccountInput` via:

V2VmServiceAccountArgs{...}

type V2VmServiceAccountOutput

type V2VmServiceAccountOutput struct{ *pulumi.OutputState }

func (V2VmServiceAccountOutput) ElementType

func (V2VmServiceAccountOutput) ElementType() reflect.Type

func (V2VmServiceAccountOutput) Email

Email address of the service account. If empty, default Compute service account will be used.

func (V2VmServiceAccountOutput) Scopes

The list of scopes to be made available for this service account. If empty, access to all Cloud APIs will be allowed.

func (V2VmServiceAccountOutput) ToV2VmServiceAccountOutput

func (o V2VmServiceAccountOutput) ToV2VmServiceAccountOutput() V2VmServiceAccountOutput

func (V2VmServiceAccountOutput) ToV2VmServiceAccountOutputWithContext

func (o V2VmServiceAccountOutput) ToV2VmServiceAccountOutputWithContext(ctx context.Context) V2VmServiceAccountOutput

func (V2VmServiceAccountOutput) ToV2VmServiceAccountPtrOutput

func (o V2VmServiceAccountOutput) ToV2VmServiceAccountPtrOutput() V2VmServiceAccountPtrOutput

func (V2VmServiceAccountOutput) ToV2VmServiceAccountPtrOutputWithContext

func (o V2VmServiceAccountOutput) ToV2VmServiceAccountPtrOutputWithContext(ctx context.Context) V2VmServiceAccountPtrOutput

type V2VmServiceAccountPtrInput

type V2VmServiceAccountPtrInput interface {
	pulumi.Input

	ToV2VmServiceAccountPtrOutput() V2VmServiceAccountPtrOutput
	ToV2VmServiceAccountPtrOutputWithContext(context.Context) V2VmServiceAccountPtrOutput
}

V2VmServiceAccountPtrInput is an input type that accepts V2VmServiceAccountArgs, V2VmServiceAccountPtr and V2VmServiceAccountPtrOutput values. You can construct a concrete instance of `V2VmServiceAccountPtrInput` via:

        V2VmServiceAccountArgs{...}

or:

        nil

type V2VmServiceAccountPtrOutput

type V2VmServiceAccountPtrOutput struct{ *pulumi.OutputState }

func (V2VmServiceAccountPtrOutput) Elem

func (V2VmServiceAccountPtrOutput) ElementType

func (V2VmServiceAccountPtrOutput) Email

Email address of the service account. If empty, default Compute service account will be used.

func (V2VmServiceAccountPtrOutput) Scopes

The list of scopes to be made available for this service account. If empty, access to all Cloud APIs will be allowed.

func (V2VmServiceAccountPtrOutput) ToV2VmServiceAccountPtrOutput

func (o V2VmServiceAccountPtrOutput) ToV2VmServiceAccountPtrOutput() V2VmServiceAccountPtrOutput

func (V2VmServiceAccountPtrOutput) ToV2VmServiceAccountPtrOutputWithContext

func (o V2VmServiceAccountPtrOutput) ToV2VmServiceAccountPtrOutputWithContext(ctx context.Context) V2VmServiceAccountPtrOutput

type V2VmShieldedInstanceConfig

type V2VmShieldedInstanceConfig struct {
	// Defines whether the instance has Secure Boot enabled.
	EnableSecureBoot bool `pulumi:"enableSecureBoot"`
}

type V2VmShieldedInstanceConfigArgs

type V2VmShieldedInstanceConfigArgs struct {
	// Defines whether the instance has Secure Boot enabled.
	EnableSecureBoot pulumi.BoolInput `pulumi:"enableSecureBoot"`
}

func (V2VmShieldedInstanceConfigArgs) ElementType

func (V2VmShieldedInstanceConfigArgs) ToV2VmShieldedInstanceConfigOutput

func (i V2VmShieldedInstanceConfigArgs) ToV2VmShieldedInstanceConfigOutput() V2VmShieldedInstanceConfigOutput

func (V2VmShieldedInstanceConfigArgs) ToV2VmShieldedInstanceConfigOutputWithContext

func (i V2VmShieldedInstanceConfigArgs) ToV2VmShieldedInstanceConfigOutputWithContext(ctx context.Context) V2VmShieldedInstanceConfigOutput

func (V2VmShieldedInstanceConfigArgs) ToV2VmShieldedInstanceConfigPtrOutput

func (i V2VmShieldedInstanceConfigArgs) ToV2VmShieldedInstanceConfigPtrOutput() V2VmShieldedInstanceConfigPtrOutput

func (V2VmShieldedInstanceConfigArgs) ToV2VmShieldedInstanceConfigPtrOutputWithContext

func (i V2VmShieldedInstanceConfigArgs) ToV2VmShieldedInstanceConfigPtrOutputWithContext(ctx context.Context) V2VmShieldedInstanceConfigPtrOutput

type V2VmShieldedInstanceConfigInput

type V2VmShieldedInstanceConfigInput interface {
	pulumi.Input

	ToV2VmShieldedInstanceConfigOutput() V2VmShieldedInstanceConfigOutput
	ToV2VmShieldedInstanceConfigOutputWithContext(context.Context) V2VmShieldedInstanceConfigOutput
}

V2VmShieldedInstanceConfigInput is an input type that accepts V2VmShieldedInstanceConfigArgs and V2VmShieldedInstanceConfigOutput values. You can construct a concrete instance of `V2VmShieldedInstanceConfigInput` via:

V2VmShieldedInstanceConfigArgs{...}

type V2VmShieldedInstanceConfigOutput

type V2VmShieldedInstanceConfigOutput struct{ *pulumi.OutputState }

func (V2VmShieldedInstanceConfigOutput) ElementType

func (V2VmShieldedInstanceConfigOutput) EnableSecureBoot

func (o V2VmShieldedInstanceConfigOutput) EnableSecureBoot() pulumi.BoolOutput

Defines whether the instance has Secure Boot enabled.

func (V2VmShieldedInstanceConfigOutput) ToV2VmShieldedInstanceConfigOutput

func (o V2VmShieldedInstanceConfigOutput) ToV2VmShieldedInstanceConfigOutput() V2VmShieldedInstanceConfigOutput

func (V2VmShieldedInstanceConfigOutput) ToV2VmShieldedInstanceConfigOutputWithContext

func (o V2VmShieldedInstanceConfigOutput) ToV2VmShieldedInstanceConfigOutputWithContext(ctx context.Context) V2VmShieldedInstanceConfigOutput

func (V2VmShieldedInstanceConfigOutput) ToV2VmShieldedInstanceConfigPtrOutput

func (o V2VmShieldedInstanceConfigOutput) ToV2VmShieldedInstanceConfigPtrOutput() V2VmShieldedInstanceConfigPtrOutput

func (V2VmShieldedInstanceConfigOutput) ToV2VmShieldedInstanceConfigPtrOutputWithContext

func (o V2VmShieldedInstanceConfigOutput) ToV2VmShieldedInstanceConfigPtrOutputWithContext(ctx context.Context) V2VmShieldedInstanceConfigPtrOutput

type V2VmShieldedInstanceConfigPtrInput

type V2VmShieldedInstanceConfigPtrInput interface {
	pulumi.Input

	ToV2VmShieldedInstanceConfigPtrOutput() V2VmShieldedInstanceConfigPtrOutput
	ToV2VmShieldedInstanceConfigPtrOutputWithContext(context.Context) V2VmShieldedInstanceConfigPtrOutput
}

V2VmShieldedInstanceConfigPtrInput is an input type that accepts V2VmShieldedInstanceConfigArgs, V2VmShieldedInstanceConfigPtr and V2VmShieldedInstanceConfigPtrOutput values. You can construct a concrete instance of `V2VmShieldedInstanceConfigPtrInput` via:

        V2VmShieldedInstanceConfigArgs{...}

or:

        nil

type V2VmShieldedInstanceConfigPtrOutput

type V2VmShieldedInstanceConfigPtrOutput struct{ *pulumi.OutputState }

func (V2VmShieldedInstanceConfigPtrOutput) Elem

func (V2VmShieldedInstanceConfigPtrOutput) ElementType

func (V2VmShieldedInstanceConfigPtrOutput) EnableSecureBoot

Defines whether the instance has Secure Boot enabled.

func (V2VmShieldedInstanceConfigPtrOutput) ToV2VmShieldedInstanceConfigPtrOutput

func (o V2VmShieldedInstanceConfigPtrOutput) ToV2VmShieldedInstanceConfigPtrOutput() V2VmShieldedInstanceConfigPtrOutput

func (V2VmShieldedInstanceConfigPtrOutput) ToV2VmShieldedInstanceConfigPtrOutputWithContext

func (o V2VmShieldedInstanceConfigPtrOutput) ToV2VmShieldedInstanceConfigPtrOutputWithContext(ctx context.Context) V2VmShieldedInstanceConfigPtrOutput

type V2VmState

type V2VmState struct {
	// The AccleratorConfig for the TPU Node. `acceleratorConfig` cannot be used at the same time
	// as `acceleratorType`. If neither is specified, `acceleratorType` defaults to 'v2-8'.
	// Structure is documented below.
	AcceleratorConfig V2VmAcceleratorConfigPtrInput
	// TPU accelerator type for the TPU. `acceleratorType` cannot be used at the same time as
	// `acceleratorConfig`. If neither is specified, `acceleratorType` defaults to 'v2-8'.
	AcceleratorType pulumi.StringPtrInput
	// The API version that created this Node.
	ApiVersion pulumi.StringPtrInput
	// The CIDR block that the TPU node will use when selecting an IP address. This CIDR block must
	// be a /29 block; the Compute Engine networks API forbids a smaller block, and using a larger
	// block would be wasteful (a node can only consume one IP address). Errors will occur if the
	// CIDR block has already been used for a currently existing TPU node, the CIDR block conflicts
	// with any subnetworks in the user's provided network, or the provided network is peered with
	// another network that is using that CIDR block.
	CidrBlock pulumi.StringPtrInput
	// The additional data disks for the Node.
	// Structure is documented below.
	DataDisks V2VmDataDiskArrayInput
	// Text description of the TPU.
	Description pulumi.StringPtrInput
	// All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
	EffectiveLabels pulumi.StringMapInput
	// The health status of the TPU node.
	Health pulumi.StringPtrInput
	// If this field is populated, it contains a description of why the TPU Node is unhealthy.
	HealthDescription pulumi.StringPtrInput
	// Resource labels to represent user-provided metadata.
	// **Note**: This field is non-authoritative, and will only manage the labels present in your configuration.
	// Please refer to the field `effectiveLabels` for all of the labels present on the resource.
	Labels pulumi.StringMapInput
	// Custom metadata to apply to the TPU Node. Can set startup-script and shutdown-script.
	Metadata pulumi.StringMapInput
	// Whether the Node belongs to a Multislice group.
	MultisliceNode pulumi.BoolPtrInput
	// The immutable name of the TPU.
	Name pulumi.StringPtrInput
	// Network configurations for the TPU node.
	// Structure is documented below.
	NetworkConfig V2VmNetworkConfigPtrInput
	// The network endpoints where TPU workers can be accessed and sent work. It is recommended that
	// runtime clients of the node reach out to the 0th entry in this map first.
	// Structure is documented below.
	NetworkEndpoints V2VmNetworkEndpointArrayInput
	// The ID of the project in which the resource belongs.
	// If it is not provided, the provider project is used.
	Project pulumi.StringPtrInput
	// The combination of labels configured directly on the resource
	// and default labels configured on the provider.
	PulumiLabels pulumi.StringMapInput
	// The qualified name of the QueuedResource that requested this Node.
	QueuedResource pulumi.StringPtrInput
	// Runtime version for the TPU.
	//
	// ***
	RuntimeVersion pulumi.StringPtrInput
	// The scheduling options for this node.
	// Structure is documented below.
	SchedulingConfig V2VmSchedulingConfigPtrInput
	// The Google Cloud Platform Service Account to be used by the TPU node VMs. If None is
	// specified, the default compute service account will be used.
	// Structure is documented below.
	ServiceAccount V2VmServiceAccountPtrInput
	// Shielded Instance options.
	// Structure is documented below.
	ShieldedInstanceConfig V2VmShieldedInstanceConfigPtrInput
	// The current state for the TPU Node.
	State pulumi.StringPtrInput
	// The Symptoms that have occurred to the TPU Node.
	// Structure is documented below.
	Symptoms V2VmSymptomArrayInput
	// Tags to apply to the TPU Node. Tags are used to identify valid sources or targets for network firewalls.
	Tags pulumi.StringArrayInput
	// The GCP location for the TPU. If it is not provided, the provider zone is used.
	Zone pulumi.StringPtrInput
}

func (V2VmState) ElementType

func (V2VmState) ElementType() reflect.Type

type V2VmSymptom

type V2VmSymptom struct {
	// (Output)
	// Timestamp when the Symptom is created.
	CreateTime *string `pulumi:"createTime"`
	// (Output)
	// Detailed information of the current Symptom.
	Details *string `pulumi:"details"`
	// (Output)
	// Type of the Symptom.
	SymptomType *string `pulumi:"symptomType"`
	// (Output)
	// A string used to uniquely distinguish a worker within a TPU node.
	WorkerId *string `pulumi:"workerId"`
}

type V2VmSymptomArgs

type V2VmSymptomArgs struct {
	// (Output)
	// Timestamp when the Symptom is created.
	CreateTime pulumi.StringPtrInput `pulumi:"createTime"`
	// (Output)
	// Detailed information of the current Symptom.
	Details pulumi.StringPtrInput `pulumi:"details"`
	// (Output)
	// Type of the Symptom.
	SymptomType pulumi.StringPtrInput `pulumi:"symptomType"`
	// (Output)
	// A string used to uniquely distinguish a worker within a TPU node.
	WorkerId pulumi.StringPtrInput `pulumi:"workerId"`
}

func (V2VmSymptomArgs) ElementType

func (V2VmSymptomArgs) ElementType() reflect.Type

func (V2VmSymptomArgs) ToV2VmSymptomOutput

func (i V2VmSymptomArgs) ToV2VmSymptomOutput() V2VmSymptomOutput

func (V2VmSymptomArgs) ToV2VmSymptomOutputWithContext

func (i V2VmSymptomArgs) ToV2VmSymptomOutputWithContext(ctx context.Context) V2VmSymptomOutput

type V2VmSymptomArray

type V2VmSymptomArray []V2VmSymptomInput

func (V2VmSymptomArray) ElementType

func (V2VmSymptomArray) ElementType() reflect.Type

func (V2VmSymptomArray) ToV2VmSymptomArrayOutput

func (i V2VmSymptomArray) ToV2VmSymptomArrayOutput() V2VmSymptomArrayOutput

func (V2VmSymptomArray) ToV2VmSymptomArrayOutputWithContext

func (i V2VmSymptomArray) ToV2VmSymptomArrayOutputWithContext(ctx context.Context) V2VmSymptomArrayOutput

type V2VmSymptomArrayInput

type V2VmSymptomArrayInput interface {
	pulumi.Input

	ToV2VmSymptomArrayOutput() V2VmSymptomArrayOutput
	ToV2VmSymptomArrayOutputWithContext(context.Context) V2VmSymptomArrayOutput
}

V2VmSymptomArrayInput is an input type that accepts V2VmSymptomArray and V2VmSymptomArrayOutput values. You can construct a concrete instance of `V2VmSymptomArrayInput` via:

V2VmSymptomArray{ V2VmSymptomArgs{...} }

type V2VmSymptomArrayOutput

type V2VmSymptomArrayOutput struct{ *pulumi.OutputState }

func (V2VmSymptomArrayOutput) ElementType

func (V2VmSymptomArrayOutput) ElementType() reflect.Type

func (V2VmSymptomArrayOutput) Index

func (V2VmSymptomArrayOutput) ToV2VmSymptomArrayOutput

func (o V2VmSymptomArrayOutput) ToV2VmSymptomArrayOutput() V2VmSymptomArrayOutput

func (V2VmSymptomArrayOutput) ToV2VmSymptomArrayOutputWithContext

func (o V2VmSymptomArrayOutput) ToV2VmSymptomArrayOutputWithContext(ctx context.Context) V2VmSymptomArrayOutput

type V2VmSymptomInput

type V2VmSymptomInput interface {
	pulumi.Input

	ToV2VmSymptomOutput() V2VmSymptomOutput
	ToV2VmSymptomOutputWithContext(context.Context) V2VmSymptomOutput
}

V2VmSymptomInput is an input type that accepts V2VmSymptomArgs and V2VmSymptomOutput values. You can construct a concrete instance of `V2VmSymptomInput` via:

V2VmSymptomArgs{...}

type V2VmSymptomOutput

type V2VmSymptomOutput struct{ *pulumi.OutputState }

func (V2VmSymptomOutput) CreateTime

func (o V2VmSymptomOutput) CreateTime() pulumi.StringPtrOutput

(Output) Timestamp when the Symptom is created.

func (V2VmSymptomOutput) Details

(Output) Detailed information of the current Symptom.

func (V2VmSymptomOutput) ElementType

func (V2VmSymptomOutput) ElementType() reflect.Type

func (V2VmSymptomOutput) SymptomType

func (o V2VmSymptomOutput) SymptomType() pulumi.StringPtrOutput

(Output) Type of the Symptom.

func (V2VmSymptomOutput) ToV2VmSymptomOutput

func (o V2VmSymptomOutput) ToV2VmSymptomOutput() V2VmSymptomOutput

func (V2VmSymptomOutput) ToV2VmSymptomOutputWithContext

func (o V2VmSymptomOutput) ToV2VmSymptomOutputWithContext(ctx context.Context) V2VmSymptomOutput

func (V2VmSymptomOutput) WorkerId

(Output) A string used to uniquely distinguish a worker within a TPU node.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL