1. Registry
  2. Packages
  3. Google Cloud (GCP) Classic
  4. API Docs
  5. vertex
  6. AiPersistentResource
Viewing docs for Google Cloud v9.34.0
published on Monday, Aug 10, 2026 by Pulumi
gcp logo
Viewing docs for Google Cloud v9.34.0
published on Monday, Aug 10, 2026 by Pulumi

    Represents long-lasting resources that are dedicated to users to runs custom workloads. A PersistentResource can have multiple node pools and each node pool can have its own machine spec.

    To get more information about PersistentResource, see:

    Example Usage

    Vertex Ai Persistent Resource

    import * as pulumi from "@pulumi/pulumi";
    import * as gcp from "@pulumi/gcp";
    
    const persistentResource = new gcp.vertex.AiPersistentResource("persistent_resource", {
        name: "example-persistent-resource",
        location: "us-central1",
        displayName: "Example persistent resource",
        resourcePools: [{
            machineSpec: {
                machineType: "n1-standard-4",
            },
            replicaCount: "1",
        }],
    });
    
    import pulumi
    import pulumi_gcp as gcp
    
    persistent_resource = gcp.vertex.AiPersistentResource("persistent_resource",
        name="example-persistent-resource",
        location="us-central1",
        display_name="Example persistent resource",
        resource_pools=[{
            "machine_spec": {
                "machine_type": "n1-standard-4",
            },
            "replica_count": "1",
        }])
    
    package main
    
    import (
    	"github.com/pulumi/pulumi-gcp/sdk/v9/go/gcp/vertex"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		_, err := vertex.NewAiPersistentResource(ctx, "persistent_resource", &vertex.AiPersistentResourceArgs{
    			Name:        pulumi.String("example-persistent-resource"),
    			Location:    pulumi.String("us-central1"),
    			DisplayName: pulumi.String("Example persistent resource"),
    			ResourcePools: vertex.AiPersistentResourceResourcePoolArray{
    				&vertex.AiPersistentResourceResourcePoolArgs{
    					MachineSpec: &vertex.AiPersistentResourceResourcePoolMachineSpecArgs{
    						MachineType: pulumi.String("n1-standard-4"),
    					},
    					ReplicaCount: pulumi.String("1"),
    				},
    			},
    		})
    		if err != nil {
    			return err
    		}
    		return nil
    	})
    }
    
    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using Gcp = Pulumi.Gcp;
    
    return await Deployment.RunAsync(() => 
    {
        var persistentResource = new Gcp.Vertex.AiPersistentResource("persistent_resource", new()
        {
            Name = "example-persistent-resource",
            Location = "us-central1",
            DisplayName = "Example persistent resource",
            ResourcePools = new[]
            {
                new Gcp.Vertex.Inputs.AiPersistentResourceResourcePoolArgs
                {
                    MachineSpec = new Gcp.Vertex.Inputs.AiPersistentResourceResourcePoolMachineSpecArgs
                    {
                        MachineType = "n1-standard-4",
                    },
                    ReplicaCount = "1",
                },
            },
        });
    
    });
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import com.pulumi.gcp.vertex.AiPersistentResource;
    import com.pulumi.gcp.vertex.AiPersistentResourceArgs;
    import com.pulumi.gcp.vertex.inputs.AiPersistentResourceResourcePoolArgs;
    import com.pulumi.gcp.vertex.inputs.AiPersistentResourceResourcePoolMachineSpecArgs;
    import java.util.ArrayList;
    import java.util.Arrays;
    import java.util.Map;
    import java.io.File;
    import java.nio.file.Files;
    import java.nio.file.Paths;
    
    public class App {
        public static void main(String[] args) {
            Pulumi.run(App::stack);
        }
    
        public static void stack(Context ctx) {
            var persistentResource = new AiPersistentResource("persistentResource", AiPersistentResourceArgs.builder()
                .name("example-persistent-resource")
                .location("us-central1")
                .displayName("Example persistent resource")
                .resourcePools(AiPersistentResourceResourcePoolArgs.builder()
                    .machineSpec(AiPersistentResourceResourcePoolMachineSpecArgs.builder()
                        .machineType("n1-standard-4")
                        .build())
                    .replicaCount("1")
                    .build())
                .build());
    
        }
    }
    
    resources:
      persistentResource:
        type: gcp:vertex:AiPersistentResource
        name: persistent_resource
        properties:
          name: example-persistent-resource
          location: us-central1
          displayName: Example persistent resource
          resourcePools:
            - machineSpec:
                machineType: n1-standard-4
              replicaCount: 1
    
    pulumi {
      required_providers {
        gcp = {
          source = "pulumi/gcp"
        }
      }
    }
    
    resource "gcp_vertex_aipersistentresource" "persistent_resource" {
      name         = "example-persistent-resource"
      location     = "us-central1"
      display_name = "Example persistent resource"
      resource_pools {
        machine_spec = {
          machine_type = "n1-standard-4"
        }
        replica_count = 1
      }
    }
    

    Vertex Ai Persistent Resource Autoscaling

    import * as pulumi from "@pulumi/pulumi";
    import * as gcp from "@pulumi/gcp";
    
    const persistentResource = new gcp.vertex.AiPersistentResource("persistent_resource", {
        name: "example-persistent-resource",
        location: "us-central1",
        displayName: "Example persistent resource",
        resourcePools: [{
            machineSpec: {
                machineType: "n1-standard-4",
            },
            replicaCount: "1",
            autoscalingSpec: {
                minReplicaCount: "1",
                maxReplicaCount: "2",
            },
        }],
    });
    
    import pulumi
    import pulumi_gcp as gcp
    
    persistent_resource = gcp.vertex.AiPersistentResource("persistent_resource",
        name="example-persistent-resource",
        location="us-central1",
        display_name="Example persistent resource",
        resource_pools=[{
            "machine_spec": {
                "machine_type": "n1-standard-4",
            },
            "replica_count": "1",
            "autoscaling_spec": {
                "min_replica_count": "1",
                "max_replica_count": "2",
            },
        }])
    
    package main
    
    import (
    	"github.com/pulumi/pulumi-gcp/sdk/v9/go/gcp/vertex"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		_, err := vertex.NewAiPersistentResource(ctx, "persistent_resource", &vertex.AiPersistentResourceArgs{
    			Name:        pulumi.String("example-persistent-resource"),
    			Location:    pulumi.String("us-central1"),
    			DisplayName: pulumi.String("Example persistent resource"),
    			ResourcePools: vertex.AiPersistentResourceResourcePoolArray{
    				&vertex.AiPersistentResourceResourcePoolArgs{
    					MachineSpec: &vertex.AiPersistentResourceResourcePoolMachineSpecArgs{
    						MachineType: pulumi.String("n1-standard-4"),
    					},
    					ReplicaCount: pulumi.String("1"),
    					AutoscalingSpec: &vertex.AiPersistentResourceResourcePoolAutoscalingSpecArgs{
    						MinReplicaCount: pulumi.String("1"),
    						MaxReplicaCount: pulumi.String("2"),
    					},
    				},
    			},
    		})
    		if err != nil {
    			return err
    		}
    		return nil
    	})
    }
    
    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using Gcp = Pulumi.Gcp;
    
    return await Deployment.RunAsync(() => 
    {
        var persistentResource = new Gcp.Vertex.AiPersistentResource("persistent_resource", new()
        {
            Name = "example-persistent-resource",
            Location = "us-central1",
            DisplayName = "Example persistent resource",
            ResourcePools = new[]
            {
                new Gcp.Vertex.Inputs.AiPersistentResourceResourcePoolArgs
                {
                    MachineSpec = new Gcp.Vertex.Inputs.AiPersistentResourceResourcePoolMachineSpecArgs
                    {
                        MachineType = "n1-standard-4",
                    },
                    ReplicaCount = "1",
                    AutoscalingSpec = new Gcp.Vertex.Inputs.AiPersistentResourceResourcePoolAutoscalingSpecArgs
                    {
                        MinReplicaCount = "1",
                        MaxReplicaCount = "2",
                    },
                },
            },
        });
    
    });
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import com.pulumi.gcp.vertex.AiPersistentResource;
    import com.pulumi.gcp.vertex.AiPersistentResourceArgs;
    import com.pulumi.gcp.vertex.inputs.AiPersistentResourceResourcePoolArgs;
    import com.pulumi.gcp.vertex.inputs.AiPersistentResourceResourcePoolMachineSpecArgs;
    import com.pulumi.gcp.vertex.inputs.AiPersistentResourceResourcePoolAutoscalingSpecArgs;
    import java.util.ArrayList;
    import java.util.Arrays;
    import java.util.Map;
    import java.io.File;
    import java.nio.file.Files;
    import java.nio.file.Paths;
    
    public class App {
        public static void main(String[] args) {
            Pulumi.run(App::stack);
        }
    
        public static void stack(Context ctx) {
            var persistentResource = new AiPersistentResource("persistentResource", AiPersistentResourceArgs.builder()
                .name("example-persistent-resource")
                .location("us-central1")
                .displayName("Example persistent resource")
                .resourcePools(AiPersistentResourceResourcePoolArgs.builder()
                    .machineSpec(AiPersistentResourceResourcePoolMachineSpecArgs.builder()
                        .machineType("n1-standard-4")
                        .build())
                    .replicaCount("1")
                    .autoscalingSpec(AiPersistentResourceResourcePoolAutoscalingSpecArgs.builder()
                        .minReplicaCount("1")
                        .maxReplicaCount("2")
                        .build())
                    .build())
                .build());
    
        }
    }
    
    resources:
      persistentResource:
        type: gcp:vertex:AiPersistentResource
        name: persistent_resource
        properties:
          name: example-persistent-resource
          location: us-central1
          displayName: Example persistent resource
          resourcePools:
            - machineSpec:
                machineType: n1-standard-4
              replicaCount: 1
              autoscalingSpec:
                minReplicaCount: 1
                maxReplicaCount: 2
    
    pulumi {
      required_providers {
        gcp = {
          source = "pulumi/gcp"
        }
      }
    }
    
    resource "gcp_vertex_aipersistentresource" "persistent_resource" {
      name         = "example-persistent-resource"
      location     = "us-central1"
      display_name = "Example persistent resource"
      resource_pools {
        machine_spec = {
          machine_type = "n1-standard-4"
        }
        replica_count = 1
        autoscaling_spec = {
          min_replica_count = 1
          max_replica_count = 2
        }
      }
    }
    

    Vertex Ai Persistent Resource Machine Spec

    import * as pulumi from "@pulumi/pulumi";
    import * as gcp from "@pulumi/gcp";
    
    const persistentResource = new gcp.vertex.AiPersistentResource("persistent_resource", {
        name: "example-persistent-resource",
        location: "us-central1",
        resourcePools: [{
            machineSpec: {
                machineType: "a3-highgpu-8g",
                acceleratorCount: 8,
                acceleratorType: "NVIDIA_H100_80GB",
            },
            replicaCount: "1",
            diskSpec: {
                bootDiskSizeGb: 200,
                bootDiskType: "pd-ssd",
            },
        }],
    });
    
    import pulumi
    import pulumi_gcp as gcp
    
    persistent_resource = gcp.vertex.AiPersistentResource("persistent_resource",
        name="example-persistent-resource",
        location="us-central1",
        resource_pools=[{
            "machine_spec": {
                "machine_type": "a3-highgpu-8g",
                "accelerator_count": 8,
                "accelerator_type": "NVIDIA_H100_80GB",
            },
            "replica_count": "1",
            "disk_spec": {
                "boot_disk_size_gb": 200,
                "boot_disk_type": "pd-ssd",
            },
        }])
    
    package main
    
    import (
    	"github.com/pulumi/pulumi-gcp/sdk/v9/go/gcp/vertex"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		_, err := vertex.NewAiPersistentResource(ctx, "persistent_resource", &vertex.AiPersistentResourceArgs{
    			Name:     pulumi.String("example-persistent-resource"),
    			Location: pulumi.String("us-central1"),
    			ResourcePools: vertex.AiPersistentResourceResourcePoolArray{
    				&vertex.AiPersistentResourceResourcePoolArgs{
    					MachineSpec: &vertex.AiPersistentResourceResourcePoolMachineSpecArgs{
    						MachineType:      pulumi.String("a3-highgpu-8g"),
    						AcceleratorCount: pulumi.Int(8),
    						AcceleratorType:  pulumi.String("NVIDIA_H100_80GB"),
    					},
    					ReplicaCount: pulumi.String("1"),
    					DiskSpec: &vertex.AiPersistentResourceResourcePoolDiskSpecArgs{
    						BootDiskSizeGb: pulumi.Int(200),
    						BootDiskType:   pulumi.String("pd-ssd"),
    					},
    				},
    			},
    		})
    		if err != nil {
    			return err
    		}
    		return nil
    	})
    }
    
    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using Gcp = Pulumi.Gcp;
    
    return await Deployment.RunAsync(() => 
    {
        var persistentResource = new Gcp.Vertex.AiPersistentResource("persistent_resource", new()
        {
            Name = "example-persistent-resource",
            Location = "us-central1",
            ResourcePools = new[]
            {
                new Gcp.Vertex.Inputs.AiPersistentResourceResourcePoolArgs
                {
                    MachineSpec = new Gcp.Vertex.Inputs.AiPersistentResourceResourcePoolMachineSpecArgs
                    {
                        MachineType = "a3-highgpu-8g",
                        AcceleratorCount = 8,
                        AcceleratorType = "NVIDIA_H100_80GB",
                    },
                    ReplicaCount = "1",
                    DiskSpec = new Gcp.Vertex.Inputs.AiPersistentResourceResourcePoolDiskSpecArgs
                    {
                        BootDiskSizeGb = 200,
                        BootDiskType = "pd-ssd",
                    },
                },
            },
        });
    
    });
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import com.pulumi.gcp.vertex.AiPersistentResource;
    import com.pulumi.gcp.vertex.AiPersistentResourceArgs;
    import com.pulumi.gcp.vertex.inputs.AiPersistentResourceResourcePoolArgs;
    import com.pulumi.gcp.vertex.inputs.AiPersistentResourceResourcePoolMachineSpecArgs;
    import com.pulumi.gcp.vertex.inputs.AiPersistentResourceResourcePoolDiskSpecArgs;
    import java.util.ArrayList;
    import java.util.Arrays;
    import java.util.Map;
    import java.io.File;
    import java.nio.file.Files;
    import java.nio.file.Paths;
    
    public class App {
        public static void main(String[] args) {
            Pulumi.run(App::stack);
        }
    
        public static void stack(Context ctx) {
            var persistentResource = new AiPersistentResource("persistentResource", AiPersistentResourceArgs.builder()
                .name("example-persistent-resource")
                .location("us-central1")
                .resourcePools(AiPersistentResourceResourcePoolArgs.builder()
                    .machineSpec(AiPersistentResourceResourcePoolMachineSpecArgs.builder()
                        .machineType("a3-highgpu-8g")
                        .acceleratorCount(8)
                        .acceleratorType("NVIDIA_H100_80GB")
                        .build())
                    .replicaCount("1")
                    .diskSpec(AiPersistentResourceResourcePoolDiskSpecArgs.builder()
                        .bootDiskSizeGb(200)
                        .bootDiskType("pd-ssd")
                        .build())
                    .build())
                .build());
    
        }
    }
    
    resources:
      persistentResource:
        type: gcp:vertex:AiPersistentResource
        name: persistent_resource
        properties:
          name: example-persistent-resource
          location: us-central1
          resourcePools:
            - machineSpec:
                machineType: a3-highgpu-8g
                acceleratorCount: 8
                acceleratorType: NVIDIA_H100_80GB
              replicaCount: '1'
              diskSpec:
                bootDiskSizeGb: 200
                bootDiskType: pd-ssd
    
    pulumi {
      required_providers {
        gcp = {
          source = "pulumi/gcp"
        }
      }
    }
    
    resource "gcp_vertex_aipersistentresource" "persistent_resource" {
      name     = "example-persistent-resource"
      location = "us-central1"
      resource_pools {
        machine_spec = {
          machine_type      = "a3-highgpu-8g"
          accelerator_count = 8
          accelerator_type  = "NVIDIA_H100_80GB"
        }
        replica_count = "1"
        disk_spec = {
          boot_disk_size_gb = 200
          boot_disk_type    = "pd-ssd"
        }
      }
    }
    

    Vertex Ai Persistent Resource Network

    import * as pulumi from "@pulumi/pulumi";
    import * as gcp from "@pulumi/gcp";
    import * as time from "@pulumiverse/time";
    
    // VPC network for Vertex AI peering
    const vertexNetwork = new gcp.compute.Network("vertex_network", {
        name: "vertex-network",
        autoCreateSubnetworks: false,
    });
    // Reserved IP range for Vertex AI peering
    const vertexRange = new gcp.compute.GlobalAddress("vertex_range", {
        name: "vertex-ip-range",
        purpose: "VPC_PEERING",
        addressType: "INTERNAL",
        prefixLength: 24,
        network: vertexNetwork.id,
    });
    // Service networking connection for Vertex AI
    const vertexVpcConnection = new gcp.servicenetworking.Connection("vertex_vpc_connection", {
        network: vertexNetwork.id,
        service: "servicenetworking.googleapis.com",
        reservedPeeringRanges: [vertexRange.name],
    });
    // Subnetwork for the network attachment
    const pscSubnetwork = new gcp.compute.Subnetwork("psc_subnetwork", {
        name: "psc-subnetwork",
        region: "us-central1",
        ipCidrRange: "10.0.0.0/16",
        network: vertexNetwork.id,
    });
    // Network attachment for PSC-I
    const pscAttachment = new gcp.compute.NetworkAttachment("psc_attachment", {
        name: "psc-attachment",
        region: "us-central1",
        connectionPreference: "ACCEPT_MANUAL",
        subnetworks: [pscSubnetwork.id],
    });
    const waitForDeletion = new time.Sleep("wait_for_deletion", {destroyDuration: "300s"}, {
        dependsOn: [
            pscAttachment,
            vertexVpcConnection,
        ],
    });
    const project = gcp.organizations.getProject({});
    // Grant Vertex AI service agent access to the KMS key
    const cryptoKey = new gcp.kms.CryptoKeyIAMMember("crypto_key", {
        cryptoKeyId: "example-key",
        role: "roles/cloudkms.cryptoKeyEncrypterDecrypter",
        member: project.then(project => `serviceAccount:service-${project.number}@gcp-sa-aiplatform.iam.gserviceaccount.com`),
    });
    const persistentResource = new gcp.vertex.AiPersistentResource("persistent_resource", {
        name: "example-persistent-resource",
        location: "us-central1",
        displayName: "test-persistent-resource-full",
        labels: {
            env: "test",
        },
        network: pulumi.all([project, vertexNetwork.name]).apply(([project, name]) => `projects/${project.number}/global/networks/${name}`),
        reservedIpRanges: [vertexRange.name],
        encryptionSpec: {
            kmsKeyName: "example-key",
        },
        pscInterfaceConfig: {
            networkAttachment: pscAttachment.id,
            dnsPeeringConfigs: [{
                domain: "example.com.",
                targetProject: project.then(project => project.projectId),
                targetNetwork: vertexNetwork.name,
            }],
        },
        resourcePools: [{
            id: "vpr-resource-pool",
            replicaCount: "1",
            machineSpec: {
                machineType: "n1-standard-4",
            },
            diskSpec: {
                bootDiskSizeGb: 200,
                bootDiskType: "pd-ssd",
            },
        }],
        resourceRuntimeSpec: {
            serviceAccountSpec: {
                enableCustomServiceAccount: true,
            },
        },
    }, {
        dependsOn: [
            vertexVpcConnection,
            cryptoKey,
            waitForDeletion,
        ],
    });
    
    import pulumi
    import pulumi_gcp as gcp
    import pulumiverse_time as time
    
    # VPC network for Vertex AI peering
    vertex_network = gcp.compute.Network("vertex_network",
        name="vertex-network",
        auto_create_subnetworks=False)
    # Reserved IP range for Vertex AI peering
    vertex_range = gcp.compute.GlobalAddress("vertex_range",
        name="vertex-ip-range",
        purpose="VPC_PEERING",
        address_type="INTERNAL",
        prefix_length=24,
        network=vertex_network.id)
    # Service networking connection for Vertex AI
    vertex_vpc_connection = gcp.servicenetworking.Connection("vertex_vpc_connection",
        network=vertex_network.id,
        service="servicenetworking.googleapis.com",
        reserved_peering_ranges=[vertex_range.name])
    # Subnetwork for the network attachment
    psc_subnetwork = gcp.compute.Subnetwork("psc_subnetwork",
        name="psc-subnetwork",
        region="us-central1",
        ip_cidr_range="10.0.0.0/16",
        network=vertex_network.id)
    # Network attachment for PSC-I
    psc_attachment = gcp.compute.NetworkAttachment("psc_attachment",
        name="psc-attachment",
        region="us-central1",
        connection_preference="ACCEPT_MANUAL",
        subnetworks=[psc_subnetwork.id])
    wait_for_deletion = time.Sleep("wait_for_deletion", destroy_duration="300s",
    opts = pulumi.ResourceOptions(depends_on=[
            psc_attachment,
            vertex_vpc_connection,
        ]))
    project = gcp.organizations.get_project()
    # Grant Vertex AI service agent access to the KMS key
    crypto_key = gcp.kms.CryptoKeyIAMMember("crypto_key",
        crypto_key_id="example-key",
        role="roles/cloudkms.cryptoKeyEncrypterDecrypter",
        member=f"serviceAccount:service-{project.number}@gcp-sa-aiplatform.iam.gserviceaccount.com")
    persistent_resource = gcp.vertex.AiPersistentResource("persistent_resource",
        name="example-persistent-resource",
        location="us-central1",
        display_name="test-persistent-resource-full",
        labels={
            "env": "test",
        },
        network=vertex_network.name.apply(lambda name: f"projects/{project.number}/global/networks/{name}"),
        reserved_ip_ranges=[vertex_range.name],
        encryption_spec={
            "kms_key_name": "example-key",
        },
        psc_interface_config={
            "network_attachment": psc_attachment.id,
            "dns_peering_configs": [{
                "domain": "example.com.",
                "target_project": project.project_id,
                "target_network": vertex_network.name,
            }],
        },
        resource_pools=[{
            "id": "vpr-resource-pool",
            "replica_count": "1",
            "machine_spec": {
                "machine_type": "n1-standard-4",
            },
            "disk_spec": {
                "boot_disk_size_gb": 200,
                "boot_disk_type": "pd-ssd",
            },
        }],
        resource_runtime_spec={
            "service_account_spec": {
                "enable_custom_service_account": True,
            },
        },
        opts = pulumi.ResourceOptions(depends_on=[
                vertex_vpc_connection,
                crypto_key,
                wait_for_deletion,
            ]))
    
    package main
    
    import (
    	"fmt"
    
    	"github.com/pulumi/pulumi-gcp/sdk/v9/go/gcp/compute"
    	"github.com/pulumi/pulumi-gcp/sdk/v9/go/gcp/kms"
    	"github.com/pulumi/pulumi-gcp/sdk/v9/go/gcp/organizations"
    	"github.com/pulumi/pulumi-gcp/sdk/v9/go/gcp/servicenetworking"
    	"github.com/pulumi/pulumi-gcp/sdk/v9/go/gcp/vertex"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    	"github.com/pulumiverse/pulumi-time/sdk/go/time"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		// VPC network for Vertex AI peering
    		vertexNetwork, err := compute.NewNetwork(ctx, "vertex_network", &compute.NetworkArgs{
    			Name:                  pulumi.String("vertex-network"),
    			AutoCreateSubnetworks: pulumi.Bool(false),
    		})
    		if err != nil {
    			return err
    		}
    		// Reserved IP range for Vertex AI peering
    		vertexRange, err := compute.NewGlobalAddress(ctx, "vertex_range", &compute.GlobalAddressArgs{
    			Name:         pulumi.String("vertex-ip-range"),
    			Purpose:      pulumi.String("VPC_PEERING"),
    			AddressType:  pulumi.String("INTERNAL"),
    			PrefixLength: pulumi.Int(24),
    			Network:      vertexNetwork.ID().ToIDOutput().ToStringOutput(),
    		})
    		if err != nil {
    			return err
    		}
    		// Service networking connection for Vertex AI
    		vertexVpcConnection, err := servicenetworking.NewConnection(ctx, "vertex_vpc_connection", &servicenetworking.ConnectionArgs{
    			Network: vertexNetwork.ID().ToIDOutput().ToStringOutput(),
    			Service: pulumi.String("servicenetworking.googleapis.com"),
    			ReservedPeeringRanges: pulumi.StringArray{
    				vertexRange.Name,
    			},
    		})
    		if err != nil {
    			return err
    		}
    		// Subnetwork for the network attachment
    		pscSubnetwork, err := compute.NewSubnetwork(ctx, "psc_subnetwork", &compute.SubnetworkArgs{
    			Name:        pulumi.String("psc-subnetwork"),
    			Region:      pulumi.String("us-central1"),
    			IpCidrRange: pulumi.String("10.0.0.0/16"),
    			Network:     vertexNetwork.ID().ToIDOutput().ToStringOutput(),
    		})
    		if err != nil {
    			return err
    		}
    		// Network attachment for PSC-I
    		pscAttachment, err := compute.NewNetworkAttachment(ctx, "psc_attachment", &compute.NetworkAttachmentArgs{
    			Name:                 pulumi.String("psc-attachment"),
    			Region:               pulumi.String("us-central1"),
    			ConnectionPreference: pulumi.String("ACCEPT_MANUAL"),
    			Subnetworks: pulumi.StringArray{
    				pscSubnetwork.ID().ToIDOutput().ToStringOutput(),
    			},
    		})
    		if err != nil {
    			return err
    		}
    		waitForDeletion, err := time.NewSleep(ctx, "wait_for_deletion", &time.SleepArgs{
    			DestroyDuration: pulumi.String("300s"),
    		}, pulumi.DependsOn([]pulumi.Resource{
    			pscAttachment,
    			vertexVpcConnection,
    		}))
    		if err != nil {
    			return err
    		}
    		project, err := organizations.LookupProject(ctx, &organizations.LookupProjectArgs{}, nil)
    		if err != nil {
    			return err
    		}
    		// Grant Vertex AI service agent access to the KMS key
    		cryptoKey, err := kms.NewCryptoKeyIAMMember(ctx, "crypto_key", &kms.CryptoKeyIAMMemberArgs{
    			CryptoKeyId: pulumi.String("example-key"),
    			Role:        pulumi.String("roles/cloudkms.cryptoKeyEncrypterDecrypter"),
    			Member:      pulumi.Sprintf("serviceAccount:service-%v@gcp-sa-aiplatform.iam.gserviceaccount.com", project.Number),
    		})
    		if err != nil {
    			return err
    		}
    		_, err = vertex.NewAiPersistentResource(ctx, "persistent_resource", &vertex.AiPersistentResourceArgs{
    			Name:        pulumi.String("example-persistent-resource"),
    			Location:    pulumi.String("us-central1"),
    			DisplayName: pulumi.String("test-persistent-resource-full"),
    			Labels: pulumi.StringMap{
    				"env": pulumi.String("test"),
    			},
    			Network: vertexNetwork.Name.ApplyT(func(name string) (string, error) {
    				return fmt.Sprintf("projects/%v/global/networks/%v", project.Number, name), nil
    			}).(pulumi.StringOutput),
    			ReservedIpRanges: pulumi.StringArray{
    				vertexRange.Name,
    			},
    			EncryptionSpec: &vertex.AiPersistentResourceEncryptionSpecArgs{
    				KmsKeyName: pulumi.String("example-key"),
    			},
    			PscInterfaceConfig: &vertex.AiPersistentResourcePscInterfaceConfigArgs{
    				NetworkAttachment: pscAttachment.ID().ToIDOutput().ToStringOutput(),
    				DnsPeeringConfigs: vertex.AiPersistentResourcePscInterfaceConfigDnsPeeringConfigArray{
    					&vertex.AiPersistentResourcePscInterfaceConfigDnsPeeringConfigArgs{
    						Domain:        pulumi.String("example.com."),
    						TargetProject: pulumi.String(project.ProjectId),
    						TargetNetwork: vertexNetwork.Name,
    					},
    				},
    			},
    			ResourcePools: vertex.AiPersistentResourceResourcePoolArray{
    				&vertex.AiPersistentResourceResourcePoolArgs{
    					Id:           pulumi.String("vpr-resource-pool"),
    					ReplicaCount: pulumi.String("1"),
    					MachineSpec: &vertex.AiPersistentResourceResourcePoolMachineSpecArgs{
    						MachineType: pulumi.String("n1-standard-4"),
    					},
    					DiskSpec: &vertex.AiPersistentResourceResourcePoolDiskSpecArgs{
    						BootDiskSizeGb: pulumi.Int(200),
    						BootDiskType:   pulumi.String("pd-ssd"),
    					},
    				},
    			},
    			ResourceRuntimeSpec: &vertex.AiPersistentResourceResourceRuntimeSpecArgs{
    				ServiceAccountSpec: &vertex.AiPersistentResourceResourceRuntimeSpecServiceAccountSpecArgs{
    					EnableCustomServiceAccount: pulumi.Bool(true),
    				},
    			},
    		}, pulumi.DependsOn([]pulumi.Resource{
    			vertexVpcConnection,
    			cryptoKey,
    			waitForDeletion,
    		}))
    		if err != nil {
    			return err
    		}
    		return nil
    	})
    }
    
    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using Gcp = Pulumi.Gcp;
    using Time = Pulumiverse.Time;
    
    return await Deployment.RunAsync(() => 
    {
        // VPC network for Vertex AI peering
        var vertexNetwork = new Gcp.Compute.Network("vertex_network", new()
        {
            Name = "vertex-network",
            AutoCreateSubnetworks = false,
        });
    
        // Reserved IP range for Vertex AI peering
        var vertexRange = new Gcp.Compute.GlobalAddress("vertex_range", new()
        {
            Name = "vertex-ip-range",
            Purpose = "VPC_PEERING",
            AddressType = "INTERNAL",
            PrefixLength = 24,
            Network = vertexNetwork.Id,
        });
    
        // Service networking connection for Vertex AI
        var vertexVpcConnection = new Gcp.ServiceNetworking.Connection("vertex_vpc_connection", new()
        {
            Network = vertexNetwork.Id,
            Service = "servicenetworking.googleapis.com",
            ReservedPeeringRanges = new[]
            {
                vertexRange.Name,
            },
        });
    
        // Subnetwork for the network attachment
        var pscSubnetwork = new Gcp.Compute.Subnetwork("psc_subnetwork", new()
        {
            Name = "psc-subnetwork",
            Region = "us-central1",
            IpCidrRange = "10.0.0.0/16",
            Network = vertexNetwork.Id,
        });
    
        // Network attachment for PSC-I
        var pscAttachment = new Gcp.Compute.NetworkAttachment("psc_attachment", new()
        {
            Name = "psc-attachment",
            Region = "us-central1",
            ConnectionPreference = "ACCEPT_MANUAL",
            Subnetworks = new[]
            {
                pscSubnetwork.Id,
            },
        });
    
        var waitForDeletion = new Time.Sleep("wait_for_deletion", new()
        {
            DestroyDuration = "300s",
        }, new CustomResourceOptions
        {
            DependsOn =
            {
                pscAttachment,
                vertexVpcConnection,
            },
        });
    
        var project = Gcp.Organizations.GetProject.Invoke();
    
        // Grant Vertex AI service agent access to the KMS key
        var cryptoKey = new Gcp.Kms.CryptoKeyIAMMember("crypto_key", new()
        {
            CryptoKeyId = "example-key",
            Role = "roles/cloudkms.cryptoKeyEncrypterDecrypter",
            Member = $"serviceAccount:service-{project.Apply(getProjectResult => getProjectResult.Number)}@gcp-sa-aiplatform.iam.gserviceaccount.com",
        });
    
        var persistentResource = new Gcp.Vertex.AiPersistentResource("persistent_resource", new()
        {
            Name = "example-persistent-resource",
            Location = "us-central1",
            DisplayName = "test-persistent-resource-full",
            Labels = 
            {
                { "env", "test" },
            },
            Network = Output.Tuple(project, vertexNetwork.Name).Apply(values =>
            {
                var project = values.Item1;
                var name = values.Item2;
                return $"projects/{project.Apply(getProjectResult => getProjectResult.Number)}/global/networks/{name}";
            }),
            ReservedIpRanges = new[]
            {
                vertexRange.Name,
            },
            EncryptionSpec = new Gcp.Vertex.Inputs.AiPersistentResourceEncryptionSpecArgs
            {
                KmsKeyName = "example-key",
            },
            PscInterfaceConfig = new Gcp.Vertex.Inputs.AiPersistentResourcePscInterfaceConfigArgs
            {
                NetworkAttachment = pscAttachment.Id,
                DnsPeeringConfigs = new[]
                {
                    new Gcp.Vertex.Inputs.AiPersistentResourcePscInterfaceConfigDnsPeeringConfigArgs
                    {
                        Domain = "example.com.",
                        TargetProject = project.Apply(getProjectResult => getProjectResult.ProjectId),
                        TargetNetwork = vertexNetwork.Name,
                    },
                },
            },
            ResourcePools = new[]
            {
                new Gcp.Vertex.Inputs.AiPersistentResourceResourcePoolArgs
                {
                    Id = "vpr-resource-pool",
                    ReplicaCount = "1",
                    MachineSpec = new Gcp.Vertex.Inputs.AiPersistentResourceResourcePoolMachineSpecArgs
                    {
                        MachineType = "n1-standard-4",
                    },
                    DiskSpec = new Gcp.Vertex.Inputs.AiPersistentResourceResourcePoolDiskSpecArgs
                    {
                        BootDiskSizeGb = 200,
                        BootDiskType = "pd-ssd",
                    },
                },
            },
            ResourceRuntimeSpec = new Gcp.Vertex.Inputs.AiPersistentResourceResourceRuntimeSpecArgs
            {
                ServiceAccountSpec = new Gcp.Vertex.Inputs.AiPersistentResourceResourceRuntimeSpecServiceAccountSpecArgs
                {
                    EnableCustomServiceAccount = true,
                },
            },
        }, new CustomResourceOptions
        {
            DependsOn =
            {
                vertexVpcConnection,
                cryptoKey,
                waitForDeletion,
            },
        });
    
    });
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import com.pulumi.gcp.compute.Network;
    import com.pulumi.gcp.compute.NetworkArgs;
    import com.pulumi.gcp.compute.GlobalAddress;
    import com.pulumi.gcp.compute.GlobalAddressArgs;
    import com.pulumi.gcp.servicenetworking.Connection;
    import com.pulumi.gcp.servicenetworking.ConnectionArgs;
    import com.pulumi.gcp.compute.Subnetwork;
    import com.pulumi.gcp.compute.SubnetworkArgs;
    import com.pulumi.gcp.compute.NetworkAttachment;
    import com.pulumi.gcp.compute.NetworkAttachmentArgs;
    import com.pulumiverse.time.Sleep;
    import com.pulumiverse.time.SleepArgs;
    import com.pulumi.gcp.organizations.OrganizationsFunctions;
    import com.pulumi.gcp.organizations.inputs.GetProjectArgs;
    import com.pulumi.gcp.kms.CryptoKeyIAMMember;
    import com.pulumi.gcp.kms.CryptoKeyIAMMemberArgs;
    import com.pulumi.gcp.vertex.AiPersistentResource;
    import com.pulumi.gcp.vertex.AiPersistentResourceArgs;
    import com.pulumi.gcp.vertex.inputs.AiPersistentResourceEncryptionSpecArgs;
    import com.pulumi.gcp.vertex.inputs.AiPersistentResourcePscInterfaceConfigArgs;
    import com.pulumi.gcp.vertex.inputs.AiPersistentResourcePscInterfaceConfigDnsPeeringConfigArgs;
    import com.pulumi.gcp.vertex.inputs.AiPersistentResourceResourcePoolArgs;
    import com.pulumi.gcp.vertex.inputs.AiPersistentResourceResourcePoolMachineSpecArgs;
    import com.pulumi.gcp.vertex.inputs.AiPersistentResourceResourcePoolDiskSpecArgs;
    import com.pulumi.gcp.vertex.inputs.AiPersistentResourceResourceRuntimeSpecArgs;
    import com.pulumi.gcp.vertex.inputs.AiPersistentResourceResourceRuntimeSpecServiceAccountSpecArgs;
    import com.pulumi.resources.CustomResourceOptions;
    import java.util.ArrayList;
    import java.util.Arrays;
    import java.util.Map;
    import java.io.File;
    import java.nio.file.Files;
    import java.nio.file.Paths;
    
    public class App {
        public static void main(String[] args) {
            Pulumi.run(App::stack);
        }
    
        public static void stack(Context ctx) {
            // VPC network for Vertex AI peering
            var vertexNetwork = new Network("vertexNetwork", NetworkArgs.builder()
                .name("vertex-network")
                .autoCreateSubnetworks(false)
                .build());
    
            // Reserved IP range for Vertex AI peering
            var vertexRange = new GlobalAddress("vertexRange", GlobalAddressArgs.builder()
                .name("vertex-ip-range")
                .purpose("VPC_PEERING")
                .addressType("INTERNAL")
                .prefixLength(24)
                .network(vertexNetwork.id())
                .build());
    
            // Service networking connection for Vertex AI
            var vertexVpcConnection = new Connection("vertexVpcConnection", ConnectionArgs.builder()
                .network(vertexNetwork.id())
                .service("servicenetworking.googleapis.com")
                .reservedPeeringRanges(vertexRange.name())
                .build());
    
            // Subnetwork for the network attachment
            var pscSubnetwork = new Subnetwork("pscSubnetwork", SubnetworkArgs.builder()
                .name("psc-subnetwork")
                .region("us-central1")
                .ipCidrRange("10.0.0.0/16")
                .network(vertexNetwork.id())
                .build());
    
            // Network attachment for PSC-I
            var pscAttachment = new NetworkAttachment("pscAttachment", NetworkAttachmentArgs.builder()
                .name("psc-attachment")
                .region("us-central1")
                .connectionPreference("ACCEPT_MANUAL")
                .subnetworks(pscSubnetwork.id())
                .build());
    
            var waitForDeletion = new Sleep("waitForDeletion", SleepArgs.builder()
                .destroyDuration("300s")
                .build(), CustomResourceOptions.builder()
                    .dependsOn(                
                        pscAttachment,
                        vertexVpcConnection)
                    .build());
    
            final var project = OrganizationsFunctions.getProject(GetProjectArgs.builder()
                .build());
    
            // Grant Vertex AI service agent access to the KMS key
            var cryptoKey = new CryptoKeyIAMMember("cryptoKey", CryptoKeyIAMMemberArgs.builder()
                .cryptoKeyId("example-key")
                .role("roles/cloudkms.cryptoKeyEncrypterDecrypter")
                .member(String.format("serviceAccount:service-%s@gcp-sa-aiplatform.iam.gserviceaccount.com", project.number()))
                .build());
    
            var persistentResource = new AiPersistentResource("persistentResource", AiPersistentResourceArgs.builder()
                .name("example-persistent-resource")
                .location("us-central1")
                .displayName("test-persistent-resource-full")
                .labels(Map.of("env", "test"))
                .network(vertexNetwork.name().applyValue(_name -> String.format("projects/%s/global/networks/%s", project.number(),_name)))
                .reservedIpRanges(vertexRange.name())
                .encryptionSpec(AiPersistentResourceEncryptionSpecArgs.builder()
                    .kmsKeyName("example-key")
                    .build())
                .pscInterfaceConfig(AiPersistentResourcePscInterfaceConfigArgs.builder()
                    .networkAttachment(pscAttachment.id())
                    .dnsPeeringConfigs(AiPersistentResourcePscInterfaceConfigDnsPeeringConfigArgs.builder()
                        .domain("example.com.")
                        .targetProject(project.projectId())
                        .targetNetwork(vertexNetwork.name())
                        .build())
                    .build())
                .resourcePools(AiPersistentResourceResourcePoolArgs.builder()
                    .id("vpr-resource-pool")
                    .replicaCount("1")
                    .machineSpec(AiPersistentResourceResourcePoolMachineSpecArgs.builder()
                        .machineType("n1-standard-4")
                        .build())
                    .diskSpec(AiPersistentResourceResourcePoolDiskSpecArgs.builder()
                        .bootDiskSizeGb(200)
                        .bootDiskType("pd-ssd")
                        .build())
                    .build())
                .resourceRuntimeSpec(AiPersistentResourceResourceRuntimeSpecArgs.builder()
                    .serviceAccountSpec(AiPersistentResourceResourceRuntimeSpecServiceAccountSpecArgs.builder()
                        .enableCustomServiceAccount(true)
                        .build())
                    .build())
                .build(), CustomResourceOptions.builder()
                    .dependsOn(                
                        vertexVpcConnection,
                        cryptoKey,
                        waitForDeletion)
                    .build());
    
        }
    }
    
    resources:
      persistentResource:
        type: gcp:vertex:AiPersistentResource
        name: persistent_resource
        properties:
          name: example-persistent-resource
          location: us-central1
          displayName: test-persistent-resource-full
          labels:
            env: test
          network: projects/${project.number}/global/networks/${vertexNetwork.name}
          reservedIpRanges:
            - ${vertexRange.name}
          encryptionSpec:
            kmsKeyName: example-key
          pscInterfaceConfig:
            networkAttachment: ${pscAttachment.id}
            dnsPeeringConfigs:
              - domain: example.com.
                targetProject: ${project.projectId}
                targetNetwork: ${vertexNetwork.name}
          resourcePools:
            - id: vpr-resource-pool
              replicaCount: '1'
              machineSpec:
                machineType: n1-standard-4
              diskSpec:
                bootDiskSizeGb: 200
                bootDiskType: pd-ssd
          resourceRuntimeSpec:
            serviceAccountSpec:
              enableCustomServiceAccount: true
        options:
          dependsOn:
            - ${vertexVpcConnection}
            - ${cryptoKey}
            - ${waitForDeletion}
      # VPC network for Vertex AI peering
      vertexNetwork:
        type: gcp:compute:Network
        name: vertex_network
        properties:
          name: vertex-network
          autoCreateSubnetworks: false
      # Service networking connection for Vertex AI
      vertexVpcConnection:
        type: gcp:servicenetworking:Connection
        name: vertex_vpc_connection
        properties:
          network: ${vertexNetwork.id}
          service: servicenetworking.googleapis.com
          reservedPeeringRanges:
            - ${vertexRange.name}
      # Reserved IP range for Vertex AI peering
      vertexRange:
        type: gcp:compute:GlobalAddress
        name: vertex_range
        properties:
          name: vertex-ip-range
          purpose: VPC_PEERING
          addressType: INTERNAL
          prefixLength: 24
          network: ${vertexNetwork.id}
      waitForDeletion:
        type: time:Sleep
        name: wait_for_deletion
        properties:
          destroyDuration: 300s
        options:
          dependsOn:
            - ${pscAttachment}
            - ${vertexVpcConnection}
      # Network attachment for PSC-I
      pscAttachment:
        type: gcp:compute:NetworkAttachment
        name: psc_attachment
        properties:
          name: psc-attachment
          region: us-central1
          connectionPreference: ACCEPT_MANUAL
          subnetworks:
            - ${pscSubnetwork.id}
      # Subnetwork for the network attachment
      pscSubnetwork:
        type: gcp:compute:Subnetwork
        name: psc_subnetwork
        properties:
          name: psc-subnetwork
          region: us-central1
          ipCidrRange: 10.0.0.0/16
          network: ${vertexNetwork.id}
      # Grant Vertex AI service agent access to the KMS key
      cryptoKey:
        type: gcp:kms:CryptoKeyIAMMember
        name: crypto_key
        properties:
          cryptoKeyId: example-key
          role: roles/cloudkms.cryptoKeyEncrypterDecrypter
          member: serviceAccount:service-${project.number}@gcp-sa-aiplatform.iam.gserviceaccount.com
    variables:
      project:
        fn::invoke:
          function: gcp:organizations:getProject
          arguments: {}
    
    pulumi {
      required_providers {
        gcp = {
          source = "pulumi/gcp"
        }
        time = {
          source = "pulumi/time"
        }
      }
    }
    
    data "gcp_organizations_getproject" "project" {
    }
    
    resource "gcp_vertex_aipersistentresource" "persistent_resource" {
      depends_on   = [gcp_servicenetworking_connection.vertex_vpc_connection, gcp_kms_cryptokeyiammember.crypto_key, time_sleep.wait_for_deletion]
      name         = "example-persistent-resource"
      location     = "us-central1"
      display_name = "test-persistent-resource-full"
      labels = {
        "env" = "test"
      }
      network            ="projects/${data.gcp_organizations_getproject.project.number}/global/networks/${gcp_compute_network.vertex_network.name}"
      reserved_ip_ranges = [gcp_compute_globaladdress.vertex_range.name]
      encryption_spec = {
        kms_key_name = "example-key"
      }
      psc_interface_config = {
        network_attachment = gcp_compute_networkattachment.psc_attachment.id
        dns_peering_configs = [{
          "domain"        = "example.com."
          "targetProject" = data.gcp_organizations_getproject.project.project_id
          "targetNetwork" = gcp_compute_network.vertex_network.name
        }]
      }
      resource_pools {
        id            = "vpr-resource-pool"
        replica_count = "1"
        machine_spec = {
          machine_type = "n1-standard-4"
        }
        disk_spec = {
          boot_disk_size_gb = 200
          boot_disk_type    = "pd-ssd"
        }
      }
      resource_runtime_spec = {
        service_account_spec = {
          enable_custom_service_account = true
        }
      }
    }
    # VPC network for Vertex AI peering
    resource "gcp_compute_network" "vertex_network" {
      name                    = "vertex-network"
      auto_create_subnetworks = false
    }
    # Service networking connection for Vertex AI
    resource "gcp_servicenetworking_connection" "vertex_vpc_connection" {
      network                 = gcp_compute_network.vertex_network.id
      service                 = "servicenetworking.googleapis.com"
      reserved_peering_ranges = [gcp_compute_globaladdress.vertex_range.name]
    }
    # Reserved IP range for Vertex AI peering
    resource "gcp_compute_globaladdress" "vertex_range" {
      name          = "vertex-ip-range"
      purpose       = "VPC_PEERING"
      address_type  = "INTERNAL"
      prefix_length = 24
      network       = gcp_compute_network.vertex_network.id
    }
    resource "time_sleep" "wait_for_deletion" {
      depends_on       = [gcp_compute_networkattachment.psc_attachment, gcp_servicenetworking_connection.vertex_vpc_connection]
      destroy_duration = "300s"
    }
    # Network attachment for PSC-I
    resource "gcp_compute_networkattachment" "psc_attachment" {
      name                  = "psc-attachment"
      region                = "us-central1"
      connection_preference = "ACCEPT_MANUAL"
      subnetworks           = [gcp_compute_subnetwork.psc_subnetwork.id]
    }
    # Subnetwork for the network attachment
    resource "gcp_compute_subnetwork" "psc_subnetwork" {
      name          = "psc-subnetwork"
      region        = "us-central1"
      ip_cidr_range = "10.0.0.0/16"
      network       = gcp_compute_network.vertex_network.id
    }
    # Grant Vertex AI service agent access to the KMS key
    resource "gcp_kms_cryptokeyiammember" "crypto_key" {
      crypto_key_id = "example-key"
      role          = "roles/cloudkms.cryptoKeyEncrypterDecrypter"
      member        ="serviceAccount:service-${data.gcp_organizations_getproject.project.number}@gcp-sa-aiplatform.iam.gserviceaccount.com"
    }
    

    Create AiPersistentResource Resource

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

    Constructor syntax

    new AiPersistentResource(name: string, args: AiPersistentResourceArgs, opts?: CustomResourceOptions);
    @overload
    def AiPersistentResource(resource_name: str,
                             args: AiPersistentResourceArgs,
                             opts: Optional[ResourceOptions] = None)
    
    @overload
    def AiPersistentResource(resource_name: str,
                             opts: Optional[ResourceOptions] = None,
                             resource_pools: Optional[Sequence[AiPersistentResourceResourcePoolArgs]] = None,
                             deletion_policy: Optional[str] = None,
                             display_name: Optional[str] = None,
                             encryption_spec: Optional[AiPersistentResourceEncryptionSpecArgs] = None,
                             labels: Optional[Mapping[str, str]] = None,
                             location: Optional[str] = None,
                             name: Optional[str] = None,
                             network: Optional[str] = None,
                             project: Optional[str] = None,
                             psc_interface_config: Optional[AiPersistentResourcePscInterfaceConfigArgs] = None,
                             reserved_ip_ranges: Optional[Sequence[str]] = None,
                             resource_runtime_spec: Optional[AiPersistentResourceResourceRuntimeSpecArgs] = None)
    func NewAiPersistentResource(ctx *Context, name string, args AiPersistentResourceArgs, opts ...ResourceOption) (*AiPersistentResource, error)
    public AiPersistentResource(string name, AiPersistentResourceArgs args, CustomResourceOptions? opts = null)
    public AiPersistentResource(String name, AiPersistentResourceArgs args)
    public AiPersistentResource(String name, AiPersistentResourceArgs args, CustomResourceOptions options)
    
    type: gcp:vertex:AiPersistentResource
    properties: # The arguments to resource properties.
    options: # Bag of options to control resource's behavior.
    
    
    resource "gcp_vertex_ai_persistent_resource" "name" {
        # resource properties
    }

    Parameters

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

    Constructor example

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

    var aiPersistentResourceResource = new Gcp.Vertex.AiPersistentResource("aiPersistentResourceResource", new()
    {
        ResourcePools = new[]
        {
            new Gcp.Vertex.Inputs.AiPersistentResourceResourcePoolArgs
            {
                MachineSpec = new Gcp.Vertex.Inputs.AiPersistentResourceResourcePoolMachineSpecArgs
                {
                    AcceleratorCount = 0,
                    AcceleratorType = "string",
                    MachineType = "string",
                },
                AutoscalingSpec = new Gcp.Vertex.Inputs.AiPersistentResourceResourcePoolAutoscalingSpecArgs
                {
                    MaxReplicaCount = "string",
                    MinReplicaCount = "string",
                },
                DiskSpec = new Gcp.Vertex.Inputs.AiPersistentResourceResourcePoolDiskSpecArgs
                {
                    BootDiskSizeGb = 0,
                    BootDiskType = "string",
                },
                Id = "string",
                ReplicaCount = "string",
                UsedReplicaCount = "string",
            },
        },
        DeletionPolicy = "string",
        DisplayName = "string",
        EncryptionSpec = new Gcp.Vertex.Inputs.AiPersistentResourceEncryptionSpecArgs
        {
            KmsKeyName = "string",
        },
        Labels = 
        {
            { "string", "string" },
        },
        Location = "string",
        Name = "string",
        Network = "string",
        Project = "string",
        PscInterfaceConfig = new Gcp.Vertex.Inputs.AiPersistentResourcePscInterfaceConfigArgs
        {
            DnsPeeringConfigs = new[]
            {
                new Gcp.Vertex.Inputs.AiPersistentResourcePscInterfaceConfigDnsPeeringConfigArgs
                {
                    Domain = "string",
                    TargetNetwork = "string",
                    TargetProject = "string",
                },
            },
            NetworkAttachment = "string",
        },
        ReservedIpRanges = new[]
        {
            "string",
        },
        ResourceRuntimeSpec = new Gcp.Vertex.Inputs.AiPersistentResourceResourceRuntimeSpecArgs
        {
            ServiceAccountSpec = new Gcp.Vertex.Inputs.AiPersistentResourceResourceRuntimeSpecServiceAccountSpecArgs
            {
                EnableCustomServiceAccount = false,
            },
        },
    });
    
    example, err := vertex.NewAiPersistentResource(ctx, "aiPersistentResourceResource", &vertex.AiPersistentResourceArgs{
    	ResourcePools: vertex.AiPersistentResourceResourcePoolArray{
    		&vertex.AiPersistentResourceResourcePoolArgs{
    			MachineSpec: &vertex.AiPersistentResourceResourcePoolMachineSpecArgs{
    				AcceleratorCount: pulumi.Int(0),
    				AcceleratorType:  pulumi.String("string"),
    				MachineType:      pulumi.String("string"),
    			},
    			AutoscalingSpec: &vertex.AiPersistentResourceResourcePoolAutoscalingSpecArgs{
    				MaxReplicaCount: pulumi.String("string"),
    				MinReplicaCount: pulumi.String("string"),
    			},
    			DiskSpec: &vertex.AiPersistentResourceResourcePoolDiskSpecArgs{
    				BootDiskSizeGb: pulumi.Int(0),
    				BootDiskType:   pulumi.String("string"),
    			},
    			Id:               pulumi.String("string"),
    			ReplicaCount:     pulumi.String("string"),
    			UsedReplicaCount: pulumi.String("string"),
    		},
    	},
    	DeletionPolicy: pulumi.String("string"),
    	DisplayName:    pulumi.String("string"),
    	EncryptionSpec: &vertex.AiPersistentResourceEncryptionSpecArgs{
    		KmsKeyName: pulumi.String("string"),
    	},
    	Labels: pulumi.StringMap{
    		"string": pulumi.String("string"),
    	},
    	Location: pulumi.String("string"),
    	Name:     pulumi.String("string"),
    	Network:  pulumi.String("string"),
    	Project:  pulumi.String("string"),
    	PscInterfaceConfig: &vertex.AiPersistentResourcePscInterfaceConfigArgs{
    		DnsPeeringConfigs: vertex.AiPersistentResourcePscInterfaceConfigDnsPeeringConfigArray{
    			&vertex.AiPersistentResourcePscInterfaceConfigDnsPeeringConfigArgs{
    				Domain:        pulumi.String("string"),
    				TargetNetwork: pulumi.String("string"),
    				TargetProject: pulumi.String("string"),
    			},
    		},
    		NetworkAttachment: pulumi.String("string"),
    	},
    	ReservedIpRanges: pulumi.StringArray{
    		pulumi.String("string"),
    	},
    	ResourceRuntimeSpec: &vertex.AiPersistentResourceResourceRuntimeSpecArgs{
    		ServiceAccountSpec: &vertex.AiPersistentResourceResourceRuntimeSpecServiceAccountSpecArgs{
    			EnableCustomServiceAccount: pulumi.Bool(false),
    		},
    	},
    })
    
    resource "gcp_vertex_ai_persistent_resource" "aiPersistentResourceResource" {
      lifecycle {
        create_before_destroy = true
      }
      resource_pools {
        machine_spec = {
          accelerator_count = 0
          accelerator_type  = "string"
          machine_type      = "string"
        }
        autoscaling_spec = {
          max_replica_count = "string"
          min_replica_count = "string"
        }
        disk_spec = {
          boot_disk_size_gb = 0
          boot_disk_type    = "string"
        }
        id                 = "string"
        replica_count      = "string"
        used_replica_count = "string"
      }
      deletion_policy = "string"
      display_name    = "string"
      encryption_spec = {
        kms_key_name = "string"
      }
      labels = {
        "string" = "string"
      }
      location = "string"
      name     = "string"
      network  = "string"
      project  = "string"
      psc_interface_config = {
        dns_peering_configs = [{
          domain         = "string"
          target_network = "string"
          target_project = "string"
        }]
        network_attachment = "string"
      }
      reserved_ip_ranges = ["string"]
      resource_runtime_spec = {
        service_account_spec = {
          enable_custom_service_account = false
        }
      }
    }
    
    var aiPersistentResourceResource = new AiPersistentResource("aiPersistentResourceResource", AiPersistentResourceArgs.builder()
        .resourcePools(AiPersistentResourceResourcePoolArgs.builder()
            .machineSpec(AiPersistentResourceResourcePoolMachineSpecArgs.builder()
                .acceleratorCount(0)
                .acceleratorType("string")
                .machineType("string")
                .build())
            .autoscalingSpec(AiPersistentResourceResourcePoolAutoscalingSpecArgs.builder()
                .maxReplicaCount("string")
                .minReplicaCount("string")
                .build())
            .diskSpec(AiPersistentResourceResourcePoolDiskSpecArgs.builder()
                .bootDiskSizeGb(0)
                .bootDiskType("string")
                .build())
            .id("string")
            .replicaCount("string")
            .usedReplicaCount("string")
            .build())
        .deletionPolicy("string")
        .displayName("string")
        .encryptionSpec(AiPersistentResourceEncryptionSpecArgs.builder()
            .kmsKeyName("string")
            .build())
        .labels(Map.of("string", "string"))
        .location("string")
        .name("string")
        .network("string")
        .project("string")
        .pscInterfaceConfig(AiPersistentResourcePscInterfaceConfigArgs.builder()
            .dnsPeeringConfigs(AiPersistentResourcePscInterfaceConfigDnsPeeringConfigArgs.builder()
                .domain("string")
                .targetNetwork("string")
                .targetProject("string")
                .build())
            .networkAttachment("string")
            .build())
        .reservedIpRanges("string")
        .resourceRuntimeSpec(AiPersistentResourceResourceRuntimeSpecArgs.builder()
            .serviceAccountSpec(AiPersistentResourceResourceRuntimeSpecServiceAccountSpecArgs.builder()
                .enableCustomServiceAccount(false)
                .build())
            .build())
        .build());
    
    ai_persistent_resource_resource = gcp.vertex.AiPersistentResource("aiPersistentResourceResource",
        resource_pools=[{
            "machine_spec": {
                "accelerator_count": 0,
                "accelerator_type": "string",
                "machine_type": "string",
            },
            "autoscaling_spec": {
                "max_replica_count": "string",
                "min_replica_count": "string",
            },
            "disk_spec": {
                "boot_disk_size_gb": 0,
                "boot_disk_type": "string",
            },
            "id": "string",
            "replica_count": "string",
            "used_replica_count": "string",
        }],
        deletion_policy="string",
        display_name="string",
        encryption_spec={
            "kms_key_name": "string",
        },
        labels={
            "string": "string",
        },
        location="string",
        name="string",
        network="string",
        project="string",
        psc_interface_config={
            "dns_peering_configs": [{
                "domain": "string",
                "target_network": "string",
                "target_project": "string",
            }],
            "network_attachment": "string",
        },
        reserved_ip_ranges=["string"],
        resource_runtime_spec={
            "service_account_spec": {
                "enable_custom_service_account": False,
            },
        })
    
    const aiPersistentResourceResource = new gcp.vertex.AiPersistentResource("aiPersistentResourceResource", {
        resourcePools: [{
            machineSpec: {
                acceleratorCount: 0,
                acceleratorType: "string",
                machineType: "string",
            },
            autoscalingSpec: {
                maxReplicaCount: "string",
                minReplicaCount: "string",
            },
            diskSpec: {
                bootDiskSizeGb: 0,
                bootDiskType: "string",
            },
            id: "string",
            replicaCount: "string",
            usedReplicaCount: "string",
        }],
        deletionPolicy: "string",
        displayName: "string",
        encryptionSpec: {
            kmsKeyName: "string",
        },
        labels: {
            string: "string",
        },
        location: "string",
        name: "string",
        network: "string",
        project: "string",
        pscInterfaceConfig: {
            dnsPeeringConfigs: [{
                domain: "string",
                targetNetwork: "string",
                targetProject: "string",
            }],
            networkAttachment: "string",
        },
        reservedIpRanges: ["string"],
        resourceRuntimeSpec: {
            serviceAccountSpec: {
                enableCustomServiceAccount: false,
            },
        },
    });
    
    type: gcp:vertex:AiPersistentResource
    properties:
        deletionPolicy: string
        displayName: string
        encryptionSpec:
            kmsKeyName: string
        labels:
            string: string
        location: string
        name: string
        network: string
        project: string
        pscInterfaceConfig:
            dnsPeeringConfigs:
                - domain: string
                  targetNetwork: string
                  targetProject: string
            networkAttachment: string
        reservedIpRanges:
            - string
        resourcePools:
            - autoscalingSpec:
                maxReplicaCount: string
                minReplicaCount: string
              diskSpec:
                bootDiskSizeGb: 0
                bootDiskType: string
              id: string
              machineSpec:
                acceleratorCount: 0
                acceleratorType: string
                machineType: string
              replicaCount: string
              usedReplicaCount: string
        resourceRuntimeSpec:
            serviceAccountSpec:
                enableCustomServiceAccount: false
    

    AiPersistentResource Resource Properties

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

    Inputs

    In Python, inputs that are objects can be passed either as argument classes or as dictionary literals.

    The AiPersistentResource resource accepts the following input properties:

    ResourcePools List<AiPersistentResourceResourcePool>
    The spec of the pools of different resources. Structure is documented below.
    DeletionPolicy string
    Whether Terraform will be prevented from destroying the resource. Defaults to DELETE. When a 'terraform destroy' or 'pulumi up' would delete the resource, the command will fail if this field is set to "PREVENT" in Terraform state. When set to "ABANDON", the command will remove the resource from Terraform management without updating or deleting the resource in the API. When set to "DELETE", deleting the resource is allowed.
    DisplayName string
    The display name of the PersistentResource. The name can be up to 128 characters long and can consist of any UTF-8 characters.
    EncryptionSpec AiPersistentResourceEncryptionSpec
    Represents a customer-managed encryption key specification that can be applied to a Vertex AI resource. Structure is documented below.
    Labels Dictionary<string, string>
    The labels with user-defined metadata to organize PersistentResource. Label keys and values can be no longer than 64 characters (Unicode codepoints), can only contain lowercase letters, numeric characters, underscores and dashes. International characters are allowed. See https://goo.gl/xmQnxf for more information and examples of labels. 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.
    Location string
    The location of the PersistentResource. eg us-central1
    Name string
    The ID to use for the PersistentResource, which become the final component of the PersistentResource's resource name. The maximum length is 63 characters, and valid characters are /^a-z?$/.
    Network string
    The full name of the Compute Engine network to peered with Vertex AI to host the persistent resources. For example, projects/12345/global/networks/myVPC. Format is of the form projects/{project}/global/networks/{network}. Where {project} is a project number, as in 12345, and {network} is a network name. To specify this field, you must have already configured VPC Network Peering for Vertex AI. If this field is left unspecified, the resources aren't peered with any network.
    Project string
    The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
    PscInterfaceConfig AiPersistentResourcePscInterfaceConfig
    Configuration for PSC-I. Structure is documented below.
    ReservedIpRanges List<string>
    A list of names for the reserved IP ranges under the VPC network that can be used for this persistent resource. If set, we will deploy the persistent resource within the provided IP ranges. Otherwise, the persistent resource is deployed to any IP ranges under the provided VPC network. Example: ['vertex-ai-ip-range'].
    ResourceRuntimeSpec AiPersistentResourceResourceRuntimeSpec
    Configuration for the runtime on a PersistentResource instance. Structure is documented below.
    ResourcePools []AiPersistentResourceResourcePoolArgs
    The spec of the pools of different resources. Structure is documented below.
    DeletionPolicy string
    Whether Terraform will be prevented from destroying the resource. Defaults to DELETE. When a 'terraform destroy' or 'pulumi up' would delete the resource, the command will fail if this field is set to "PREVENT" in Terraform state. When set to "ABANDON", the command will remove the resource from Terraform management without updating or deleting the resource in the API. When set to "DELETE", deleting the resource is allowed.
    DisplayName string
    The display name of the PersistentResource. The name can be up to 128 characters long and can consist of any UTF-8 characters.
    EncryptionSpec AiPersistentResourceEncryptionSpecArgs
    Represents a customer-managed encryption key specification that can be applied to a Vertex AI resource. Structure is documented below.
    Labels map[string]string
    The labels with user-defined metadata to organize PersistentResource. Label keys and values can be no longer than 64 characters (Unicode codepoints), can only contain lowercase letters, numeric characters, underscores and dashes. International characters are allowed. See https://goo.gl/xmQnxf for more information and examples of labels. 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.
    Location string
    The location of the PersistentResource. eg us-central1
    Name string
    The ID to use for the PersistentResource, which become the final component of the PersistentResource's resource name. The maximum length is 63 characters, and valid characters are /^a-z?$/.
    Network string
    The full name of the Compute Engine network to peered with Vertex AI to host the persistent resources. For example, projects/12345/global/networks/myVPC. Format is of the form projects/{project}/global/networks/{network}. Where {project} is a project number, as in 12345, and {network} is a network name. To specify this field, you must have already configured VPC Network Peering for Vertex AI. If this field is left unspecified, the resources aren't peered with any network.
    Project string
    The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
    PscInterfaceConfig AiPersistentResourcePscInterfaceConfigArgs
    Configuration for PSC-I. Structure is documented below.
    ReservedIpRanges []string
    A list of names for the reserved IP ranges under the VPC network that can be used for this persistent resource. If set, we will deploy the persistent resource within the provided IP ranges. Otherwise, the persistent resource is deployed to any IP ranges under the provided VPC network. Example: ['vertex-ai-ip-range'].
    ResourceRuntimeSpec AiPersistentResourceResourceRuntimeSpecArgs
    Configuration for the runtime on a PersistentResource instance. Structure is documented below.
    resource_pools list(object)
    The spec of the pools of different resources. Structure is documented below.
    deletion_policy string
    Whether Terraform will be prevented from destroying the resource. Defaults to DELETE. When a 'terraform destroy' or 'pulumi up' would delete the resource, the command will fail if this field is set to "PREVENT" in Terraform state. When set to "ABANDON", the command will remove the resource from Terraform management without updating or deleting the resource in the API. When set to "DELETE", deleting the resource is allowed.
    display_name string
    The display name of the PersistentResource. The name can be up to 128 characters long and can consist of any UTF-8 characters.
    encryption_spec object
    Represents a customer-managed encryption key specification that can be applied to a Vertex AI resource. Structure is documented below.
    labels map(string)
    The labels with user-defined metadata to organize PersistentResource. Label keys and values can be no longer than 64 characters (Unicode codepoints), can only contain lowercase letters, numeric characters, underscores and dashes. International characters are allowed. See https://goo.gl/xmQnxf for more information and examples of labels. 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.
    location string
    The location of the PersistentResource. eg us-central1
    name string
    The ID to use for the PersistentResource, which become the final component of the PersistentResource's resource name. The maximum length is 63 characters, and valid characters are /^a-z?$/.
    network string
    The full name of the Compute Engine network to peered with Vertex AI to host the persistent resources. For example, projects/12345/global/networks/myVPC. Format is of the form projects/{project}/global/networks/{network}. Where {project} is a project number, as in 12345, and {network} is a network name. To specify this field, you must have already configured VPC Network Peering for Vertex AI. If this field is left unspecified, the resources aren't peered with any network.
    project string
    The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
    psc_interface_config object
    Configuration for PSC-I. Structure is documented below.
    reserved_ip_ranges list(string)
    A list of names for the reserved IP ranges under the VPC network that can be used for this persistent resource. If set, we will deploy the persistent resource within the provided IP ranges. Otherwise, the persistent resource is deployed to any IP ranges under the provided VPC network. Example: ['vertex-ai-ip-range'].
    resource_runtime_spec object
    Configuration for the runtime on a PersistentResource instance. Structure is documented below.
    resourcePools List<AiPersistentResourceResourcePool>
    The spec of the pools of different resources. Structure is documented below.
    deletionPolicy String
    Whether Terraform will be prevented from destroying the resource. Defaults to DELETE. When a 'terraform destroy' or 'pulumi up' would delete the resource, the command will fail if this field is set to "PREVENT" in Terraform state. When set to "ABANDON", the command will remove the resource from Terraform management without updating or deleting the resource in the API. When set to "DELETE", deleting the resource is allowed.
    displayName String
    The display name of the PersistentResource. The name can be up to 128 characters long and can consist of any UTF-8 characters.
    encryptionSpec AiPersistentResourceEncryptionSpec
    Represents a customer-managed encryption key specification that can be applied to a Vertex AI resource. Structure is documented below.
    labels Map<String,String>
    The labels with user-defined metadata to organize PersistentResource. Label keys and values can be no longer than 64 characters (Unicode codepoints), can only contain lowercase letters, numeric characters, underscores and dashes. International characters are allowed. See https://goo.gl/xmQnxf for more information and examples of labels. 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.
    location String
    The location of the PersistentResource. eg us-central1
    name String
    The ID to use for the PersistentResource, which become the final component of the PersistentResource's resource name. The maximum length is 63 characters, and valid characters are /^a-z?$/.
    network String
    The full name of the Compute Engine network to peered with Vertex AI to host the persistent resources. For example, projects/12345/global/networks/myVPC. Format is of the form projects/{project}/global/networks/{network}. Where {project} is a project number, as in 12345, and {network} is a network name. To specify this field, you must have already configured VPC Network Peering for Vertex AI. If this field is left unspecified, the resources aren't peered with any network.
    project String
    The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
    pscInterfaceConfig AiPersistentResourcePscInterfaceConfig
    Configuration for PSC-I. Structure is documented below.
    reservedIpRanges List<String>
    A list of names for the reserved IP ranges under the VPC network that can be used for this persistent resource. If set, we will deploy the persistent resource within the provided IP ranges. Otherwise, the persistent resource is deployed to any IP ranges under the provided VPC network. Example: ['vertex-ai-ip-range'].
    resourceRuntimeSpec AiPersistentResourceResourceRuntimeSpec
    Configuration for the runtime on a PersistentResource instance. Structure is documented below.
    resourcePools AiPersistentResourceResourcePool[]
    The spec of the pools of different resources. Structure is documented below.
    deletionPolicy string
    Whether Terraform will be prevented from destroying the resource. Defaults to DELETE. When a 'terraform destroy' or 'pulumi up' would delete the resource, the command will fail if this field is set to "PREVENT" in Terraform state. When set to "ABANDON", the command will remove the resource from Terraform management without updating or deleting the resource in the API. When set to "DELETE", deleting the resource is allowed.
    displayName string
    The display name of the PersistentResource. The name can be up to 128 characters long and can consist of any UTF-8 characters.
    encryptionSpec AiPersistentResourceEncryptionSpec
    Represents a customer-managed encryption key specification that can be applied to a Vertex AI resource. Structure is documented below.
    labels {[key: string]: string}
    The labels with user-defined metadata to organize PersistentResource. Label keys and values can be no longer than 64 characters (Unicode codepoints), can only contain lowercase letters, numeric characters, underscores and dashes. International characters are allowed. See https://goo.gl/xmQnxf for more information and examples of labels. 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.
    location string
    The location of the PersistentResource. eg us-central1
    name string
    The ID to use for the PersistentResource, which become the final component of the PersistentResource's resource name. The maximum length is 63 characters, and valid characters are /^a-z?$/.
    network string
    The full name of the Compute Engine network to peered with Vertex AI to host the persistent resources. For example, projects/12345/global/networks/myVPC. Format is of the form projects/{project}/global/networks/{network}. Where {project} is a project number, as in 12345, and {network} is a network name. To specify this field, you must have already configured VPC Network Peering for Vertex AI. If this field is left unspecified, the resources aren't peered with any network.
    project string
    The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
    pscInterfaceConfig AiPersistentResourcePscInterfaceConfig
    Configuration for PSC-I. Structure is documented below.
    reservedIpRanges string[]
    A list of names for the reserved IP ranges under the VPC network that can be used for this persistent resource. If set, we will deploy the persistent resource within the provided IP ranges. Otherwise, the persistent resource is deployed to any IP ranges under the provided VPC network. Example: ['vertex-ai-ip-range'].
    resourceRuntimeSpec AiPersistentResourceResourceRuntimeSpec
    Configuration for the runtime on a PersistentResource instance. Structure is documented below.
    resource_pools Sequence[AiPersistentResourceResourcePoolArgs]
    The spec of the pools of different resources. Structure is documented below.
    deletion_policy str
    Whether Terraform will be prevented from destroying the resource. Defaults to DELETE. When a 'terraform destroy' or 'pulumi up' would delete the resource, the command will fail if this field is set to "PREVENT" in Terraform state. When set to "ABANDON", the command will remove the resource from Terraform management without updating or deleting the resource in the API. When set to "DELETE", deleting the resource is allowed.
    display_name str
    The display name of the PersistentResource. The name can be up to 128 characters long and can consist of any UTF-8 characters.
    encryption_spec AiPersistentResourceEncryptionSpecArgs
    Represents a customer-managed encryption key specification that can be applied to a Vertex AI resource. Structure is documented below.
    labels Mapping[str, str]
    The labels with user-defined metadata to organize PersistentResource. Label keys and values can be no longer than 64 characters (Unicode codepoints), can only contain lowercase letters, numeric characters, underscores and dashes. International characters are allowed. See https://goo.gl/xmQnxf for more information and examples of labels. 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.
    location str
    The location of the PersistentResource. eg us-central1
    name str
    The ID to use for the PersistentResource, which become the final component of the PersistentResource's resource name. The maximum length is 63 characters, and valid characters are /^a-z?$/.
    network str
    The full name of the Compute Engine network to peered with Vertex AI to host the persistent resources. For example, projects/12345/global/networks/myVPC. Format is of the form projects/{project}/global/networks/{network}. Where {project} is a project number, as in 12345, and {network} is a network name. To specify this field, you must have already configured VPC Network Peering for Vertex AI. If this field is left unspecified, the resources aren't peered with any network.
    project str
    The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
    psc_interface_config AiPersistentResourcePscInterfaceConfigArgs
    Configuration for PSC-I. Structure is documented below.
    reserved_ip_ranges Sequence[str]
    A list of names for the reserved IP ranges under the VPC network that can be used for this persistent resource. If set, we will deploy the persistent resource within the provided IP ranges. Otherwise, the persistent resource is deployed to any IP ranges under the provided VPC network. Example: ['vertex-ai-ip-range'].
    resource_runtime_spec AiPersistentResourceResourceRuntimeSpecArgs
    Configuration for the runtime on a PersistentResource instance. Structure is documented below.
    resourcePools List<Property Map>
    The spec of the pools of different resources. Structure is documented below.
    deletionPolicy String
    Whether Terraform will be prevented from destroying the resource. Defaults to DELETE. When a 'terraform destroy' or 'pulumi up' would delete the resource, the command will fail if this field is set to "PREVENT" in Terraform state. When set to "ABANDON", the command will remove the resource from Terraform management without updating or deleting the resource in the API. When set to "DELETE", deleting the resource is allowed.
    displayName String
    The display name of the PersistentResource. The name can be up to 128 characters long and can consist of any UTF-8 characters.
    encryptionSpec Property Map
    Represents a customer-managed encryption key specification that can be applied to a Vertex AI resource. Structure is documented below.
    labels Map<String>
    The labels with user-defined metadata to organize PersistentResource. Label keys and values can be no longer than 64 characters (Unicode codepoints), can only contain lowercase letters, numeric characters, underscores and dashes. International characters are allowed. See https://goo.gl/xmQnxf for more information and examples of labels. 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.
    location String
    The location of the PersistentResource. eg us-central1
    name String
    The ID to use for the PersistentResource, which become the final component of the PersistentResource's resource name. The maximum length is 63 characters, and valid characters are /^a-z?$/.
    network String
    The full name of the Compute Engine network to peered with Vertex AI to host the persistent resources. For example, projects/12345/global/networks/myVPC. Format is of the form projects/{project}/global/networks/{network}. Where {project} is a project number, as in 12345, and {network} is a network name. To specify this field, you must have already configured VPC Network Peering for Vertex AI. If this field is left unspecified, the resources aren't peered with any network.
    project String
    The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
    pscInterfaceConfig Property Map
    Configuration for PSC-I. Structure is documented below.
    reservedIpRanges List<String>
    A list of names for the reserved IP ranges under the VPC network that can be used for this persistent resource. If set, we will deploy the persistent resource within the provided IP ranges. Otherwise, the persistent resource is deployed to any IP ranges under the provided VPC network. Example: ['vertex-ai-ip-range'].
    resourceRuntimeSpec Property Map
    Configuration for the runtime on a PersistentResource instance. Structure is documented below.

    Outputs

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

    CreateTime string
    Time when the PersistentResource was created.
    EffectiveLabels Dictionary<string, string>
    All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
    Errors List<AiPersistentResourceError>
    The Status type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by gRPC. Each Status message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the API Design Guide. Structure is documented below.
    Id string
    The provider-assigned unique ID for this managed resource.
    PulumiLabels Dictionary<string, string>
    The combination of labels configured directly on the resource and default labels configured on the provider.
    ResourceRuntimes List<AiPersistentResourceResourceRuntime>
    Persistent Cluster runtime information as output Structure is documented below.
    SatisfiesPzi bool
    Reserved for future use.
    SatisfiesPzs bool
    Reserved for future use.
    StartTime string
    Time when the PersistentResource for the first time entered the RUNNING state.
    State string
    The detailed state of a PersistentResource. Possible values: PROVISIONING RUNNING STOPPING ERROR REBOOTING UPDATING
    UpdateTime string
    Time when the PersistentResource was most recently updated.
    CreateTime string
    Time when the PersistentResource was created.
    EffectiveLabels map[string]string
    All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
    Errors []AiPersistentResourceError
    The Status type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by gRPC. Each Status message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the API Design Guide. Structure is documented below.
    Id string
    The provider-assigned unique ID for this managed resource.
    PulumiLabels map[string]string
    The combination of labels configured directly on the resource and default labels configured on the provider.
    ResourceRuntimes []AiPersistentResourceResourceRuntime
    Persistent Cluster runtime information as output Structure is documented below.
    SatisfiesPzi bool
    Reserved for future use.
    SatisfiesPzs bool
    Reserved for future use.
    StartTime string
    Time when the PersistentResource for the first time entered the RUNNING state.
    State string
    The detailed state of a PersistentResource. Possible values: PROVISIONING RUNNING STOPPING ERROR REBOOTING UPDATING
    UpdateTime string
    Time when the PersistentResource was most recently updated.
    create_time string
    Time when the PersistentResource was created.
    effective_labels map(string)
    All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
    errors list(object)
    The Status type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by gRPC. Each Status message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the API Design Guide. Structure is documented below.
    id string
    The provider-assigned unique ID for this managed resource.
    pulumi_labels map(string)
    The combination of labels configured directly on the resource and default labels configured on the provider.
    resource_runtimes list(object)
    Persistent Cluster runtime information as output Structure is documented below.
    satisfies_pzi bool
    Reserved for future use.
    satisfies_pzs bool
    Reserved for future use.
    start_time string
    Time when the PersistentResource for the first time entered the RUNNING state.
    state string
    The detailed state of a PersistentResource. Possible values: PROVISIONING RUNNING STOPPING ERROR REBOOTING UPDATING
    update_time string
    Time when the PersistentResource was most recently updated.
    createTime String
    Time when the PersistentResource was created.
    effectiveLabels Map<String,String>
    All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
    errors List<AiPersistentResourceError>
    The Status type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by gRPC. Each Status message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the API Design Guide. Structure is documented below.
    id String
    The provider-assigned unique ID for this managed resource.
    pulumiLabels Map<String,String>
    The combination of labels configured directly on the resource and default labels configured on the provider.
    resourceRuntimes List<AiPersistentResourceResourceRuntime>
    Persistent Cluster runtime information as output Structure is documented below.
    satisfiesPzi Boolean
    Reserved for future use.
    satisfiesPzs Boolean
    Reserved for future use.
    startTime String
    Time when the PersistentResource for the first time entered the RUNNING state.
    state String
    The detailed state of a PersistentResource. Possible values: PROVISIONING RUNNING STOPPING ERROR REBOOTING UPDATING
    updateTime String
    Time when the PersistentResource was most recently updated.
    createTime string
    Time when the PersistentResource was created.
    effectiveLabels {[key: string]: string}
    All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
    errors AiPersistentResourceError[]
    The Status type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by gRPC. Each Status message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the API Design Guide. Structure is documented below.
    id string
    The provider-assigned unique ID for this managed resource.
    pulumiLabels {[key: string]: string}
    The combination of labels configured directly on the resource and default labels configured on the provider.
    resourceRuntimes AiPersistentResourceResourceRuntime[]
    Persistent Cluster runtime information as output Structure is documented below.
    satisfiesPzi boolean
    Reserved for future use.
    satisfiesPzs boolean
    Reserved for future use.
    startTime string
    Time when the PersistentResource for the first time entered the RUNNING state.
    state string
    The detailed state of a PersistentResource. Possible values: PROVISIONING RUNNING STOPPING ERROR REBOOTING UPDATING
    updateTime string
    Time when the PersistentResource was most recently updated.
    create_time str
    Time when the PersistentResource was created.
    effective_labels Mapping[str, str]
    All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
    errors Sequence[AiPersistentResourceError]
    The Status type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by gRPC. Each Status message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the API Design Guide. Structure is documented below.
    id str
    The provider-assigned unique ID for this managed resource.
    pulumi_labels Mapping[str, str]
    The combination of labels configured directly on the resource and default labels configured on the provider.
    resource_runtimes Sequence[AiPersistentResourceResourceRuntime]
    Persistent Cluster runtime information as output Structure is documented below.
    satisfies_pzi bool
    Reserved for future use.
    satisfies_pzs bool
    Reserved for future use.
    start_time str
    Time when the PersistentResource for the first time entered the RUNNING state.
    state str
    The detailed state of a PersistentResource. Possible values: PROVISIONING RUNNING STOPPING ERROR REBOOTING UPDATING
    update_time str
    Time when the PersistentResource was most recently updated.
    createTime String
    Time when the PersistentResource was created.
    effectiveLabels Map<String>
    All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
    errors List<Property Map>
    The Status type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by gRPC. Each Status message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the API Design Guide. Structure is documented below.
    id String
    The provider-assigned unique ID for this managed resource.
    pulumiLabels Map<String>
    The combination of labels configured directly on the resource and default labels configured on the provider.
    resourceRuntimes List<Property Map>
    Persistent Cluster runtime information as output Structure is documented below.
    satisfiesPzi Boolean
    Reserved for future use.
    satisfiesPzs Boolean
    Reserved for future use.
    startTime String
    Time when the PersistentResource for the first time entered the RUNNING state.
    state String
    The detailed state of a PersistentResource. Possible values: PROVISIONING RUNNING STOPPING ERROR REBOOTING UPDATING
    updateTime String
    Time when the PersistentResource was most recently updated.

    Look up Existing AiPersistentResource Resource

    Get an existing AiPersistentResource resource’s state with the given name, ID, and optional extra properties used to qualify the lookup.

    public static get(name: string, id: Input<ID>, state?: AiPersistentResourceState, opts?: CustomResourceOptions): AiPersistentResource
    @staticmethod
    def get(resource_name: str,
            id: str,
            opts: Optional[ResourceOptions] = None,
            create_time: Optional[str] = None,
            deletion_policy: Optional[str] = None,
            display_name: Optional[str] = None,
            effective_labels: Optional[Mapping[str, str]] = None,
            encryption_spec: Optional[AiPersistentResourceEncryptionSpecArgs] = None,
            errors: Optional[Sequence[AiPersistentResourceErrorArgs]] = None,
            labels: Optional[Mapping[str, str]] = None,
            location: Optional[str] = None,
            name: Optional[str] = None,
            network: Optional[str] = None,
            project: Optional[str] = None,
            psc_interface_config: Optional[AiPersistentResourcePscInterfaceConfigArgs] = None,
            pulumi_labels: Optional[Mapping[str, str]] = None,
            reserved_ip_ranges: Optional[Sequence[str]] = None,
            resource_pools: Optional[Sequence[AiPersistentResourceResourcePoolArgs]] = None,
            resource_runtime_spec: Optional[AiPersistentResourceResourceRuntimeSpecArgs] = None,
            resource_runtimes: Optional[Sequence[AiPersistentResourceResourceRuntimeArgs]] = None,
            satisfies_pzi: Optional[bool] = None,
            satisfies_pzs: Optional[bool] = None,
            start_time: Optional[str] = None,
            state: Optional[str] = None,
            update_time: Optional[str] = None) -> AiPersistentResource
    func GetAiPersistentResource(ctx *Context, name string, id IDInput, state *AiPersistentResourceState, opts ...ResourceOption) (*AiPersistentResource, error)
    public static AiPersistentResource Get(string name, Input<string> id, AiPersistentResourceState? state, CustomResourceOptions? opts = null)
    public static AiPersistentResource get(String name, Output<String> id, AiPersistentResourceState state, CustomResourceOptions options)
    resources:  _:    type: gcp:vertex:AiPersistentResource    get:      id: ${id}
    import {
      to = gcp_vertex_ai_persistent_resource.example
      id = "${id}"
    }
    
    name
    The unique name of the resulting resource.
    id
    The unique provider ID of the resource to lookup.
    state
    Any extra arguments used during the lookup.
    opts
    A bag of options that control this resource's behavior.
    resource_name
    The unique name of the resulting resource.
    id
    The unique provider ID of the resource to lookup.
    name
    The unique name of the resulting resource.
    id
    The unique provider ID of the resource to lookup.
    state
    Any extra arguments used during the lookup.
    opts
    A bag of options that control this resource's behavior.
    name
    The unique name of the resulting resource.
    id
    The unique provider ID of the resource to lookup.
    state
    Any extra arguments used during the lookup.
    opts
    A bag of options that control this resource's behavior.
    name
    The unique name of the resulting resource.
    id
    The unique provider ID of the resource to lookup.
    state
    Any extra arguments used during the lookup.
    opts
    A bag of options that control this resource's behavior.
    The following state arguments are supported:
    CreateTime string
    Time when the PersistentResource was created.
    DeletionPolicy string
    Whether Terraform will be prevented from destroying the resource. Defaults to DELETE. When a 'terraform destroy' or 'pulumi up' would delete the resource, the command will fail if this field is set to "PREVENT" in Terraform state. When set to "ABANDON", the command will remove the resource from Terraform management without updating or deleting the resource in the API. When set to "DELETE", deleting the resource is allowed.
    DisplayName string
    The display name of the PersistentResource. The name can be up to 128 characters long and can consist of any UTF-8 characters.
    EffectiveLabels Dictionary<string, string>
    All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
    EncryptionSpec AiPersistentResourceEncryptionSpec
    Represents a customer-managed encryption key specification that can be applied to a Vertex AI resource. Structure is documented below.
    Errors List<AiPersistentResourceError>
    The Status type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by gRPC. Each Status message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the API Design Guide. Structure is documented below.
    Labels Dictionary<string, string>
    The labels with user-defined metadata to organize PersistentResource. Label keys and values can be no longer than 64 characters (Unicode codepoints), can only contain lowercase letters, numeric characters, underscores and dashes. International characters are allowed. See https://goo.gl/xmQnxf for more information and examples of labels. 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.
    Location string
    The location of the PersistentResource. eg us-central1
    Name string
    The ID to use for the PersistentResource, which become the final component of the PersistentResource's resource name. The maximum length is 63 characters, and valid characters are /^a-z?$/.
    Network string
    The full name of the Compute Engine network to peered with Vertex AI to host the persistent resources. For example, projects/12345/global/networks/myVPC. Format is of the form projects/{project}/global/networks/{network}. Where {project} is a project number, as in 12345, and {network} is a network name. To specify this field, you must have already configured VPC Network Peering for Vertex AI. If this field is left unspecified, the resources aren't peered with any network.
    Project string
    The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
    PscInterfaceConfig AiPersistentResourcePscInterfaceConfig
    Configuration for PSC-I. Structure is documented below.
    PulumiLabels Dictionary<string, string>
    The combination of labels configured directly on the resource and default labels configured on the provider.
    ReservedIpRanges List<string>
    A list of names for the reserved IP ranges under the VPC network that can be used for this persistent resource. If set, we will deploy the persistent resource within the provided IP ranges. Otherwise, the persistent resource is deployed to any IP ranges under the provided VPC network. Example: ['vertex-ai-ip-range'].
    ResourcePools List<AiPersistentResourceResourcePool>
    The spec of the pools of different resources. Structure is documented below.
    ResourceRuntimeSpec AiPersistentResourceResourceRuntimeSpec
    Configuration for the runtime on a PersistentResource instance. Structure is documented below.
    ResourceRuntimes List<AiPersistentResourceResourceRuntime>
    Persistent Cluster runtime information as output Structure is documented below.
    SatisfiesPzi bool
    Reserved for future use.
    SatisfiesPzs bool
    Reserved for future use.
    StartTime string
    Time when the PersistentResource for the first time entered the RUNNING state.
    State string
    The detailed state of a PersistentResource. Possible values: PROVISIONING RUNNING STOPPING ERROR REBOOTING UPDATING
    UpdateTime string
    Time when the PersistentResource was most recently updated.
    CreateTime string
    Time when the PersistentResource was created.
    DeletionPolicy string
    Whether Terraform will be prevented from destroying the resource. Defaults to DELETE. When a 'terraform destroy' or 'pulumi up' would delete the resource, the command will fail if this field is set to "PREVENT" in Terraform state. When set to "ABANDON", the command will remove the resource from Terraform management without updating or deleting the resource in the API. When set to "DELETE", deleting the resource is allowed.
    DisplayName string
    The display name of the PersistentResource. The name can be up to 128 characters long and can consist of any UTF-8 characters.
    EffectiveLabels map[string]string
    All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
    EncryptionSpec AiPersistentResourceEncryptionSpecArgs
    Represents a customer-managed encryption key specification that can be applied to a Vertex AI resource. Structure is documented below.
    Errors []AiPersistentResourceErrorArgs
    The Status type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by gRPC. Each Status message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the API Design Guide. Structure is documented below.
    Labels map[string]string
    The labels with user-defined metadata to organize PersistentResource. Label keys and values can be no longer than 64 characters (Unicode codepoints), can only contain lowercase letters, numeric characters, underscores and dashes. International characters are allowed. See https://goo.gl/xmQnxf for more information and examples of labels. 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.
    Location string
    The location of the PersistentResource. eg us-central1
    Name string
    The ID to use for the PersistentResource, which become the final component of the PersistentResource's resource name. The maximum length is 63 characters, and valid characters are /^a-z?$/.
    Network string
    The full name of the Compute Engine network to peered with Vertex AI to host the persistent resources. For example, projects/12345/global/networks/myVPC. Format is of the form projects/{project}/global/networks/{network}. Where {project} is a project number, as in 12345, and {network} is a network name. To specify this field, you must have already configured VPC Network Peering for Vertex AI. If this field is left unspecified, the resources aren't peered with any network.
    Project string
    The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
    PscInterfaceConfig AiPersistentResourcePscInterfaceConfigArgs
    Configuration for PSC-I. Structure is documented below.
    PulumiLabels map[string]string
    The combination of labels configured directly on the resource and default labels configured on the provider.
    ReservedIpRanges []string
    A list of names for the reserved IP ranges under the VPC network that can be used for this persistent resource. If set, we will deploy the persistent resource within the provided IP ranges. Otherwise, the persistent resource is deployed to any IP ranges under the provided VPC network. Example: ['vertex-ai-ip-range'].
    ResourcePools []AiPersistentResourceResourcePoolArgs
    The spec of the pools of different resources. Structure is documented below.
    ResourceRuntimeSpec AiPersistentResourceResourceRuntimeSpecArgs
    Configuration for the runtime on a PersistentResource instance. Structure is documented below.
    ResourceRuntimes []AiPersistentResourceResourceRuntimeArgs
    Persistent Cluster runtime information as output Structure is documented below.
    SatisfiesPzi bool
    Reserved for future use.
    SatisfiesPzs bool
    Reserved for future use.
    StartTime string
    Time when the PersistentResource for the first time entered the RUNNING state.
    State string
    The detailed state of a PersistentResource. Possible values: PROVISIONING RUNNING STOPPING ERROR REBOOTING UPDATING
    UpdateTime string
    Time when the PersistentResource was most recently updated.
    create_time string
    Time when the PersistentResource was created.
    deletion_policy string
    Whether Terraform will be prevented from destroying the resource. Defaults to DELETE. When a 'terraform destroy' or 'pulumi up' would delete the resource, the command will fail if this field is set to "PREVENT" in Terraform state. When set to "ABANDON", the command will remove the resource from Terraform management without updating or deleting the resource in the API. When set to "DELETE", deleting the resource is allowed.
    display_name string
    The display name of the PersistentResource. The name can be up to 128 characters long and can consist of any UTF-8 characters.
    effective_labels map(string)
    All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
    encryption_spec object
    Represents a customer-managed encryption key specification that can be applied to a Vertex AI resource. Structure is documented below.
    errors list(object)
    The Status type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by gRPC. Each Status message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the API Design Guide. Structure is documented below.
    labels map(string)
    The labels with user-defined metadata to organize PersistentResource. Label keys and values can be no longer than 64 characters (Unicode codepoints), can only contain lowercase letters, numeric characters, underscores and dashes. International characters are allowed. See https://goo.gl/xmQnxf for more information and examples of labels. 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.
    location string
    The location of the PersistentResource. eg us-central1
    name string
    The ID to use for the PersistentResource, which become the final component of the PersistentResource's resource name. The maximum length is 63 characters, and valid characters are /^a-z?$/.
    network string
    The full name of the Compute Engine network to peered with Vertex AI to host the persistent resources. For example, projects/12345/global/networks/myVPC. Format is of the form projects/{project}/global/networks/{network}. Where {project} is a project number, as in 12345, and {network} is a network name. To specify this field, you must have already configured VPC Network Peering for Vertex AI. If this field is left unspecified, the resources aren't peered with any network.
    project string
    The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
    psc_interface_config object
    Configuration for PSC-I. Structure is documented below.
    pulumi_labels map(string)
    The combination of labels configured directly on the resource and default labels configured on the provider.
    reserved_ip_ranges list(string)
    A list of names for the reserved IP ranges under the VPC network that can be used for this persistent resource. If set, we will deploy the persistent resource within the provided IP ranges. Otherwise, the persistent resource is deployed to any IP ranges under the provided VPC network. Example: ['vertex-ai-ip-range'].
    resource_pools list(object)
    The spec of the pools of different resources. Structure is documented below.
    resource_runtime_spec object
    Configuration for the runtime on a PersistentResource instance. Structure is documented below.
    resource_runtimes list(object)
    Persistent Cluster runtime information as output Structure is documented below.
    satisfies_pzi bool
    Reserved for future use.
    satisfies_pzs bool
    Reserved for future use.
    start_time string
    Time when the PersistentResource for the first time entered the RUNNING state.
    state string
    The detailed state of a PersistentResource. Possible values: PROVISIONING RUNNING STOPPING ERROR REBOOTING UPDATING
    update_time string
    Time when the PersistentResource was most recently updated.
    createTime String
    Time when the PersistentResource was created.
    deletionPolicy String
    Whether Terraform will be prevented from destroying the resource. Defaults to DELETE. When a 'terraform destroy' or 'pulumi up' would delete the resource, the command will fail if this field is set to "PREVENT" in Terraform state. When set to "ABANDON", the command will remove the resource from Terraform management without updating or deleting the resource in the API. When set to "DELETE", deleting the resource is allowed.
    displayName String
    The display name of the PersistentResource. The name can be up to 128 characters long and can consist of any UTF-8 characters.
    effectiveLabels Map<String,String>
    All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
    encryptionSpec AiPersistentResourceEncryptionSpec
    Represents a customer-managed encryption key specification that can be applied to a Vertex AI resource. Structure is documented below.
    errors List<AiPersistentResourceError>
    The Status type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by gRPC. Each Status message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the API Design Guide. Structure is documented below.
    labels Map<String,String>
    The labels with user-defined metadata to organize PersistentResource. Label keys and values can be no longer than 64 characters (Unicode codepoints), can only contain lowercase letters, numeric characters, underscores and dashes. International characters are allowed. See https://goo.gl/xmQnxf for more information and examples of labels. 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.
    location String
    The location of the PersistentResource. eg us-central1
    name String
    The ID to use for the PersistentResource, which become the final component of the PersistentResource's resource name. The maximum length is 63 characters, and valid characters are /^a-z?$/.
    network String
    The full name of the Compute Engine network to peered with Vertex AI to host the persistent resources. For example, projects/12345/global/networks/myVPC. Format is of the form projects/{project}/global/networks/{network}. Where {project} is a project number, as in 12345, and {network} is a network name. To specify this field, you must have already configured VPC Network Peering for Vertex AI. If this field is left unspecified, the resources aren't peered with any network.
    project String
    The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
    pscInterfaceConfig AiPersistentResourcePscInterfaceConfig
    Configuration for PSC-I. Structure is documented below.
    pulumiLabels Map<String,String>
    The combination of labels configured directly on the resource and default labels configured on the provider.
    reservedIpRanges List<String>
    A list of names for the reserved IP ranges under the VPC network that can be used for this persistent resource. If set, we will deploy the persistent resource within the provided IP ranges. Otherwise, the persistent resource is deployed to any IP ranges under the provided VPC network. Example: ['vertex-ai-ip-range'].
    resourcePools List<AiPersistentResourceResourcePool>
    The spec of the pools of different resources. Structure is documented below.
    resourceRuntimeSpec AiPersistentResourceResourceRuntimeSpec
    Configuration for the runtime on a PersistentResource instance. Structure is documented below.
    resourceRuntimes List<AiPersistentResourceResourceRuntime>
    Persistent Cluster runtime information as output Structure is documented below.
    satisfiesPzi Boolean
    Reserved for future use.
    satisfiesPzs Boolean
    Reserved for future use.
    startTime String
    Time when the PersistentResource for the first time entered the RUNNING state.
    state String
    The detailed state of a PersistentResource. Possible values: PROVISIONING RUNNING STOPPING ERROR REBOOTING UPDATING
    updateTime String
    Time when the PersistentResource was most recently updated.
    createTime string
    Time when the PersistentResource was created.
    deletionPolicy string
    Whether Terraform will be prevented from destroying the resource. Defaults to DELETE. When a 'terraform destroy' or 'pulumi up' would delete the resource, the command will fail if this field is set to "PREVENT" in Terraform state. When set to "ABANDON", the command will remove the resource from Terraform management without updating or deleting the resource in the API. When set to "DELETE", deleting the resource is allowed.
    displayName string
    The display name of the PersistentResource. The name can be up to 128 characters long and can consist of any UTF-8 characters.
    effectiveLabels {[key: string]: string}
    All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
    encryptionSpec AiPersistentResourceEncryptionSpec
    Represents a customer-managed encryption key specification that can be applied to a Vertex AI resource. Structure is documented below.
    errors AiPersistentResourceError[]
    The Status type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by gRPC. Each Status message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the API Design Guide. Structure is documented below.
    labels {[key: string]: string}
    The labels with user-defined metadata to organize PersistentResource. Label keys and values can be no longer than 64 characters (Unicode codepoints), can only contain lowercase letters, numeric characters, underscores and dashes. International characters are allowed. See https://goo.gl/xmQnxf for more information and examples of labels. 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.
    location string
    The location of the PersistentResource. eg us-central1
    name string
    The ID to use for the PersistentResource, which become the final component of the PersistentResource's resource name. The maximum length is 63 characters, and valid characters are /^a-z?$/.
    network string
    The full name of the Compute Engine network to peered with Vertex AI to host the persistent resources. For example, projects/12345/global/networks/myVPC. Format is of the form projects/{project}/global/networks/{network}. Where {project} is a project number, as in 12345, and {network} is a network name. To specify this field, you must have already configured VPC Network Peering for Vertex AI. If this field is left unspecified, the resources aren't peered with any network.
    project string
    The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
    pscInterfaceConfig AiPersistentResourcePscInterfaceConfig
    Configuration for PSC-I. Structure is documented below.
    pulumiLabels {[key: string]: string}
    The combination of labels configured directly on the resource and default labels configured on the provider.
    reservedIpRanges string[]
    A list of names for the reserved IP ranges under the VPC network that can be used for this persistent resource. If set, we will deploy the persistent resource within the provided IP ranges. Otherwise, the persistent resource is deployed to any IP ranges under the provided VPC network. Example: ['vertex-ai-ip-range'].
    resourcePools AiPersistentResourceResourcePool[]
    The spec of the pools of different resources. Structure is documented below.
    resourceRuntimeSpec AiPersistentResourceResourceRuntimeSpec
    Configuration for the runtime on a PersistentResource instance. Structure is documented below.
    resourceRuntimes AiPersistentResourceResourceRuntime[]
    Persistent Cluster runtime information as output Structure is documented below.
    satisfiesPzi boolean
    Reserved for future use.
    satisfiesPzs boolean
    Reserved for future use.
    startTime string
    Time when the PersistentResource for the first time entered the RUNNING state.
    state string
    The detailed state of a PersistentResource. Possible values: PROVISIONING RUNNING STOPPING ERROR REBOOTING UPDATING
    updateTime string
    Time when the PersistentResource was most recently updated.
    create_time str
    Time when the PersistentResource was created.
    deletion_policy str
    Whether Terraform will be prevented from destroying the resource. Defaults to DELETE. When a 'terraform destroy' or 'pulumi up' would delete the resource, the command will fail if this field is set to "PREVENT" in Terraform state. When set to "ABANDON", the command will remove the resource from Terraform management without updating or deleting the resource in the API. When set to "DELETE", deleting the resource is allowed.
    display_name str
    The display name of the PersistentResource. The name can be up to 128 characters long and can consist of any UTF-8 characters.
    effective_labels Mapping[str, str]
    All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
    encryption_spec AiPersistentResourceEncryptionSpecArgs
    Represents a customer-managed encryption key specification that can be applied to a Vertex AI resource. Structure is documented below.
    errors Sequence[AiPersistentResourceErrorArgs]
    The Status type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by gRPC. Each Status message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the API Design Guide. Structure is documented below.
    labels Mapping[str, str]
    The labels with user-defined metadata to organize PersistentResource. Label keys and values can be no longer than 64 characters (Unicode codepoints), can only contain lowercase letters, numeric characters, underscores and dashes. International characters are allowed. See https://goo.gl/xmQnxf for more information and examples of labels. 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.
    location str
    The location of the PersistentResource. eg us-central1
    name str
    The ID to use for the PersistentResource, which become the final component of the PersistentResource's resource name. The maximum length is 63 characters, and valid characters are /^a-z?$/.
    network str
    The full name of the Compute Engine network to peered with Vertex AI to host the persistent resources. For example, projects/12345/global/networks/myVPC. Format is of the form projects/{project}/global/networks/{network}. Where {project} is a project number, as in 12345, and {network} is a network name. To specify this field, you must have already configured VPC Network Peering for Vertex AI. If this field is left unspecified, the resources aren't peered with any network.
    project str
    The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
    psc_interface_config AiPersistentResourcePscInterfaceConfigArgs
    Configuration for PSC-I. Structure is documented below.
    pulumi_labels Mapping[str, str]
    The combination of labels configured directly on the resource and default labels configured on the provider.
    reserved_ip_ranges Sequence[str]
    A list of names for the reserved IP ranges under the VPC network that can be used for this persistent resource. If set, we will deploy the persistent resource within the provided IP ranges. Otherwise, the persistent resource is deployed to any IP ranges under the provided VPC network. Example: ['vertex-ai-ip-range'].
    resource_pools Sequence[AiPersistentResourceResourcePoolArgs]
    The spec of the pools of different resources. Structure is documented below.
    resource_runtime_spec AiPersistentResourceResourceRuntimeSpecArgs
    Configuration for the runtime on a PersistentResource instance. Structure is documented below.
    resource_runtimes Sequence[AiPersistentResourceResourceRuntimeArgs]
    Persistent Cluster runtime information as output Structure is documented below.
    satisfies_pzi bool
    Reserved for future use.
    satisfies_pzs bool
    Reserved for future use.
    start_time str
    Time when the PersistentResource for the first time entered the RUNNING state.
    state str
    The detailed state of a PersistentResource. Possible values: PROVISIONING RUNNING STOPPING ERROR REBOOTING UPDATING
    update_time str
    Time when the PersistentResource was most recently updated.
    createTime String
    Time when the PersistentResource was created.
    deletionPolicy String
    Whether Terraform will be prevented from destroying the resource. Defaults to DELETE. When a 'terraform destroy' or 'pulumi up' would delete the resource, the command will fail if this field is set to "PREVENT" in Terraform state. When set to "ABANDON", the command will remove the resource from Terraform management without updating or deleting the resource in the API. When set to "DELETE", deleting the resource is allowed.
    displayName String
    The display name of the PersistentResource. The name can be up to 128 characters long and can consist of any UTF-8 characters.
    effectiveLabels Map<String>
    All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
    encryptionSpec Property Map
    Represents a customer-managed encryption key specification that can be applied to a Vertex AI resource. Structure is documented below.
    errors List<Property Map>
    The Status type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by gRPC. Each Status message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the API Design Guide. Structure is documented below.
    labels Map<String>
    The labels with user-defined metadata to organize PersistentResource. Label keys and values can be no longer than 64 characters (Unicode codepoints), can only contain lowercase letters, numeric characters, underscores and dashes. International characters are allowed. See https://goo.gl/xmQnxf for more information and examples of labels. 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.
    location String
    The location of the PersistentResource. eg us-central1
    name String
    The ID to use for the PersistentResource, which become the final component of the PersistentResource's resource name. The maximum length is 63 characters, and valid characters are /^a-z?$/.
    network String
    The full name of the Compute Engine network to peered with Vertex AI to host the persistent resources. For example, projects/12345/global/networks/myVPC. Format is of the form projects/{project}/global/networks/{network}. Where {project} is a project number, as in 12345, and {network} is a network name. To specify this field, you must have already configured VPC Network Peering for Vertex AI. If this field is left unspecified, the resources aren't peered with any network.
    project String
    The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
    pscInterfaceConfig Property Map
    Configuration for PSC-I. Structure is documented below.
    pulumiLabels Map<String>
    The combination of labels configured directly on the resource and default labels configured on the provider.
    reservedIpRanges List<String>
    A list of names for the reserved IP ranges under the VPC network that can be used for this persistent resource. If set, we will deploy the persistent resource within the provided IP ranges. Otherwise, the persistent resource is deployed to any IP ranges under the provided VPC network. Example: ['vertex-ai-ip-range'].
    resourcePools List<Property Map>
    The spec of the pools of different resources. Structure is documented below.
    resourceRuntimeSpec Property Map
    Configuration for the runtime on a PersistentResource instance. Structure is documented below.
    resourceRuntimes List<Property Map>
    Persistent Cluster runtime information as output Structure is documented below.
    satisfiesPzi Boolean
    Reserved for future use.
    satisfiesPzs Boolean
    Reserved for future use.
    startTime String
    Time when the PersistentResource for the first time entered the RUNNING state.
    state String
    The detailed state of a PersistentResource. Possible values: PROVISIONING RUNNING STOPPING ERROR REBOOTING UPDATING
    updateTime String
    Time when the PersistentResource was most recently updated.

    Supporting Types

    AiPersistentResourceEncryptionSpec, AiPersistentResourceEncryptionSpecArgs

    KmsKeyName string
    Resource name of the Cloud KMS key used to protect the resource. The Cloud KMS key must be in the same region as the resource. It must have the format projects/{project}/locations/{location}/keyRings/{key_ring}/cryptoKeys/{crypto_key}.
    KmsKeyName string
    Resource name of the Cloud KMS key used to protect the resource. The Cloud KMS key must be in the same region as the resource. It must have the format projects/{project}/locations/{location}/keyRings/{key_ring}/cryptoKeys/{crypto_key}.
    kms_key_name string
    Resource name of the Cloud KMS key used to protect the resource. The Cloud KMS key must be in the same region as the resource. It must have the format projects/{project}/locations/{location}/keyRings/{key_ring}/cryptoKeys/{crypto_key}.
    kmsKeyName String
    Resource name of the Cloud KMS key used to protect the resource. The Cloud KMS key must be in the same region as the resource. It must have the format projects/{project}/locations/{location}/keyRings/{key_ring}/cryptoKeys/{crypto_key}.
    kmsKeyName string
    Resource name of the Cloud KMS key used to protect the resource. The Cloud KMS key must be in the same region as the resource. It must have the format projects/{project}/locations/{location}/keyRings/{key_ring}/cryptoKeys/{crypto_key}.
    kms_key_name str
    Resource name of the Cloud KMS key used to protect the resource. The Cloud KMS key must be in the same region as the resource. It must have the format projects/{project}/locations/{location}/keyRings/{key_ring}/cryptoKeys/{crypto_key}.
    kmsKeyName String
    Resource name of the Cloud KMS key used to protect the resource. The Cloud KMS key must be in the same region as the resource. It must have the format projects/{project}/locations/{location}/keyRings/{key_ring}/cryptoKeys/{crypto_key}.

    AiPersistentResourceError, AiPersistentResourceErrorArgs

    Code int
    (Output) The status code, which should be an enum value of google.rpc.Code.
    Message string
    (Output) A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.
    Code int
    (Output) The status code, which should be an enum value of google.rpc.Code.
    Message string
    (Output) A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.
    code number
    (Output) The status code, which should be an enum value of google.rpc.Code.
    message string
    (Output) A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.
    code Integer
    (Output) The status code, which should be an enum value of google.rpc.Code.
    message String
    (Output) A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.
    code number
    (Output) The status code, which should be an enum value of google.rpc.Code.
    message string
    (Output) A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.
    code int
    (Output) The status code, which should be an enum value of google.rpc.Code.
    message str
    (Output) A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.
    code Number
    (Output) The status code, which should be an enum value of google.rpc.Code.
    message String
    (Output) A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.

    AiPersistentResourcePscInterfaceConfig, AiPersistentResourcePscInterfaceConfigArgs

    DnsPeeringConfigs List<AiPersistentResourcePscInterfaceConfigDnsPeeringConfig>
    DNS peering configurations. When specified, Vertex AI will attempt to configure DNS peering zones in the tenant project VPC to resolve the specified domains using the target network's Cloud DNS. The user must grant the dns.peer role to the Vertex AI Service Agent on the target project. Structure is documented below.
    NetworkAttachment string
    The name of the Compute Engine network attachment to attach to the resource within the region and user project. To specify this field, you must have already created a network attachment. This field is only used for resources using PSC-I.
    DnsPeeringConfigs []AiPersistentResourcePscInterfaceConfigDnsPeeringConfig
    DNS peering configurations. When specified, Vertex AI will attempt to configure DNS peering zones in the tenant project VPC to resolve the specified domains using the target network's Cloud DNS. The user must grant the dns.peer role to the Vertex AI Service Agent on the target project. Structure is documented below.
    NetworkAttachment string
    The name of the Compute Engine network attachment to attach to the resource within the region and user project. To specify this field, you must have already created a network attachment. This field is only used for resources using PSC-I.
    dns_peering_configs list(object)
    DNS peering configurations. When specified, Vertex AI will attempt to configure DNS peering zones in the tenant project VPC to resolve the specified domains using the target network's Cloud DNS. The user must grant the dns.peer role to the Vertex AI Service Agent on the target project. Structure is documented below.
    network_attachment string
    The name of the Compute Engine network attachment to attach to the resource within the region and user project. To specify this field, you must have already created a network attachment. This field is only used for resources using PSC-I.
    dnsPeeringConfigs List<AiPersistentResourcePscInterfaceConfigDnsPeeringConfig>
    DNS peering configurations. When specified, Vertex AI will attempt to configure DNS peering zones in the tenant project VPC to resolve the specified domains using the target network's Cloud DNS. The user must grant the dns.peer role to the Vertex AI Service Agent on the target project. Structure is documented below.
    networkAttachment String
    The name of the Compute Engine network attachment to attach to the resource within the region and user project. To specify this field, you must have already created a network attachment. This field is only used for resources using PSC-I.
    dnsPeeringConfigs AiPersistentResourcePscInterfaceConfigDnsPeeringConfig[]
    DNS peering configurations. When specified, Vertex AI will attempt to configure DNS peering zones in the tenant project VPC to resolve the specified domains using the target network's Cloud DNS. The user must grant the dns.peer role to the Vertex AI Service Agent on the target project. Structure is documented below.
    networkAttachment string
    The name of the Compute Engine network attachment to attach to the resource within the region and user project. To specify this field, you must have already created a network attachment. This field is only used for resources using PSC-I.
    dns_peering_configs Sequence[AiPersistentResourcePscInterfaceConfigDnsPeeringConfig]
    DNS peering configurations. When specified, Vertex AI will attempt to configure DNS peering zones in the tenant project VPC to resolve the specified domains using the target network's Cloud DNS. The user must grant the dns.peer role to the Vertex AI Service Agent on the target project. Structure is documented below.
    network_attachment str
    The name of the Compute Engine network attachment to attach to the resource within the region and user project. To specify this field, you must have already created a network attachment. This field is only used for resources using PSC-I.
    dnsPeeringConfigs List<Property Map>
    DNS peering configurations. When specified, Vertex AI will attempt to configure DNS peering zones in the tenant project VPC to resolve the specified domains using the target network's Cloud DNS. The user must grant the dns.peer role to the Vertex AI Service Agent on the target project. Structure is documented below.
    networkAttachment String
    The name of the Compute Engine network attachment to attach to the resource within the region and user project. To specify this field, you must have already created a network attachment. This field is only used for resources using PSC-I.

    AiPersistentResourcePscInterfaceConfigDnsPeeringConfig, AiPersistentResourcePscInterfaceConfigDnsPeeringConfigArgs

    Domain string
    The DNS name suffix of the zone being peered to, e.g., "my-internal-domain.corp.". Must end with a dot.
    TargetNetwork string
    The VPC network name in the targetProject where the DNS zone specified by 'domain' is visible.
    TargetProject string
    The project ID hosting the Cloud DNS managed zone that contains the 'domain'. The Vertex AI Service Agent requires the dns.peer role on this project.
    Domain string
    The DNS name suffix of the zone being peered to, e.g., "my-internal-domain.corp.". Must end with a dot.
    TargetNetwork string
    The VPC network name in the targetProject where the DNS zone specified by 'domain' is visible.
    TargetProject string
    The project ID hosting the Cloud DNS managed zone that contains the 'domain'. The Vertex AI Service Agent requires the dns.peer role on this project.
    domain string
    The DNS name suffix of the zone being peered to, e.g., "my-internal-domain.corp.". Must end with a dot.
    target_network string
    The VPC network name in the targetProject where the DNS zone specified by 'domain' is visible.
    target_project string
    The project ID hosting the Cloud DNS managed zone that contains the 'domain'. The Vertex AI Service Agent requires the dns.peer role on this project.
    domain String
    The DNS name suffix of the zone being peered to, e.g., "my-internal-domain.corp.". Must end with a dot.
    targetNetwork String
    The VPC network name in the targetProject where the DNS zone specified by 'domain' is visible.
    targetProject String
    The project ID hosting the Cloud DNS managed zone that contains the 'domain'. The Vertex AI Service Agent requires the dns.peer role on this project.
    domain string
    The DNS name suffix of the zone being peered to, e.g., "my-internal-domain.corp.". Must end with a dot.
    targetNetwork string
    The VPC network name in the targetProject where the DNS zone specified by 'domain' is visible.
    targetProject string
    The project ID hosting the Cloud DNS managed zone that contains the 'domain'. The Vertex AI Service Agent requires the dns.peer role on this project.
    domain str
    The DNS name suffix of the zone being peered to, e.g., "my-internal-domain.corp.". Must end with a dot.
    target_network str
    The VPC network name in the targetProject where the DNS zone specified by 'domain' is visible.
    target_project str
    The project ID hosting the Cloud DNS managed zone that contains the 'domain'. The Vertex AI Service Agent requires the dns.peer role on this project.
    domain String
    The DNS name suffix of the zone being peered to, e.g., "my-internal-domain.corp.". Must end with a dot.
    targetNetwork String
    The VPC network name in the targetProject where the DNS zone specified by 'domain' is visible.
    targetProject String
    The project ID hosting the Cloud DNS managed zone that contains the 'domain'. The Vertex AI Service Agent requires the dns.peer role on this project.

    AiPersistentResourceResourcePool, AiPersistentResourceResourcePoolArgs

    MachineSpec AiPersistentResourceResourcePoolMachineSpec
    Specification of a single machine. Structure is documented below.
    AutoscalingSpec AiPersistentResourceResourcePoolAutoscalingSpec
    The min/max number of replicas allowed if enabling autoscaling Structure is documented below.
    DiskSpec AiPersistentResourceResourcePoolDiskSpec
    Represents the spec of disk options. Structure is documented below.
    Id string
    The unique ID in a PersistentResource for referring to this resource pool. User can specify it if necessary. Otherwise, it's generated automatically.
    ReplicaCount string
    The total number of machines to use for this resource pool.
    UsedReplicaCount string
    (Output) The number of machines currently in use by training jobs for this resource pool. Will replace idle_replica_count.
    MachineSpec AiPersistentResourceResourcePoolMachineSpec
    Specification of a single machine. Structure is documented below.
    AutoscalingSpec AiPersistentResourceResourcePoolAutoscalingSpec
    The min/max number of replicas allowed if enabling autoscaling Structure is documented below.
    DiskSpec AiPersistentResourceResourcePoolDiskSpec
    Represents the spec of disk options. Structure is documented below.
    Id string
    The unique ID in a PersistentResource for referring to this resource pool. User can specify it if necessary. Otherwise, it's generated automatically.
    ReplicaCount string
    The total number of machines to use for this resource pool.
    UsedReplicaCount string
    (Output) The number of machines currently in use by training jobs for this resource pool. Will replace idle_replica_count.
    machine_spec object
    Specification of a single machine. Structure is documented below.
    autoscaling_spec object
    The min/max number of replicas allowed if enabling autoscaling Structure is documented below.
    disk_spec object
    Represents the spec of disk options. Structure is documented below.
    id string
    The unique ID in a PersistentResource for referring to this resource pool. User can specify it if necessary. Otherwise, it's generated automatically.
    replica_count string
    The total number of machines to use for this resource pool.
    used_replica_count string
    (Output) The number of machines currently in use by training jobs for this resource pool. Will replace idle_replica_count.
    machineSpec AiPersistentResourceResourcePoolMachineSpec
    Specification of a single machine. Structure is documented below.
    autoscalingSpec AiPersistentResourceResourcePoolAutoscalingSpec
    The min/max number of replicas allowed if enabling autoscaling Structure is documented below.
    diskSpec AiPersistentResourceResourcePoolDiskSpec
    Represents the spec of disk options. Structure is documented below.
    id String
    The unique ID in a PersistentResource for referring to this resource pool. User can specify it if necessary. Otherwise, it's generated automatically.
    replicaCount String
    The total number of machines to use for this resource pool.
    usedReplicaCount String
    (Output) The number of machines currently in use by training jobs for this resource pool. Will replace idle_replica_count.
    machineSpec AiPersistentResourceResourcePoolMachineSpec
    Specification of a single machine. Structure is documented below.
    autoscalingSpec AiPersistentResourceResourcePoolAutoscalingSpec
    The min/max number of replicas allowed if enabling autoscaling Structure is documented below.
    diskSpec AiPersistentResourceResourcePoolDiskSpec
    Represents the spec of disk options. Structure is documented below.
    id string
    The unique ID in a PersistentResource for referring to this resource pool. User can specify it if necessary. Otherwise, it's generated automatically.
    replicaCount string
    The total number of machines to use for this resource pool.
    usedReplicaCount string
    (Output) The number of machines currently in use by training jobs for this resource pool. Will replace idle_replica_count.
    machine_spec AiPersistentResourceResourcePoolMachineSpec
    Specification of a single machine. Structure is documented below.
    autoscaling_spec AiPersistentResourceResourcePoolAutoscalingSpec
    The min/max number of replicas allowed if enabling autoscaling Structure is documented below.
    disk_spec AiPersistentResourceResourcePoolDiskSpec
    Represents the spec of disk options. Structure is documented below.
    id str
    The unique ID in a PersistentResource for referring to this resource pool. User can specify it if necessary. Otherwise, it's generated automatically.
    replica_count str
    The total number of machines to use for this resource pool.
    used_replica_count str
    (Output) The number of machines currently in use by training jobs for this resource pool. Will replace idle_replica_count.
    machineSpec Property Map
    Specification of a single machine. Structure is documented below.
    autoscalingSpec Property Map
    The min/max number of replicas allowed if enabling autoscaling Structure is documented below.
    diskSpec Property Map
    Represents the spec of disk options. Structure is documented below.
    id String
    The unique ID in a PersistentResource for referring to this resource pool. User can specify it if necessary. Otherwise, it's generated automatically.
    replicaCount String
    The total number of machines to use for this resource pool.
    usedReplicaCount String
    (Output) The number of machines currently in use by training jobs for this resource pool. Will replace idle_replica_count.

    AiPersistentResourceResourcePoolAutoscalingSpec, AiPersistentResourceResourcePoolAutoscalingSpecArgs

    MaxReplicaCount string
    max replicas in the node pool, must be ≥ replicaCount and > minReplicaCount or will throw error
    MinReplicaCount string
    min replicas in the node pool, must be ≤ replicaCount and < maxReplicaCount or will throw error. For autoscaling enabled Ray-on-Vertex, we allow minReplicaCount of a resourcePool to be 0 to match the OSS Ray behavior(https://docs.ray.io/en/latest/cluster/vms/user-guides/configuring-autoscaling.html#cluster-config-parameters). As for Persistent Resource, the minReplicaCount must be > 0, we added a corresponding validation inside CreatePersistentResourceRequestValidator.java.
    MaxReplicaCount string
    max replicas in the node pool, must be ≥ replicaCount and > minReplicaCount or will throw error
    MinReplicaCount string
    min replicas in the node pool, must be ≤ replicaCount and < maxReplicaCount or will throw error. For autoscaling enabled Ray-on-Vertex, we allow minReplicaCount of a resourcePool to be 0 to match the OSS Ray behavior(https://docs.ray.io/en/latest/cluster/vms/user-guides/configuring-autoscaling.html#cluster-config-parameters). As for Persistent Resource, the minReplicaCount must be > 0, we added a corresponding validation inside CreatePersistentResourceRequestValidator.java.
    max_replica_count string
    max replicas in the node pool, must be ≥ replicaCount and > minReplicaCount or will throw error
    min_replica_count string
    min replicas in the node pool, must be ≤ replicaCount and < maxReplicaCount or will throw error. For autoscaling enabled Ray-on-Vertex, we allow minReplicaCount of a resourcePool to be 0 to match the OSS Ray behavior(https://docs.ray.io/en/latest/cluster/vms/user-guides/configuring-autoscaling.html#cluster-config-parameters). As for Persistent Resource, the minReplicaCount must be > 0, we added a corresponding validation inside CreatePersistentResourceRequestValidator.java.
    maxReplicaCount String
    max replicas in the node pool, must be ≥ replicaCount and > minReplicaCount or will throw error
    minReplicaCount String
    min replicas in the node pool, must be ≤ replicaCount and < maxReplicaCount or will throw error. For autoscaling enabled Ray-on-Vertex, we allow minReplicaCount of a resourcePool to be 0 to match the OSS Ray behavior(https://docs.ray.io/en/latest/cluster/vms/user-guides/configuring-autoscaling.html#cluster-config-parameters). As for Persistent Resource, the minReplicaCount must be > 0, we added a corresponding validation inside CreatePersistentResourceRequestValidator.java.
    maxReplicaCount string
    max replicas in the node pool, must be ≥ replicaCount and > minReplicaCount or will throw error
    minReplicaCount string
    min replicas in the node pool, must be ≤ replicaCount and < maxReplicaCount or will throw error. For autoscaling enabled Ray-on-Vertex, we allow minReplicaCount of a resourcePool to be 0 to match the OSS Ray behavior(https://docs.ray.io/en/latest/cluster/vms/user-guides/configuring-autoscaling.html#cluster-config-parameters). As for Persistent Resource, the minReplicaCount must be > 0, we added a corresponding validation inside CreatePersistentResourceRequestValidator.java.
    max_replica_count str
    max replicas in the node pool, must be ≥ replicaCount and > minReplicaCount or will throw error
    min_replica_count str
    min replicas in the node pool, must be ≤ replicaCount and < maxReplicaCount or will throw error. For autoscaling enabled Ray-on-Vertex, we allow minReplicaCount of a resourcePool to be 0 to match the OSS Ray behavior(https://docs.ray.io/en/latest/cluster/vms/user-guides/configuring-autoscaling.html#cluster-config-parameters). As for Persistent Resource, the minReplicaCount must be > 0, we added a corresponding validation inside CreatePersistentResourceRequestValidator.java.
    maxReplicaCount String
    max replicas in the node pool, must be ≥ replicaCount and > minReplicaCount or will throw error
    minReplicaCount String
    min replicas in the node pool, must be ≤ replicaCount and < maxReplicaCount or will throw error. For autoscaling enabled Ray-on-Vertex, we allow minReplicaCount of a resourcePool to be 0 to match the OSS Ray behavior(https://docs.ray.io/en/latest/cluster/vms/user-guides/configuring-autoscaling.html#cluster-config-parameters). As for Persistent Resource, the minReplicaCount must be > 0, we added a corresponding validation inside CreatePersistentResourceRequestValidator.java.

    AiPersistentResourceResourcePoolDiskSpec, AiPersistentResourceResourcePoolDiskSpecArgs

    BootDiskSizeGb int
    Size in GB of the boot disk (default is 100GB).
    BootDiskType string
    Type of the boot disk. For non-A3U machines, the default value is "pd-ssd", for A3U machines, the default value is "hyperdisk-balanced". Valid values: "pd-ssd" (Persistent Disk Solid State Drive), "pd-standard" (Persistent Disk Hard Disk Drive) or "hyperdisk-balanced".
    BootDiskSizeGb int
    Size in GB of the boot disk (default is 100GB).
    BootDiskType string
    Type of the boot disk. For non-A3U machines, the default value is "pd-ssd", for A3U machines, the default value is "hyperdisk-balanced". Valid values: "pd-ssd" (Persistent Disk Solid State Drive), "pd-standard" (Persistent Disk Hard Disk Drive) or "hyperdisk-balanced".
    boot_disk_size_gb number
    Size in GB of the boot disk (default is 100GB).
    boot_disk_type string
    Type of the boot disk. For non-A3U machines, the default value is "pd-ssd", for A3U machines, the default value is "hyperdisk-balanced". Valid values: "pd-ssd" (Persistent Disk Solid State Drive), "pd-standard" (Persistent Disk Hard Disk Drive) or "hyperdisk-balanced".
    bootDiskSizeGb Integer
    Size in GB of the boot disk (default is 100GB).
    bootDiskType String
    Type of the boot disk. For non-A3U machines, the default value is "pd-ssd", for A3U machines, the default value is "hyperdisk-balanced". Valid values: "pd-ssd" (Persistent Disk Solid State Drive), "pd-standard" (Persistent Disk Hard Disk Drive) or "hyperdisk-balanced".
    bootDiskSizeGb number
    Size in GB of the boot disk (default is 100GB).
    bootDiskType string
    Type of the boot disk. For non-A3U machines, the default value is "pd-ssd", for A3U machines, the default value is "hyperdisk-balanced". Valid values: "pd-ssd" (Persistent Disk Solid State Drive), "pd-standard" (Persistent Disk Hard Disk Drive) or "hyperdisk-balanced".
    boot_disk_size_gb int
    Size in GB of the boot disk (default is 100GB).
    boot_disk_type str
    Type of the boot disk. For non-A3U machines, the default value is "pd-ssd", for A3U machines, the default value is "hyperdisk-balanced". Valid values: "pd-ssd" (Persistent Disk Solid State Drive), "pd-standard" (Persistent Disk Hard Disk Drive) or "hyperdisk-balanced".
    bootDiskSizeGb Number
    Size in GB of the boot disk (default is 100GB).
    bootDiskType String
    Type of the boot disk. For non-A3U machines, the default value is "pd-ssd", for A3U machines, the default value is "hyperdisk-balanced". Valid values: "pd-ssd" (Persistent Disk Solid State Drive), "pd-standard" (Persistent Disk Hard Disk Drive) or "hyperdisk-balanced".

    AiPersistentResourceResourcePoolMachineSpec, AiPersistentResourceResourcePoolMachineSpecArgs

    AcceleratorCount int
    The number of accelerators to attach to the machine.
    AcceleratorType string
    The type of accelerator(s) that may be attached to the machine. Possible values: NVIDIA_TESLA_K80 NVIDIA_TESLA_P100 NVIDIA_TESLA_V100 NVIDIA_TESLA_P4 NVIDIA_TESLA_T4 NVIDIA_TESLA_A100 NVIDIA_A100_80GB NVIDIA_L4 NVIDIA_H100_80GB NVIDIA_H100_MEGA_80GB NVIDIA_H200_141GB NVIDIA_B200 NVIDIA_GB200 NVIDIA_RTX_PRO_6000 TPU_V2 TPU_V3 TPU_V4_POD TPU_V5_LITEPOD
    MachineType string
    The type of the machine. See the list of machine types supported for prediction See the list of machine types supported for custom training.
    AcceleratorCount int
    The number of accelerators to attach to the machine.
    AcceleratorType string
    The type of accelerator(s) that may be attached to the machine. Possible values: NVIDIA_TESLA_K80 NVIDIA_TESLA_P100 NVIDIA_TESLA_V100 NVIDIA_TESLA_P4 NVIDIA_TESLA_T4 NVIDIA_TESLA_A100 NVIDIA_A100_80GB NVIDIA_L4 NVIDIA_H100_80GB NVIDIA_H100_MEGA_80GB NVIDIA_H200_141GB NVIDIA_B200 NVIDIA_GB200 NVIDIA_RTX_PRO_6000 TPU_V2 TPU_V3 TPU_V4_POD TPU_V5_LITEPOD
    MachineType string
    The type of the machine. See the list of machine types supported for prediction See the list of machine types supported for custom training.
    accelerator_count number
    The number of accelerators to attach to the machine.
    accelerator_type string
    The type of accelerator(s) that may be attached to the machine. Possible values: NVIDIA_TESLA_K80 NVIDIA_TESLA_P100 NVIDIA_TESLA_V100 NVIDIA_TESLA_P4 NVIDIA_TESLA_T4 NVIDIA_TESLA_A100 NVIDIA_A100_80GB NVIDIA_L4 NVIDIA_H100_80GB NVIDIA_H100_MEGA_80GB NVIDIA_H200_141GB NVIDIA_B200 NVIDIA_GB200 NVIDIA_RTX_PRO_6000 TPU_V2 TPU_V3 TPU_V4_POD TPU_V5_LITEPOD
    machine_type string
    The type of the machine. See the list of machine types supported for prediction See the list of machine types supported for custom training.
    acceleratorCount Integer
    The number of accelerators to attach to the machine.
    acceleratorType String
    The type of accelerator(s) that may be attached to the machine. Possible values: NVIDIA_TESLA_K80 NVIDIA_TESLA_P100 NVIDIA_TESLA_V100 NVIDIA_TESLA_P4 NVIDIA_TESLA_T4 NVIDIA_TESLA_A100 NVIDIA_A100_80GB NVIDIA_L4 NVIDIA_H100_80GB NVIDIA_H100_MEGA_80GB NVIDIA_H200_141GB NVIDIA_B200 NVIDIA_GB200 NVIDIA_RTX_PRO_6000 TPU_V2 TPU_V3 TPU_V4_POD TPU_V5_LITEPOD
    machineType String
    The type of the machine. See the list of machine types supported for prediction See the list of machine types supported for custom training.
    acceleratorCount number
    The number of accelerators to attach to the machine.
    acceleratorType string
    The type of accelerator(s) that may be attached to the machine. Possible values: NVIDIA_TESLA_K80 NVIDIA_TESLA_P100 NVIDIA_TESLA_V100 NVIDIA_TESLA_P4 NVIDIA_TESLA_T4 NVIDIA_TESLA_A100 NVIDIA_A100_80GB NVIDIA_L4 NVIDIA_H100_80GB NVIDIA_H100_MEGA_80GB NVIDIA_H200_141GB NVIDIA_B200 NVIDIA_GB200 NVIDIA_RTX_PRO_6000 TPU_V2 TPU_V3 TPU_V4_POD TPU_V5_LITEPOD
    machineType string
    The type of the machine. See the list of machine types supported for prediction See the list of machine types supported for custom training.
    accelerator_count int
    The number of accelerators to attach to the machine.
    accelerator_type str
    The type of accelerator(s) that may be attached to the machine. Possible values: NVIDIA_TESLA_K80 NVIDIA_TESLA_P100 NVIDIA_TESLA_V100 NVIDIA_TESLA_P4 NVIDIA_TESLA_T4 NVIDIA_TESLA_A100 NVIDIA_A100_80GB NVIDIA_L4 NVIDIA_H100_80GB NVIDIA_H100_MEGA_80GB NVIDIA_H200_141GB NVIDIA_B200 NVIDIA_GB200 NVIDIA_RTX_PRO_6000 TPU_V2 TPU_V3 TPU_V4_POD TPU_V5_LITEPOD
    machine_type str
    The type of the machine. See the list of machine types supported for prediction See the list of machine types supported for custom training.
    acceleratorCount Number
    The number of accelerators to attach to the machine.
    acceleratorType String
    The type of accelerator(s) that may be attached to the machine. Possible values: NVIDIA_TESLA_K80 NVIDIA_TESLA_P100 NVIDIA_TESLA_V100 NVIDIA_TESLA_P4 NVIDIA_TESLA_T4 NVIDIA_TESLA_A100 NVIDIA_A100_80GB NVIDIA_L4 NVIDIA_H100_80GB NVIDIA_H100_MEGA_80GB NVIDIA_H200_141GB NVIDIA_B200 NVIDIA_GB200 NVIDIA_RTX_PRO_6000 TPU_V2 TPU_V3 TPU_V4_POD TPU_V5_LITEPOD
    machineType String
    The type of the machine. See the list of machine types supported for prediction See the list of machine types supported for custom training.

    AiPersistentResourceResourceRuntime, AiPersistentResourceResourceRuntimeArgs

    AccessUris Dictionary<string, string>
    (Output) URIs for user to connect to the Cluster. Example: { "RAY_HEAD_NODE_INTERNAL_IP": "head-node-IP:10001" "RAY_DASHBOARD_URI": "ray-dashboard-address:8888" }
    AccessUris map[string]string
    (Output) URIs for user to connect to the Cluster. Example: { "RAY_HEAD_NODE_INTERNAL_IP": "head-node-IP:10001" "RAY_DASHBOARD_URI": "ray-dashboard-address:8888" }
    access_uris map(string)
    (Output) URIs for user to connect to the Cluster. Example: { "RAY_HEAD_NODE_INTERNAL_IP": "head-node-IP:10001" "RAY_DASHBOARD_URI": "ray-dashboard-address:8888" }
    accessUris Map<String,String>
    (Output) URIs for user to connect to the Cluster. Example: { "RAY_HEAD_NODE_INTERNAL_IP": "head-node-IP:10001" "RAY_DASHBOARD_URI": "ray-dashboard-address:8888" }
    accessUris {[key: string]: string}
    (Output) URIs for user to connect to the Cluster. Example: { "RAY_HEAD_NODE_INTERNAL_IP": "head-node-IP:10001" "RAY_DASHBOARD_URI": "ray-dashboard-address:8888" }
    access_uris Mapping[str, str]
    (Output) URIs for user to connect to the Cluster. Example: { "RAY_HEAD_NODE_INTERNAL_IP": "head-node-IP:10001" "RAY_DASHBOARD_URI": "ray-dashboard-address:8888" }
    accessUris Map<String>
    (Output) URIs for user to connect to the Cluster. Example: { "RAY_HEAD_NODE_INTERNAL_IP": "head-node-IP:10001" "RAY_DASHBOARD_URI": "ray-dashboard-address:8888" }

    AiPersistentResourceResourceRuntimeSpec, AiPersistentResourceResourceRuntimeSpecArgs

    ServiceAccountSpec AiPersistentResourceResourceRuntimeSpecServiceAccountSpec
    Configuration for the use of custom service account to run the workloads. Structure is documented below.
    ServiceAccountSpec AiPersistentResourceResourceRuntimeSpecServiceAccountSpec
    Configuration for the use of custom service account to run the workloads. Structure is documented below.
    service_account_spec object
    Configuration for the use of custom service account to run the workloads. Structure is documented below.
    serviceAccountSpec AiPersistentResourceResourceRuntimeSpecServiceAccountSpec
    Configuration for the use of custom service account to run the workloads. Structure is documented below.
    serviceAccountSpec AiPersistentResourceResourceRuntimeSpecServiceAccountSpec
    Configuration for the use of custom service account to run the workloads. Structure is documented below.
    service_account_spec AiPersistentResourceResourceRuntimeSpecServiceAccountSpec
    Configuration for the use of custom service account to run the workloads. Structure is documented below.
    serviceAccountSpec Property Map
    Configuration for the use of custom service account to run the workloads. Structure is documented below.

    AiPersistentResourceResourceRuntimeSpecServiceAccountSpec, AiPersistentResourceResourceRuntimeSpecServiceAccountSpecArgs

    EnableCustomServiceAccount bool
    If true, custom user-managed service account is enforced to run any workloads (for example, Vertex Jobs) on the resource. Otherwise, uses the Vertex AI Custom Code Service Agent.
    EnableCustomServiceAccount bool
    If true, custom user-managed service account is enforced to run any workloads (for example, Vertex Jobs) on the resource. Otherwise, uses the Vertex AI Custom Code Service Agent.
    enable_custom_service_account bool
    If true, custom user-managed service account is enforced to run any workloads (for example, Vertex Jobs) on the resource. Otherwise, uses the Vertex AI Custom Code Service Agent.
    enableCustomServiceAccount Boolean
    If true, custom user-managed service account is enforced to run any workloads (for example, Vertex Jobs) on the resource. Otherwise, uses the Vertex AI Custom Code Service Agent.
    enableCustomServiceAccount boolean
    If true, custom user-managed service account is enforced to run any workloads (for example, Vertex Jobs) on the resource. Otherwise, uses the Vertex AI Custom Code Service Agent.
    enable_custom_service_account bool
    If true, custom user-managed service account is enforced to run any workloads (for example, Vertex Jobs) on the resource. Otherwise, uses the Vertex AI Custom Code Service Agent.
    enableCustomServiceAccount Boolean
    If true, custom user-managed service account is enforced to run any workloads (for example, Vertex Jobs) on the resource. Otherwise, uses the Vertex AI Custom Code Service Agent.

    Import

    PersistentResource can be imported using any of these accepted formats:

    • projects/{{project}}/locations/{{location}}/persistentResources/{{name}}
    • {{project}}/{{location}}/{{name}}
    • {{location}}/{{name}}

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

    $ pulumi import gcp:vertex/aiPersistentResource:AiPersistentResource default projects/{{project}}/locations/{{location}}/persistentResources/{{name}}
    $ pulumi import gcp:vertex/aiPersistentResource:AiPersistentResource default {{project}}/{{location}}/{{name}}
    $ pulumi import gcp:vertex/aiPersistentResource:AiPersistentResource default {{location}}/{{name}}
    

    To learn more about importing existing cloud resources, see Importing resources.

    Package Details

    Repository
    Google Cloud (GCP) Classic pulumi/pulumi-gcp
    License
    Apache-2.0
    Notes
    This Pulumi package is based on the google-beta Terraform Provider.
    gcp logo
    Viewing docs for Google Cloud v9.34.0
    published on Monday, Aug 10, 2026 by Pulumi

      Try Pulumi Cloud free.
      Your team will thank you.

      Start free trial