InstanceArgs

data class InstanceArgs(val description: Output<String>? = null, val fileShares: Output<InstanceFileSharesArgs>? = null, val kmsKeyName: Output<String>? = null, val labels: Output<Map<String, String>>? = null, val location: Output<String>? = null, val name: Output<String>? = null, val networks: Output<List<InstanceNetworkArgs>>? = null, val project: Output<String>? = null, val protocol: Output<String>? = null, val tier: Output<String>? = null, val zone: Output<String>? = null) : ConvertibleToJava<InstanceArgs>

A Google Cloud Filestore instance. To get more information about Instance, see:

Example Usage

Filestore Instance Basic

import * as pulumi from "@pulumi/pulumi";
import * as gcp from "@pulumi/gcp";
const instance = new gcp.filestore.Instance("instance", {
name: "test-instance",
location: "us-central1-b",
tier: "BASIC_HDD",
fileShares: {
capacityGb: 1024,
name: "share1",
},
networks: [{
network: "default",
modes: ["MODE_IPV4"],
}],
});
import pulumi
import pulumi_gcp as gcp
instance = gcp.filestore.Instance("instance",
name="test-instance",
location="us-central1-b",
tier="BASIC_HDD",
file_shares={
"capacity_gb": 1024,
"name": "share1",
},
networks=[{
"network": "default",
"modes": ["MODE_IPV4"],
}])
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Gcp = Pulumi.Gcp;
return await Deployment.RunAsync(() =>
{
var instance = new Gcp.Filestore.Instance("instance", new()
{
Name = "test-instance",
Location = "us-central1-b",
Tier = "BASIC_HDD",
FileShares = new Gcp.Filestore.Inputs.InstanceFileSharesArgs
{
CapacityGb = 1024,
Name = "share1",
},
Networks = new[]
{
new Gcp.Filestore.Inputs.InstanceNetworkArgs
{
Network = "default",
Modes = new[]
{
"MODE_IPV4",
},
},
},
});
});
package main
import (
"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/filestore"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
_, err := filestore.NewInstance(ctx, "instance", &filestore.InstanceArgs{
Name: pulumi.String("test-instance"),
Location: pulumi.String("us-central1-b"),
Tier: pulumi.String("BASIC_HDD"),
FileShares: &filestore.InstanceFileSharesArgs{
CapacityGb: pulumi.Int(1024),
Name: pulumi.String("share1"),
},
Networks: filestore.InstanceNetworkArray{
&filestore.InstanceNetworkArgs{
Network: pulumi.String("default"),
Modes: pulumi.StringArray{
pulumi.String("MODE_IPV4"),
},
},
},
})
if err != nil {
return err
}
return nil
})
}
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.gcp.filestore.Instance;
import com.pulumi.gcp.filestore.InstanceArgs;
import com.pulumi.gcp.filestore.inputs.InstanceFileSharesArgs;
import com.pulumi.gcp.filestore.inputs.InstanceNetworkArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;
public class App {
public static void main(String[] args) {
Pulumi.run(App::stack);
}
public static void stack(Context ctx) {
var instance = new Instance("instance", InstanceArgs.builder()
.name("test-instance")
.location("us-central1-b")
.tier("BASIC_HDD")
.fileShares(InstanceFileSharesArgs.builder()
.capacityGb(1024)
.name("share1")
.build())
.networks(InstanceNetworkArgs.builder()
.network("default")
.modes("MODE_IPV4")
.build())
.build());
}
}
resources:
instance:
type: gcp:filestore:Instance
properties:
name: test-instance
location: us-central1-b
tier: BASIC_HDD
fileShares:
capacityGb: 1024
name: share1
networks:
- network: default
modes:
- MODE_IPV4

Filestore Instance Full

