published on Monday, Aug 10, 2026 by Pulumi
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:
- Resource
Pools List<AiPersistent Resource Resource Pool> - 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 AiPersistent Resource Encryption Spec - 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
effectiveLabelsfor 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 formprojects/{project}/global/networks/{network}. Where {project} is a project number, as in12345, 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 AiConfig Persistent Resource Psc Interface Config - Configuration for PSC-I. Structure is documented below.
- Reserved
Ip List<string>Ranges - 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 AiSpec Persistent Resource Resource Runtime Spec - Configuration for the runtime on a PersistentResource instance. Structure is documented below.
- Resource
Pools []AiPersistent Resource Resource Pool Args - 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 AiPersistent Resource Encryption Spec Args - 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
effectiveLabelsfor 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 formprojects/{project}/global/networks/{network}. Where {project} is a project number, as in12345, 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 AiConfig Persistent Resource Psc Interface Config Args - Configuration for PSC-I. Structure is documented below.
- Reserved
Ip []stringRanges - 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 AiSpec Persistent Resource Resource Runtime Spec Args - 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
effectiveLabelsfor 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 formprojects/{project}/global/networks/{network}. Where {project} is a project number, as in12345, 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_ objectconfig - Configuration for PSC-I. Structure is documented below.
- reserved_
ip_ list(string)ranges - 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_ objectspec - Configuration for the runtime on a PersistentResource instance. Structure is documented below.
- resource
Pools List<AiPersistent Resource Resource Pool> - 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 AiPersistent Resource Encryption Spec - 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
effectiveLabelsfor 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 formprojects/{project}/global/networks/{network}. Where {project} is a project number, as in12345, 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 AiConfig Persistent Resource Psc Interface Config - Configuration for PSC-I. Structure is documented below.
- reserved
Ip List<String>Ranges - 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 AiSpec Persistent Resource Resource Runtime Spec - Configuration for the runtime on a PersistentResource instance. Structure is documented below.
- resource
Pools AiPersistent Resource Resource Pool[] - 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 AiPersistent Resource Encryption Spec - 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
effectiveLabelsfor 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 formprojects/{project}/global/networks/{network}. Where {project} is a project number, as in12345, 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 AiConfig Persistent Resource Psc Interface Config - Configuration for PSC-I. Structure is documented below.
- reserved
Ip string[]Ranges - 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 AiSpec Persistent Resource Resource Runtime Spec - Configuration for the runtime on a PersistentResource instance. Structure is documented below.
- resource_
pools Sequence[AiPersistent Resource Resource Pool Args] - 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 AiPersistent Resource Encryption Spec Args - 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
effectiveLabelsfor 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 formprojects/{project}/global/networks/{network}. Where {project} is a project number, as in12345, 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_ Aiconfig Persistent Resource Psc Interface Config Args - Configuration for PSC-I. Structure is documented below.
- reserved_
ip_ Sequence[str]ranges - 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_ Aispec Persistent Resource Resource Runtime Spec Args - Configuration for the runtime on a PersistentResource instance. Structure is documented below.
- resource
Pools List<Property Map> - 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 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
effectiveLabelsfor 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 formprojects/{project}/global/networks/{network}. Where {project} is a project number, as in12345, 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 Property MapConfig - Configuration for PSC-I. Structure is documented below.
- reserved
Ip List<String>Ranges - 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 Property MapSpec - 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:
- Create
Time string - Time when the PersistentResource was created.
- Effective
Labels 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<Ai
Persistent Resource Error> - The
Statustype defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by gRPC. EachStatusmessage 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 Dictionary<string, string> - The combination of labels configured directly on the resource and default labels configured on the provider.
- Resource
Runtimes List<AiPersistent Resource Resource Runtime> - 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
RUNNINGstate. - 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.
- Create
Time string - Time when the PersistentResource was created.
- Effective
Labels 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
[]Ai
Persistent Resource Error - The
Statustype defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by gRPC. EachStatusmessage 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]string - The combination of labels configured directly on the resource and default labels configured on the provider.
- Resource
Runtimes []AiPersistent Resource Resource Runtime - 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
RUNNINGstate. - 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.
- 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
Statustype defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by gRPC. EachStatusmessage 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
RUNNINGstate. - 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.
- create
Time String - Time when the PersistentResource was created.
- effective
Labels 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<Ai
Persistent Resource Error> - The
Statustype defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by gRPC. EachStatusmessage 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,String> - The combination of labels configured directly on the resource and default labels configured on the provider.
- resource
Runtimes List<AiPersistent Resource Resource Runtime> - Persistent Cluster runtime information as output Structure is documented below.
- satisfies
Pzi Boolean - Reserved for future use.
- satisfies
Pzs Boolean - Reserved for future use.
- start
Time String - Time when the PersistentResource for the first time entered the
RUNNINGstate. - 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.
- create
Time string - Time when the PersistentResource was created.
- effective
Labels {[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
Ai
Persistent Resource Error[] - The
Statustype defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by gRPC. EachStatusmessage 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 {[key: string]: string} - The combination of labels configured directly on the resource and default labels configured on the provider.
- resource
Runtimes AiPersistent Resource Resource Runtime[] - Persistent Cluster runtime information as output Structure is documented below.
- satisfies
Pzi boolean - Reserved for future use.
- satisfies
Pzs boolean - Reserved for future use.
- start
Time string - Time when the PersistentResource for the first time entered the
RUNNINGstate. - 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.
- 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[Ai
Persistent Resource Error] - The
Statustype defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by gRPC. EachStatusmessage 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[AiPersistent Resource Resource Runtime] - 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
RUNNINGstate. - 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.
- 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<Property Map>
- The
Statustype defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by gRPC. EachStatusmessage 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<Property Map> - Persistent Cluster runtime information as output Structure is documented below.
- satisfies
Pzi Boolean - Reserved for future use.
- satisfies
Pzs Boolean - Reserved for future use.
- start
Time String - Time when the PersistentResource for the first time entered the
RUNNINGstate. - 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.
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) -> AiPersistentResourcefunc 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.
- 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 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.
- Encryption
Spec AiPersistent Resource Encryption Spec - Represents a customer-managed encryption key specification that can be applied to a Vertex AI resource. Structure is documented below.
- Errors
List<Ai
Persistent Resource Error> - The
Statustype defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by gRPC. EachStatusmessage 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
effectiveLabelsfor 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 formprojects/{project}/global/networks/{network}. Where {project} is a project number, as in12345, 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 AiConfig Persistent Resource Psc Interface Config - Configuration for PSC-I. Structure is documented below.
- Pulumi
Labels Dictionary<string, string> - The combination of labels configured directly on the resource and default labels configured on the provider.
- Reserved
Ip List<string>Ranges - 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<AiPersistent Resource Resource Pool> - The spec of the pools of different resources. Structure is documented below.
- Resource
Runtime AiSpec Persistent Resource Resource Runtime Spec - Configuration for the runtime on a PersistentResource instance. Structure is documented below.
- Resource
Runtimes List<AiPersistent Resource Resource Runtime> - 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
RUNNINGstate. - 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.
- 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]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 AiPersistent Resource Encryption Spec Args - Represents a customer-managed encryption key specification that can be applied to a Vertex AI resource. Structure is documented below.
- Errors
[]Ai
Persistent Resource Error Args - The
Statustype defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by gRPC. EachStatusmessage 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
effectiveLabelsfor 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 formprojects/{project}/global/networks/{network}. Where {project} is a project number, as in12345, 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 AiConfig Persistent Resource Psc Interface Config Args - Configuration for PSC-I. Structure is documented below.
- Pulumi
Labels map[string]string - The combination of labels configured directly on the resource and default labels configured on the provider.
- Reserved
Ip []stringRanges - 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 []AiPersistent Resource Resource Pool Args - The spec of the pools of different resources. Structure is documented below.
- Resource
Runtime AiSpec Persistent Resource Resource Runtime Spec Args - Configuration for the runtime on a PersistentResource instance. Structure is documented below.
- Resource
Runtimes []AiPersistent Resource Resource Runtime Args - 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
RUNNINGstate. - 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.
- 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
Statustype defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by gRPC. EachStatusmessage 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
effectiveLabelsfor 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 formprojects/{project}/global/networks/{network}. Where {project} is a project number, as in12345, 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_ objectconfig - 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_ list(string)ranges - 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_ objectspec - 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
RUNNINGstate. - 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.
- 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,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 AiPersistent Resource Encryption Spec - Represents a customer-managed encryption key specification that can be applied to a Vertex AI resource. Structure is documented below.
- errors
List<Ai
Persistent Resource Error> - The
Statustype defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by gRPC. EachStatusmessage 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
effectiveLabelsfor 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 formprojects/{project}/global/networks/{network}. Where {project} is a project number, as in12345, 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 AiConfig Persistent Resource Psc Interface Config - Configuration for PSC-I. Structure is documented below.
- pulumi
Labels Map<String,String> - The combination of labels configured directly on the resource and default labels configured on the provider.
- reserved
Ip List<String>Ranges - 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<AiPersistent Resource Resource Pool> - The spec of the pools of different resources. Structure is documented below.
- resource
Runtime AiSpec Persistent Resource Resource Runtime Spec - Configuration for the runtime on a PersistentResource instance. Structure is documented below.
- resource
Runtimes List<AiPersistent Resource Resource Runtime> - Persistent Cluster runtime information as output Structure is documented below.
- satisfies
Pzi Boolean - Reserved for future use.
- satisfies
Pzs Boolean - Reserved for future use.
- start
Time String - Time when the PersistentResource for the first time entered the
RUNNINGstate. - 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.
- 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 {[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.
- encryption
Spec AiPersistent Resource Encryption Spec - Represents a customer-managed encryption key specification that can be applied to a Vertex AI resource. Structure is documented below.
- errors
Ai
Persistent Resource Error[] - The
Statustype defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by gRPC. EachStatusmessage 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
effectiveLabelsfor 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 formprojects/{project}/global/networks/{network}. Where {project} is a project number, as in12345, 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 AiConfig Persistent Resource Psc Interface Config - Configuration for PSC-I. Structure is documented below.
- pulumi
Labels {[key: string]: string} - The combination of labels configured directly on the resource and default labels configured on the provider.
- reserved
Ip string[]Ranges - 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 AiPersistent Resource Resource Pool[] - The spec of the pools of different resources. Structure is documented below.
- resource
Runtime AiSpec Persistent Resource Resource Runtime Spec - Configuration for the runtime on a PersistentResource instance. Structure is documented below.
- resource
Runtimes AiPersistent Resource Resource Runtime[] - Persistent Cluster runtime information as output Structure is documented below.
- satisfies
Pzi boolean - Reserved for future use.
- satisfies
Pzs boolean - Reserved for future use.
- start
Time string - Time when the PersistentResource for the first time entered the
RUNNINGstate. - 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.
- 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 AiPersistent Resource Encryption Spec Args - Represents a customer-managed encryption key specification that can be applied to a Vertex AI resource. Structure is documented below.
- errors
Sequence[Ai
Persistent Resource Error Args] - The
Statustype defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by gRPC. EachStatusmessage 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
effectiveLabelsfor 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 formprojects/{project}/global/networks/{network}. Where {project} is a project number, as in12345, 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_ Aiconfig Persistent Resource Psc Interface Config Args - 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_ Sequence[str]ranges - 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[AiPersistent Resource Resource Pool Args] - The spec of the pools of different resources. Structure is documented below.
- resource_
runtime_ Aispec Persistent Resource Resource Runtime Spec Args - Configuration for the runtime on a PersistentResource instance. Structure is documented below.
- resource_
runtimes Sequence[AiPersistent Resource Resource Runtime Args] - 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
RUNNINGstate. - 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.
- 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 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
Statustype defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by gRPC. EachStatusmessage 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
effectiveLabelsfor 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 formprojects/{project}/global/networks/{network}. Where {project} is a project number, as in12345, 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 Property MapConfig - 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 List<String>Ranges - 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<Property Map> - The spec of the pools of different resources. Structure is documented below.
- resource
Runtime Property MapSpec - Configuration for the runtime on a PersistentResource instance. Structure is documented below.
- resource
Runtimes List<Property Map> - Persistent Cluster runtime information as output Structure is documented below.
- satisfies
Pzi Boolean - Reserved for future use.
- satisfies
Pzs Boolean - Reserved for future use.
- start
Time String - Time when the PersistentResource for the first time entered the
RUNNINGstate. - 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.
Supporting Types
AiPersistentResourceEncryptionSpec, AiPersistentResourceEncryptionSpecArgs
- Kms
Key stringName - 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 stringName - 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_ stringname - 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 StringName - 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 stringName - 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_ strname - 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 StringName - 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
AiPersistentResourcePscInterfaceConfig, AiPersistentResourcePscInterfaceConfigArgs
- Dns
Peering List<AiConfigs Persistent Resource Psc Interface Config Dns Peering Config> - 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.
- Dns
Peering []AiConfigs Persistent Resource Psc Interface Config Dns Peering Config - 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.
- dns_
peering_ list(object)configs - 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.
- dns
Peering List<AiConfigs Persistent Resource Psc Interface Config Dns Peering Config> - 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.
- dns
Peering AiConfigs Persistent Resource Psc Interface Config Dns Peering Config[] - 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.
- dns_
peering_ Sequence[Aiconfigs Persistent Resource Psc Interface Config Dns Peering Config] - 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.
- dns
Peering List<Property Map>Configs - 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.
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.
- 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.
- 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.
- 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.
- 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.
- 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 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.
- 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.
AiPersistentResourceResourcePool, AiPersistentResourceResourcePoolArgs
- Machine
Spec AiPersistent Resource Resource Pool Machine Spec - Specification of a single machine. Structure is documented below.
- Autoscaling
Spec AiPersistent Resource Resource Pool Autoscaling Spec - The min/max number of replicas allowed if enabling autoscaling Structure is documented below.
- Disk
Spec AiPersistent Resource Resource Pool Disk Spec - 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 stringCount - (Output) The number of machines currently in use by training jobs for this resource pool. Will replace idle_replica_count.
- Machine
Spec AiPersistent Resource Resource Pool Machine Spec - Specification of a single machine. Structure is documented below.
- Autoscaling
Spec AiPersistent Resource Resource Pool Autoscaling Spec - The min/max number of replicas allowed if enabling autoscaling Structure is documented below.
- Disk
Spec AiPersistent Resource Resource Pool Disk Spec - 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 stringCount - (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_ stringcount - (Output) The number of machines currently in use by training jobs for this resource pool. Will replace idle_replica_count.
- machine
Spec AiPersistent Resource Resource Pool Machine Spec - Specification of a single machine. Structure is documented below.
- autoscaling
Spec AiPersistent Resource Resource Pool Autoscaling Spec - The min/max number of replicas allowed if enabling autoscaling Structure is documented below.
- disk
Spec AiPersistent Resource Resource Pool Disk Spec - 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 StringCount - (Output) The number of machines currently in use by training jobs for this resource pool. Will replace idle_replica_count.
- machine
Spec AiPersistent Resource Resource Pool Machine Spec - Specification of a single machine. Structure is documented below.
- autoscaling
Spec AiPersistent Resource Resource Pool Autoscaling Spec - The min/max number of replicas allowed if enabling autoscaling Structure is documented below.
- disk
Spec AiPersistent Resource Resource Pool Disk Spec - 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 stringCount - (Output) The number of machines currently in use by training jobs for this resource pool. Will replace idle_replica_count.
- machine_
spec AiPersistent Resource Resource Pool Machine Spec - Specification of a single machine. Structure is documented below.
- autoscaling_
spec AiPersistent Resource Resource Pool Autoscaling Spec - The min/max number of replicas allowed if enabling autoscaling Structure is documented below.
- disk_
spec AiPersistent Resource Resource Pool Disk Spec - 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_ strcount - (Output) The number of machines currently in use by training jobs for this resource pool. Will replace idle_replica_count.
- machine
Spec Property Map - Specification of a single machine. Structure is documented below.
- autoscaling
Spec Property Map - The min/max number of replicas allowed if enabling autoscaling Structure is documented below.
- disk
Spec 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.
- replica
Count String - The total number of machines to use for this resource pool.
- used
Replica StringCount - (Output) The number of machines currently in use by training jobs for this resource pool. Will replace idle_replica_count.
AiPersistentResourceResourcePoolAutoscalingSpec, AiPersistentResourceResourcePoolAutoscalingSpecArgs
- Max
Replica stringCount - max replicas in the node pool, must be ≥ replicaCount and > minReplicaCount or will throw error
- Min
Replica stringCount - 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 stringCount - max replicas in the node pool, must be ≥ replicaCount and > minReplicaCount or will throw error
- Min
Replica stringCount - 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_ stringcount - max replicas in the node pool, must be ≥ replicaCount and > minReplicaCount or will throw error
- min_
replica_ stringcount - 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 StringCount - max replicas in the node pool, must be ≥ replicaCount and > minReplicaCount or will throw error
- min
Replica StringCount - 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 stringCount - max replicas in the node pool, must be ≥ replicaCount and > minReplicaCount or will throw error
- min
Replica stringCount - 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_ strcount - max replicas in the node pool, must be ≥ replicaCount and > minReplicaCount or will throw error
- min_
replica_ strcount - 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 StringCount - max replicas in the node pool, must be ≥ replicaCount and > minReplicaCount or will throw error
- min
Replica StringCount - 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
- Boot
Disk intSize Gb - Size in GB of the boot disk (default is 100GB).
- Boot
Disk stringType - 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 intSize Gb - Size in GB of the boot disk (default is 100GB).
- Boot
Disk stringType - 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_ numbersize_ gb - Size in GB of the boot disk (default is 100GB).
- boot_
disk_ stringtype - 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 IntegerSize Gb - Size in GB of the boot disk (default is 100GB).
- boot
Disk StringType - 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 numberSize Gb - Size in GB of the boot disk (default is 100GB).
- boot
Disk stringType - 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_ intsize_ gb - Size in GB of the boot disk (default is 100GB).
- boot_
disk_ strtype - 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 NumberSize Gb - Size in GB of the boot disk (default is 100GB).
- boot
Disk StringType - 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
- Accelerator
Count int - 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.
- Accelerator
Count int - 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.
- 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.
- accelerator
Count Integer - 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.
- 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.
- 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.
- 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.
AiPersistentResourceResourceRuntime, AiPersistentResourceResourceRuntimeArgs
- Access
Uris 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" }
- Access
Uris 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" }
- access
Uris 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 {[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" }
- 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" }
AiPersistentResourceResourceRuntimeSpec, AiPersistentResourceResourceRuntimeSpecArgs
- Service
Account AiSpec Persistent Resource Resource Runtime Spec Service Account Spec - Configuration for the use of custom service account to run the workloads. Structure is documented below.
- Service
Account AiSpec Persistent Resource Resource Runtime Spec Service Account Spec - Configuration for the use of custom service account to run the workloads. Structure is documented below.
- service_
account_ objectspec - Configuration for the use of custom service account to run the workloads. Structure is documented below.
- service
Account AiSpec Persistent Resource Resource Runtime Spec Service Account Spec - Configuration for the use of custom service account to run the workloads. Structure is documented below.
- service
Account AiSpec Persistent Resource Resource Runtime Spec Service Account Spec - Configuration for the use of custom service account to run the workloads. Structure is documented below.
- service_
account_ Aispec Persistent Resource Resource Runtime Spec Service Account Spec - Configuration for the use of custom service account to run the workloads. Structure is documented below.
- service
Account Property MapSpec - Configuration for the use of custom service account to run the workloads. Structure is documented below.
AiPersistentResourceResourceRuntimeSpecServiceAccountSpec, AiPersistentResourceResourceRuntimeSpecServiceAccountSpecArgs
- Enable
Custom boolService Account - 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 boolService Account - 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_ boolservice_ account - 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 BooleanService Account - 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 booleanService Account - 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_ boolservice_ account - 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 BooleanService Account - 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-betaTerraform Provider.
published on Monday, Aug 10, 2026 by Pulumi