import * as pulumi from "@pulumi/pulumi";
import * as gcp from "@pulumi/gcp";
const instance = new gcp.filestore.Instance("instance", {
name: "test-instance",
location: "us-central1-b",
tier: "BASIC_SSD",
fileShares: {
capacityGb: 2560,
name: "share1",
nfsExportOptions: [
{
ipRanges: ["10&#46;0&#46;0&#46;0/24"],
accessMode: "READ_WRITE",
squashMode: "NO_ROOT_SQUASH",
},
{
ipRanges: ["10&#46;10&#46;0&#46;0/24"],
accessMode: "READ_ONLY",
squashMode: "ROOT_SQUASH",
anonUid: 123,
anonGid: 456,
},
],
},
networks: [{
network: "default",
modes: ["MODE_IPV4"],
connectMode: "DIRECT_PEERING",
}],
});
import pulumi
import pulumi_gcp as gcp
instance = gcp.filestore.Instance("instance",
name="test-instance",
location="us-central1-b",
tier="BASIC_SSD",
file_shares={
"capacity_gb": 2560,
"name": "share1",
"nfs_export_options": [
{
"ip_ranges": ["10&#46;0&#46;0&#46;0/24"],
"access_mode": "READ_WRITE",
"squash_mode": "NO_ROOT_SQUASH",
},
{
"ip_ranges": ["10&#46;10&#46;0&#46;0/24"],
"access_mode": "READ_ONLY",
"squash_mode": "ROOT_SQUASH",
"anon_uid": 123,
"anon_gid": 456,
},
],
},
networks=[{
"network": "default",
"modes": ["MODE_IPV4"],
"connect_mode": "DIRECT_PEERING",
}])
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Gcp = Pulumi.Gcp;
return await Deployment.RunAsync(() =>
{
var instance = new Gcp.Filestore.Instance("instance", new()
{
Name = "test-instance",
Location = "us-central1-b",
Tier = "BASIC_SSD",
FileShares = new Gcp.Filestore.Inputs.InstanceFileSharesArgs
{
CapacityGb = 2560,
Name = "share1",
NfsExportOptions = new[]
{
new Gcp.Filestore.Inputs.InstanceFileSharesNfsExportOptionArgs
{
IpRanges = new[]
{
"10.0.0.0/24",
},
AccessMode = "READ_WRITE",
SquashMode = "NO_ROOT_SQUASH",
},
new Gcp.Filestore.Inputs.InstanceFileSharesNfsExportOptionArgs
{
IpRanges = new[]
{
"10.10.0.0/24",
},
AccessMode = "READ_ONLY",
SquashMode = "ROOT_SQUASH",
AnonUid = 123,
AnonGid = 456,
},
},
},
Networks = new[]
{
new Gcp.Filestore.Inputs.InstanceNetworkArgs
{
Network = "default",
Modes = new[]
{
"MODE_IPV4",
},
ConnectMode = "DIRECT_PEERING",
},
},
});
});
package main
import (
"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/filestore"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
_, err := filestore.NewInstance(ctx, "instance", &filestore.InstanceArgs{
Name: pulumi.String("test-instance"),
Location: pulumi.String("us-central1-b"),
Tier: pulumi.String("BASIC_SSD"),
FileShares: &filestore.InstanceFileSharesArgs{
CapacityGb: pulumi.Int(2560),
Name: pulumi.String("share1"),
NfsExportOptions: filestore.InstanceFileSharesNfsExportOptionArray{
&filestore.InstanceFileSharesNfsExportOptionArgs{
IpRanges: pulumi.StringArray{
pulumi.String("10.0.0.0/24"),
},
AccessMode: pulumi.String("READ_WRITE"),
SquashMode: pulumi.String("NO_ROOT_SQUASH"),
},
&filestore.InstanceFileSharesNfsExportOptionArgs{
IpRanges: pulumi.StringArray{
pulumi.String("10.10.0.0/24"),
},
AccessMode: pulumi.String("READ_ONLY"),
SquashMode: pulumi.String("ROOT_SQUASH"),
AnonUid: pulumi.Int(123),
AnonGid: pulumi.Int(456),
},
},
},
Networks: filestore.InstanceNetworkArray{
&filestore.InstanceNetworkArgs{
Network: pulumi.String("default"),
Modes: pulumi.StringArray{
pulumi.String("MODE_IPV4"),
},
ConnectMode: pulumi.String("DIRECT_PEERING"),
},
},
})
if err != nil {
return err
}
return nil
})
}
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.gcp.filestore.Instance;
import com.pulumi.gcp.filestore.InstanceArgs;
import com.pulumi.gcp.filestore.inputs.InstanceFileSharesArgs;
import com.pulumi.gcp.filestore.inputs.InstanceNetworkArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;
public class App {
public static void main(String[] args) {
Pulumi.run(App::stack);
}
public static void stack(Context ctx) {
var instance = new Instance("instance", InstanceArgs.builder()
.name("test-instance")
.location("us-central1-b")
.tier("BASIC_SSD")
.fileShares(InstanceFileSharesArgs.builder()
.capacityGb(2560)
.name("share1")
.nfsExportOptions(
InstanceFileSharesNfsExportOptionArgs.builder()
.ipRanges("10.0.0.0/24")
.accessMode("READ_WRITE")
.squashMode("NO_ROOT_SQUASH")
.build(),
InstanceFileSharesNfsExportOptionArgs.builder()
.ipRanges("10.10.0.0/24")
.accessMode("READ_ONLY")
.squashMode("ROOT_SQUASH")
.anonUid(123)
.anonGid(456)
.build())
.build())
.networks(InstanceNetworkArgs.builder()
.network("default")
.modes("MODE_IPV4")
.connectMode("DIRECT_PEERING")
.build())
.build());
}
}
resources:
instance:
type: gcp:filestore:Instance
properties:
name: test-instance
location: us-central1-b
tier: BASIC_SSD
fileShares:
capacityGb: 2560
name: share1
nfsExportOptions:
- ipRanges:
- 10.0.0.0/24
accessMode: READ_WRITE
squashMode: NO_ROOT_SQUASH
- ipRanges:
- 10.10.0.0/24
accessMode: READ_ONLY
squashMode: ROOT_SQUASH
anonUid: 123
anonGid: 456
networks:
- network: default
modes:
- MODE_IPV4
connectMode: DIRECT_PEERING

Filestore Instance Protocol

import * as pulumi from "@pulumi/pulumi";
import * as gcp from "@pulumi/gcp";
const instance = new gcp.filestore.Instance("instance", {
name: "test-instance",
location: "us-central1",
tier: "ENTERPRISE",
protocol: "NFS_V4_1",
fileShares: {
capacityGb: 1024,
name: "share1",
},
networks: [{
network: "default",
modes: ["MODE_IPV4"],
}],
});
import pulumi
import pulumi_gcp as gcp
instance = gcp.filestore.Instance("instance",
name="test-instance",
location="us-central1",
tier="ENTERPRISE",
protocol="NFS_V4_1",
file_shares={
"capacity_gb": 1024,
"name": "share1",
},
networks=[{
"network": "default",
"modes": ["MODE_IPV4"],
}])
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Gcp = Pulumi.Gcp;
return await Deployment.RunAsync(() =>
{
var instance = new Gcp.Filestore.Instance("instance", new()
{
Name = "test-instance",
Location = "us-central1",
Tier = "ENTERPRISE",
Protocol = "NFS_V4_1",
FileShares = new Gcp.Filestore.Inputs.InstanceFileSharesArgs
{
CapacityGb = 1024,
Name = "share1",
},
Networks = new[]
{
new Gcp.Filestore.Inputs.InstanceNetworkArgs
{
Network = "default",
Modes = new[]
{
"MODE_IPV4",
},
},
},
});
});
package main
import (
"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/filestore"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
_, err := filestore.NewInstance(ctx, "instance", &filestore.InstanceArgs{
Name: pulumi.String("test-instance"),
Location: pulumi.String("us-central1"),
Tier: pulumi.String("ENTERPRISE"),
Protocol: pulumi.String("NFS_V4_1"),
FileShares: &filestore.InstanceFileSharesArgs{
CapacityGb: pulumi.Int(1024),
Name: pulumi.String("share1"),
},
Networks: filestore.InstanceNetworkArray{
&filestore.InstanceNetworkArgs{
Network: pulumi.String("default"),
Modes: pulumi.StringArray{
pulumi.String("MODE_IPV4"),
},
},
},
})
if err != nil {
return err
}
return nil
})
}
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.gcp.filestore.Instance;
import com.pulumi.gcp.filestore.InstanceArgs;
import com.pulumi.gcp.filestore.inputs.InstanceFileSharesArgs;
import com.pulumi.gcp.filestore.inputs.InstanceNetworkArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;
public class App {
public static void main(String[] args) {
Pulumi.run(App::stack);
}
public static void stack(Context ctx) {
var instance = new Instance("instance", InstanceArgs.builder()
.name("test-instance")
.location("us-central1")
.tier("ENTERPRISE")
.protocol("NFS_V4_1")
.fileShares(InstanceFileSharesArgs.builder()
.capacityGb(1024)
.name("share1")
.build())
.networks(InstanceNetworkArgs.builder()
.network("default")
.modes("MODE_IPV4")
.build())
.build());
}
}
resources:
instance:
type: gcp:filestore:Instance
properties:
name: test-instance
location: us-central1
tier: ENTERPRISE
protocol: NFS_V4_1
fileShares:
capacityGb: 1024
name: share1
networks:
- network: default
modes:
- MODE_IPV4

Filestore Instance Enterprise

import * as pulumi from "@pulumi/pulumi";
import * as gcp from "@pulumi/gcp";
const filestoreKeyring = new gcp.kms.KeyRing("filestore_keyring", {
name: "filestore-keyring",
location: "us-central1",
});
const filestoreKey = new gcp.kms.CryptoKey("filestore_key", {
name: "filestore-key",
keyRing: filestoreKeyring.id,
});
const instance = new gcp.filestore.Instance("instance", {
name: "test-instance",
location: "us-central1",
tier: "ENTERPRISE",
fileShares: {
capacityGb: 1024,
name: "share1",
},
networks: [{
network: "default",
modes: ["MODE_IPV4"],
}],
kmsKeyName: filestoreKey.id,
});
import pulumi
import pulumi_gcp as gcp
filestore_keyring = gcp.kms.KeyRing("filestore_keyring",
name="filestore-keyring",
location="us-central1")
filestore_key = gcp.kms.CryptoKey("filestore_key",
name="filestore-key",
key_ring=filestore_keyring.id)
instance = gcp.filestore.Instance("instance",
name="test-instance",
location="us-central1",
tier="ENTERPRISE",
file_shares={
"capacity_gb": 1024,
"name": "share1",
},
networks=[{
"network": "default",
"modes": ["MODE_IPV4"],
}],
kms_key_name=filestore_key.id)
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Gcp = Pulumi.Gcp;
return await Deployment.RunAsync(() =>
{
var filestoreKeyring = new Gcp.Kms.KeyRing("filestore_keyring", new()
{
Name = "filestore-keyring",
Location = "us-central1",
});
var filestoreKey = new Gcp.Kms.CryptoKey("filestore_key", new()
{
Name = "filestore-key",
KeyRing = filestoreKeyring.Id,
});
var instance = new Gcp.Filestore.Instance("instance", new()
{
Name = "test-instance",
Location = "us-central1",
Tier = "ENTERPRISE",
FileShares = new Gcp.Filestore.Inputs.InstanceFileSharesArgs
{
CapacityGb = 1024,
Name = "share1",
},
Networks = new[]
{
new Gcp.Filestore.Inputs.InstanceNetworkArgs
{
Network = "default",
Modes = new[]
{
"MODE_IPV4",
},
},
},
KmsKeyName = filestoreKey.Id,
});
});
package main
import (
"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/filestore"
"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/kms"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
filestoreKeyring, err := kms.NewKeyRing(ctx, "filestore_keyring", &kms.KeyRingArgs{
Name: pulumi.String("filestore-keyring"),
Location: pulumi.String("us-central1"),
})
if err != nil {
return err
}
filestoreKey, err := kms.NewCryptoKey(ctx, "filestore_key", &kms.CryptoKeyArgs{
Name: pulumi.String("filestore-key"),
KeyRing: filestoreKeyring.ID(),
})
if err != nil {
return err
}
_, err = filestore.NewInstance(ctx, "instance", &filestore.InstanceArgs{
Name: pulumi.String("test-instance"),
Location: pulumi.String("us-central1"),
Tier: pulumi.String("ENTERPRISE"),
FileShares: &filestore.InstanceFileSharesArgs{
CapacityGb: pulumi.Int(1024),
Name: pulumi.String("share1"),
},
Networks: filestore.InstanceNetworkArray{
&filestore.InstanceNetworkArgs{
Network: pulumi.String("default"),
Modes: pulumi.StringArray{
pulumi.String("MODE_IPV4"),
},
},
},
KmsKeyName: filestoreKey.ID(),
})
if err != nil {
return err
}
return nil
})
}
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.gcp.kms.KeyRing;
import com.pulumi.gcp.kms.KeyRingArgs;
import com.pulumi.gcp.kms.CryptoKey;
import com.pulumi.gcp.kms.CryptoKeyArgs;
import com.pulumi.gcp.filestore.Instance;
import com.pulumi.gcp.filestore.InstanceArgs;
import com.pulumi.gcp.filestore.inputs.InstanceFileSharesArgs;
import com.pulumi.gcp.filestore.inputs.InstanceNetworkArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;
public class App {
public static void main(String[] args) {
Pulumi.run(App::stack);
}
public static void stack(Context ctx) {
var filestoreKeyring = new KeyRing("filestoreKeyring", KeyRingArgs.builder()
.name("filestore-keyring")
.location("us-central1")
.build());
var filestoreKey = new CryptoKey("filestoreKey", CryptoKeyArgs.builder()
.name("filestore-key")
.keyRing(filestoreKeyring.id())
.build());
var instance = new Instance("instance", InstanceArgs.builder()
.name("test-instance")
.location("us-central1")
.tier("ENTERPRISE")
.fileShares(InstanceFileSharesArgs.builder()
.capacityGb(1024)
.name("share1")
.build())
.networks(InstanceNetworkArgs.builder()
.network("default")
.modes("MODE_IPV4")
.build())
.kmsKeyName(filestoreKey.id())
.build());
}
}
resources:
instance:
type: gcp:filestore:Instance
properties:
name: test-instance
location: us-central1
tier: ENTERPRISE
fileShares:
capacityGb: 1024
name: share1
networks:
- network: default
modes:
- MODE_IPV4
kmsKeyName: ${filestoreKey.id}
filestoreKeyring:
type: gcp:kms:KeyRing
name: filestore_keyring
properties:
name: filestore-keyring
location: us-central1
filestoreKey:
type: gcp:kms:CryptoKey
name: filestore_key
properties:
name: filestore-key
keyRing: ${filestoreKeyring.id}

Import

Instance can be imported using any of these accepted formats:

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

  • {{project}}/{{location}}/{{name}}

  • {{location}}/{{name}} When using the pulumi import command, Instance can be imported using one of the formats above. For example:

$ pulumi import gcp:filestore/instance:Instance default projects/{{project}}/locations/{{location}}/instances/{{name}}
$ pulumi import gcp:filestore/instance:Instance default {{project}}/{{location}}/{{name}}
$ pulumi import gcp:filestore/instance:Instance default {{location}}/{{name}}

Constructors

Link copied to clipboard
constructor(description: Output<String>? = null, fileShares: Output<InstanceFileSharesArgs>? = null, kmsKeyName: Output<String>? = null, labels: Output<Map<String, String>>? = null, location: Output<String>? = null, name: Output<String>? = null, networks: Output<List<InstanceNetworkArgs>>? = null, project: Output<String>? = null, protocol: Output<String>? = null, tier: Output<String>? = null, zone: Output<String>? = null)

Properties

Link copied to clipboard
val description: Output<String>? = null

A description of the instance.

Link copied to clipboard
val fileShares: Output<InstanceFileSharesArgs>? = null

File system shares on the instance. For this version, only a single file share is supported. Structure is documented below.

Link copied to clipboard
val kmsKeyName: Output<String>? = null

KMS key name used for data encryption.

Link copied to clipboard
val labels: Output<Map<String, String>>? = null

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

Link copied to clipboard
val location: Output<String>? = null

The name of the location of the instance. This can be a region for ENTERPRISE tier instances.

Link copied to clipboard
val name: Output<String>? = null

The resource name of the instance.

Link copied to clipboard
val networks: Output<List<InstanceNetworkArgs>>? = null

VPC networks to which the instance is connected. For this version, only a single network is supported. Structure is documented below.

Link copied to clipboard
val project: Output<String>? = null
Link copied to clipboard
val protocol: Output<String>? = null

Either NFSv3, for using NFS version 3 as file sharing protocol, or NFSv4.1, for using NFS version 4.1 as file sharing protocol. NFSv4.1 can be used with HIGH_SCALE_SSD, ZONAL, REGIONAL and ENTERPRISE. The default is NFSv3. Default value: "NFS_V3" Possible values: "NFS_V3", "NFS_V4_1"

Link copied to clipboard
val tier: Output<String>? = null

The service tier of the instance. Possible values include: STANDARD, PREMIUM, BASIC_HDD, BASIC_SSD, HIGH_SCALE_SSD, ZONAL, REGIONAL and ENTERPRISE

Link copied to clipboard
val zone: Output<String>? = null

The name of the Filestore zone of the instance.

Functions

Link copied to clipboard
open override fun toJava(): InstanceArgs