netapp

package
v8.12.1 Latest Latest
Warning

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

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

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type ActiveDirectory

type ActiveDirectory struct {
	pulumi.CustomResourceState

	// Domain user accounts to be added to the local Administrators group of the SMB service. Comma-separated list of domain users or groups. The Domain Admin group is automatically added when the service joins your domain as a hidden group.
	Administrators pulumi.StringArrayOutput `pulumi:"administrators"`
	// Enables AES-128 and AES-256 encryption for Kerberos-based communication with Active Directory.
	AesEncryption pulumi.BoolPtrOutput `pulumi:"aesEncryption"`
	// Domain user/group accounts to be added to the Backup Operators group of the SMB service. The Backup Operators group allows members to backup and restore files regardless of whether they have read or write access to the files. Comma-separated list.
	BackupOperators pulumi.StringArrayOutput `pulumi:"backupOperators"`
	// Create time of the active directory. A timestamp in RFC3339 UTC "Zulu" format. Examples: "2023-06-22T09:13:01.617Z".
	CreateTime pulumi.StringOutput `pulumi:"createTime"`
	// An optional description of this resource.
	Description pulumi.StringPtrOutput `pulumi:"description"`
	// Comma separated list of DNS server IP addresses for the Active Directory domain.
	Dns pulumi.StringOutput `pulumi:"dns"`
	// Fully qualified domain name for the Active Directory domain.
	Domain pulumi.StringOutput `pulumi:"domain"`
	// All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
	EffectiveLabels pulumi.StringMapOutput `pulumi:"effectiveLabels"`
	// If enabled, traffic between the SMB server to Domain Controller (DC) will be encrypted.
	EncryptDcConnections pulumi.BoolPtrOutput `pulumi:"encryptDcConnections"`
	// Hostname of the Active Directory server used as Kerberos Key Distribution Center. Only required for volumes using kerberized NFSv4.1
	KdcHostname pulumi.StringPtrOutput `pulumi:"kdcHostname"`
	// IP address of the Active Directory server used as Kerberos Key Distribution Center.
	KdcIp pulumi.StringPtrOutput `pulumi:"kdcIp"`
	// Labels as key value pairs. Example: `{ "owner": "Bob", "department": "finance", "purpose": "testing" }`.
	//
	// **Note**: This field is non-authoritative, and will only manage the labels present in your configuration.
	// Please refer to the field `effectiveLabels` for all of the labels present on the resource.
	Labels pulumi.StringMapOutput `pulumi:"labels"`
	// Specifies whether or not the LDAP traffic needs to be signed.
	LdapSigning pulumi.BoolPtrOutput `pulumi:"ldapSigning"`
	// Name of the region for the policy to apply to.
	Location pulumi.StringOutput `pulumi:"location"`
	// The resource name of the Active Directory pool. Needs to be unique per location.
	//
	// ***
	Name pulumi.StringOutput `pulumi:"name"`
	// NetBIOS name prefix of the server to be created.
	// A five-character random ID is generated automatically, for example, -6f9a, and appended to the prefix. The full UNC share path will have the following format:
	// `\\NetBIOS_PREFIX-ABCD.DOMAIN_NAME\SHARE_NAME`
	NetBiosPrefix pulumi.StringOutput `pulumi:"netBiosPrefix"`
	// Local UNIX users on clients without valid user information in Active Directory are blocked from access to LDAP enabled volumes.
	// This option can be used to temporarily switch such volumes to AUTH_SYS authentication (user ID + 1-16 groups).
	NfsUsersWithLdap pulumi.BoolPtrOutput `pulumi:"nfsUsersWithLdap"`
	// Name of the Organizational Unit where you intend to create the computer account for NetApp Volumes.
	// Defaults to `CN=Computers` if left empty.
	OrganizationalUnit pulumi.StringOutput `pulumi:"organizationalUnit"`
	Password           pulumi.StringOutput `pulumi:"password"`
	// The ID of the project in which the resource belongs.
	// If it is not provided, the provider project is used.
	Project pulumi.StringOutput `pulumi:"project"`
	// The combination of labels configured directly on the resource
	// and default labels configured on the provider.
	PulumiLabels pulumi.StringMapOutput `pulumi:"pulumiLabels"`
	// Domain accounts that require elevated privileges such as `SeSecurityPrivilege` to manage security logs. Comma-separated list.
	SecurityOperators pulumi.StringArrayOutput `pulumi:"securityOperators"`
	// Specifies an Active Directory site to manage domain controller selection.
	// Use when Active Directory domain controllers in multiple regions are configured. Defaults to `Default-First-Site-Name` if left empty.
	Site pulumi.StringPtrOutput `pulumi:"site"`
	// The state of the Active Directory policy (not the Active Directory itself).
	State pulumi.StringOutput `pulumi:"state"`
	// The state details of the Active Directory.
	StateDetails pulumi.StringOutput `pulumi:"stateDetails"`
	// Username for the Active Directory account with permissions to create the compute account within the specified organizational unit.
	Username pulumi.StringOutput `pulumi:"username"`
}

ActiveDirectory is the public representation of the active directory config.

To get more information about ActiveDirectory, see:

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

## Example Usage

### Netapp Active Directory Full

```go package main

import (

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

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := netapp.NewActiveDirectory(ctx, "test_active_directory_full", &netapp.ActiveDirectoryArgs{
			Name:          pulumi.String("test-active-directory-full"),
			Location:      pulumi.String("us-central1"),
			Domain:        pulumi.String("ad.internal"),
			Dns:           pulumi.String("172.30.64.3"),
			NetBiosPrefix: pulumi.String("smbserver"),
			Username:      pulumi.String("user"),
			Password:      pulumi.String("pass"),
			AesEncryption: pulumi.Bool(false),
			BackupOperators: pulumi.StringArray{
				pulumi.String("test1"),
				pulumi.String("test2"),
			},
			Administrators: pulumi.StringArray{
				pulumi.String("test1"),
				pulumi.String("test2"),
			},
			Description:          pulumi.String("ActiveDirectory is the public representation of the active directory config."),
			EncryptDcConnections: pulumi.Bool(false),
			KdcHostname:          pulumi.String("hostname"),
			KdcIp:                pulumi.String("10.10.0.11"),
			Labels: pulumi.StringMap{
				"foo": pulumi.String("bar"),
			},
			LdapSigning:        pulumi.Bool(false),
			NfsUsersWithLdap:   pulumi.Bool(false),
			OrganizationalUnit: pulumi.String("CN=Computers"),
			SecurityOperators: pulumi.StringArray{
				pulumi.String("test1"),
				pulumi.String("test2"),
			},
			Site: pulumi.String("test-site"),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## Import

ActiveDirectory can be imported using any of these accepted formats:

* `projects/{{project}}/locations/{{location}}/activeDirectories/{{name}}`

* `{{project}}/{{location}}/{{name}}`

* `{{location}}/{{name}}`

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

```sh $ pulumi import gcp:netapp/activeDirectory:ActiveDirectory default projects/{{project}}/locations/{{location}}/activeDirectories/{{name}} ```

```sh $ pulumi import gcp:netapp/activeDirectory:ActiveDirectory default {{project}}/{{location}}/{{name}} ```

```sh $ pulumi import gcp:netapp/activeDirectory:ActiveDirectory default {{location}}/{{name}} ```

func GetActiveDirectory

func GetActiveDirectory(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *ActiveDirectoryState, opts ...pulumi.ResourceOption) (*ActiveDirectory, error)

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

func NewActiveDirectory

func NewActiveDirectory(ctx *pulumi.Context,
	name string, args *ActiveDirectoryArgs, opts ...pulumi.ResourceOption) (*ActiveDirectory, error)

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

func (*ActiveDirectory) ElementType

func (*ActiveDirectory) ElementType() reflect.Type

func (*ActiveDirectory) ToActiveDirectoryOutput

func (i *ActiveDirectory) ToActiveDirectoryOutput() ActiveDirectoryOutput

func (*ActiveDirectory) ToActiveDirectoryOutputWithContext

func (i *ActiveDirectory) ToActiveDirectoryOutputWithContext(ctx context.Context) ActiveDirectoryOutput

type ActiveDirectoryArgs

type ActiveDirectoryArgs struct {
	// Domain user accounts to be added to the local Administrators group of the SMB service. Comma-separated list of domain users or groups. The Domain Admin group is automatically added when the service joins your domain as a hidden group.
	Administrators pulumi.StringArrayInput
	// Enables AES-128 and AES-256 encryption for Kerberos-based communication with Active Directory.
	AesEncryption pulumi.BoolPtrInput
	// Domain user/group accounts to be added to the Backup Operators group of the SMB service. The Backup Operators group allows members to backup and restore files regardless of whether they have read or write access to the files. Comma-separated list.
	BackupOperators pulumi.StringArrayInput
	// An optional description of this resource.
	Description pulumi.StringPtrInput
	// Comma separated list of DNS server IP addresses for the Active Directory domain.
	Dns pulumi.StringInput
	// Fully qualified domain name for the Active Directory domain.
	Domain pulumi.StringInput
	// If enabled, traffic between the SMB server to Domain Controller (DC) will be encrypted.
	EncryptDcConnections pulumi.BoolPtrInput
	// Hostname of the Active Directory server used as Kerberos Key Distribution Center. Only required for volumes using kerberized NFSv4.1
	KdcHostname pulumi.StringPtrInput
	// IP address of the Active Directory server used as Kerberos Key Distribution Center.
	KdcIp pulumi.StringPtrInput
	// Labels as key value pairs. Example: `{ "owner": "Bob", "department": "finance", "purpose": "testing" }`.
	//
	// **Note**: This field is non-authoritative, and will only manage the labels present in your configuration.
	// Please refer to the field `effectiveLabels` for all of the labels present on the resource.
	Labels pulumi.StringMapInput
	// Specifies whether or not the LDAP traffic needs to be signed.
	LdapSigning pulumi.BoolPtrInput
	// Name of the region for the policy to apply to.
	Location pulumi.StringInput
	// The resource name of the Active Directory pool. Needs to be unique per location.
	//
	// ***
	Name pulumi.StringPtrInput
	// NetBIOS name prefix of the server to be created.
	// A five-character random ID is generated automatically, for example, -6f9a, and appended to the prefix. The full UNC share path will have the following format:
	// `\\NetBIOS_PREFIX-ABCD.DOMAIN_NAME\SHARE_NAME`
	NetBiosPrefix pulumi.StringInput
	// Local UNIX users on clients without valid user information in Active Directory are blocked from access to LDAP enabled volumes.
	// This option can be used to temporarily switch such volumes to AUTH_SYS authentication (user ID + 1-16 groups).
	NfsUsersWithLdap pulumi.BoolPtrInput
	// Name of the Organizational Unit where you intend to create the computer account for NetApp Volumes.
	// Defaults to `CN=Computers` if left empty.
	OrganizationalUnit pulumi.StringPtrInput
	Password           pulumi.StringInput
	// The ID of the project in which the resource belongs.
	// If it is not provided, the provider project is used.
	Project pulumi.StringPtrInput
	// Domain accounts that require elevated privileges such as `SeSecurityPrivilege` to manage security logs. Comma-separated list.
	SecurityOperators pulumi.StringArrayInput
	// Specifies an Active Directory site to manage domain controller selection.
	// Use when Active Directory domain controllers in multiple regions are configured. Defaults to `Default-First-Site-Name` if left empty.
	Site pulumi.StringPtrInput
	// Username for the Active Directory account with permissions to create the compute account within the specified organizational unit.
	Username pulumi.StringInput
}

The set of arguments for constructing a ActiveDirectory resource.

func (ActiveDirectoryArgs) ElementType

func (ActiveDirectoryArgs) ElementType() reflect.Type

type ActiveDirectoryArray

type ActiveDirectoryArray []ActiveDirectoryInput

func (ActiveDirectoryArray) ElementType

func (ActiveDirectoryArray) ElementType() reflect.Type

func (ActiveDirectoryArray) ToActiveDirectoryArrayOutput

func (i ActiveDirectoryArray) ToActiveDirectoryArrayOutput() ActiveDirectoryArrayOutput

func (ActiveDirectoryArray) ToActiveDirectoryArrayOutputWithContext

func (i ActiveDirectoryArray) ToActiveDirectoryArrayOutputWithContext(ctx context.Context) ActiveDirectoryArrayOutput

type ActiveDirectoryArrayInput

type ActiveDirectoryArrayInput interface {
	pulumi.Input

	ToActiveDirectoryArrayOutput() ActiveDirectoryArrayOutput
	ToActiveDirectoryArrayOutputWithContext(context.Context) ActiveDirectoryArrayOutput
}

ActiveDirectoryArrayInput is an input type that accepts ActiveDirectoryArray and ActiveDirectoryArrayOutput values. You can construct a concrete instance of `ActiveDirectoryArrayInput` via:

ActiveDirectoryArray{ ActiveDirectoryArgs{...} }

type ActiveDirectoryArrayOutput

type ActiveDirectoryArrayOutput struct{ *pulumi.OutputState }

func (ActiveDirectoryArrayOutput) ElementType

func (ActiveDirectoryArrayOutput) ElementType() reflect.Type

func (ActiveDirectoryArrayOutput) Index

func (ActiveDirectoryArrayOutput) ToActiveDirectoryArrayOutput

func (o ActiveDirectoryArrayOutput) ToActiveDirectoryArrayOutput() ActiveDirectoryArrayOutput

func (ActiveDirectoryArrayOutput) ToActiveDirectoryArrayOutputWithContext

func (o ActiveDirectoryArrayOutput) ToActiveDirectoryArrayOutputWithContext(ctx context.Context) ActiveDirectoryArrayOutput

type ActiveDirectoryInput

type ActiveDirectoryInput interface {
	pulumi.Input

	ToActiveDirectoryOutput() ActiveDirectoryOutput
	ToActiveDirectoryOutputWithContext(ctx context.Context) ActiveDirectoryOutput
}

type ActiveDirectoryMap

type ActiveDirectoryMap map[string]ActiveDirectoryInput

func (ActiveDirectoryMap) ElementType

func (ActiveDirectoryMap) ElementType() reflect.Type

func (ActiveDirectoryMap) ToActiveDirectoryMapOutput

func (i ActiveDirectoryMap) ToActiveDirectoryMapOutput() ActiveDirectoryMapOutput

func (ActiveDirectoryMap) ToActiveDirectoryMapOutputWithContext

func (i ActiveDirectoryMap) ToActiveDirectoryMapOutputWithContext(ctx context.Context) ActiveDirectoryMapOutput

type ActiveDirectoryMapInput

type ActiveDirectoryMapInput interface {
	pulumi.Input

	ToActiveDirectoryMapOutput() ActiveDirectoryMapOutput
	ToActiveDirectoryMapOutputWithContext(context.Context) ActiveDirectoryMapOutput
}

ActiveDirectoryMapInput is an input type that accepts ActiveDirectoryMap and ActiveDirectoryMapOutput values. You can construct a concrete instance of `ActiveDirectoryMapInput` via:

ActiveDirectoryMap{ "key": ActiveDirectoryArgs{...} }

type ActiveDirectoryMapOutput

type ActiveDirectoryMapOutput struct{ *pulumi.OutputState }

func (ActiveDirectoryMapOutput) ElementType

func (ActiveDirectoryMapOutput) ElementType() reflect.Type

func (ActiveDirectoryMapOutput) MapIndex

func (ActiveDirectoryMapOutput) ToActiveDirectoryMapOutput

func (o ActiveDirectoryMapOutput) ToActiveDirectoryMapOutput() ActiveDirectoryMapOutput

func (ActiveDirectoryMapOutput) ToActiveDirectoryMapOutputWithContext

func (o ActiveDirectoryMapOutput) ToActiveDirectoryMapOutputWithContext(ctx context.Context) ActiveDirectoryMapOutput

type ActiveDirectoryOutput

type ActiveDirectoryOutput struct{ *pulumi.OutputState }

func (ActiveDirectoryOutput) Administrators

func (o ActiveDirectoryOutput) Administrators() pulumi.StringArrayOutput

Domain user accounts to be added to the local Administrators group of the SMB service. Comma-separated list of domain users or groups. The Domain Admin group is automatically added when the service joins your domain as a hidden group.

func (ActiveDirectoryOutput) AesEncryption

func (o ActiveDirectoryOutput) AesEncryption() pulumi.BoolPtrOutput

Enables AES-128 and AES-256 encryption for Kerberos-based communication with Active Directory.

func (ActiveDirectoryOutput) BackupOperators

func (o ActiveDirectoryOutput) BackupOperators() pulumi.StringArrayOutput

Domain user/group accounts to be added to the Backup Operators group of the SMB service. The Backup Operators group allows members to backup and restore files regardless of whether they have read or write access to the files. Comma-separated list.

func (ActiveDirectoryOutput) CreateTime

func (o ActiveDirectoryOutput) CreateTime() pulumi.StringOutput

Create time of the active directory. A timestamp in RFC3339 UTC "Zulu" format. Examples: "2023-06-22T09:13:01.617Z".

func (ActiveDirectoryOutput) Description

An optional description of this resource.

func (ActiveDirectoryOutput) Dns

Comma separated list of DNS server IP addresses for the Active Directory domain.

func (ActiveDirectoryOutput) Domain

Fully qualified domain name for the Active Directory domain.

func (ActiveDirectoryOutput) EffectiveLabels

func (o ActiveDirectoryOutput) EffectiveLabels() pulumi.StringMapOutput

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

func (ActiveDirectoryOutput) ElementType

func (ActiveDirectoryOutput) ElementType() reflect.Type

func (ActiveDirectoryOutput) EncryptDcConnections

func (o ActiveDirectoryOutput) EncryptDcConnections() pulumi.BoolPtrOutput

If enabled, traffic between the SMB server to Domain Controller (DC) will be encrypted.

func (ActiveDirectoryOutput) KdcHostname

Hostname of the Active Directory server used as Kerberos Key Distribution Center. Only required for volumes using kerberized NFSv4.1

func (ActiveDirectoryOutput) KdcIp

IP address of the Active Directory server used as Kerberos Key Distribution Center.

func (ActiveDirectoryOutput) Labels

Labels as key value pairs. Example: `{ "owner": "Bob", "department": "finance", "purpose": "testing" }`.

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

func (ActiveDirectoryOutput) LdapSigning

func (o ActiveDirectoryOutput) LdapSigning() pulumi.BoolPtrOutput

Specifies whether or not the LDAP traffic needs to be signed.

func (ActiveDirectoryOutput) Location

Name of the region for the policy to apply to.

func (ActiveDirectoryOutput) Name

The resource name of the Active Directory pool. Needs to be unique per location.

***

func (ActiveDirectoryOutput) NetBiosPrefix

func (o ActiveDirectoryOutput) NetBiosPrefix() pulumi.StringOutput

NetBIOS name prefix of the server to be created. A five-character random ID is generated automatically, for example, -6f9a, and appended to the prefix. The full UNC share path will have the following format: `\\NetBIOS_PREFIX-ABCD.DOMAIN_NAME\SHARE_NAME`

func (ActiveDirectoryOutput) NfsUsersWithLdap

func (o ActiveDirectoryOutput) NfsUsersWithLdap() pulumi.BoolPtrOutput

Local UNIX users on clients without valid user information in Active Directory are blocked from access to LDAP enabled volumes. This option can be used to temporarily switch such volumes to AUTH_SYS authentication (user ID + 1-16 groups).

func (ActiveDirectoryOutput) OrganizationalUnit

func (o ActiveDirectoryOutput) OrganizationalUnit() pulumi.StringOutput

Name of the Organizational Unit where you intend to create the computer account for NetApp Volumes. Defaults to `CN=Computers` if left empty.

func (ActiveDirectoryOutput) Password

func (ActiveDirectoryOutput) Project

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

func (ActiveDirectoryOutput) PulumiLabels

func (o ActiveDirectoryOutput) PulumiLabels() pulumi.StringMapOutput

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

func (ActiveDirectoryOutput) SecurityOperators

func (o ActiveDirectoryOutput) SecurityOperators() pulumi.StringArrayOutput

Domain accounts that require elevated privileges such as `SeSecurityPrivilege` to manage security logs. Comma-separated list.

func (ActiveDirectoryOutput) Site

Specifies an Active Directory site to manage domain controller selection. Use when Active Directory domain controllers in multiple regions are configured. Defaults to `Default-First-Site-Name` if left empty.

func (ActiveDirectoryOutput) State

The state of the Active Directory policy (not the Active Directory itself).

func (ActiveDirectoryOutput) StateDetails

func (o ActiveDirectoryOutput) StateDetails() pulumi.StringOutput

The state details of the Active Directory.

func (ActiveDirectoryOutput) ToActiveDirectoryOutput

func (o ActiveDirectoryOutput) ToActiveDirectoryOutput() ActiveDirectoryOutput

func (ActiveDirectoryOutput) ToActiveDirectoryOutputWithContext

func (o ActiveDirectoryOutput) ToActiveDirectoryOutputWithContext(ctx context.Context) ActiveDirectoryOutput

func (ActiveDirectoryOutput) Username

Username for the Active Directory account with permissions to create the compute account within the specified organizational unit.

type ActiveDirectoryState

type ActiveDirectoryState struct {
	// Domain user accounts to be added to the local Administrators group of the SMB service. Comma-separated list of domain users or groups. The Domain Admin group is automatically added when the service joins your domain as a hidden group.
	Administrators pulumi.StringArrayInput
	// Enables AES-128 and AES-256 encryption for Kerberos-based communication with Active Directory.
	AesEncryption pulumi.BoolPtrInput
	// Domain user/group accounts to be added to the Backup Operators group of the SMB service. The Backup Operators group allows members to backup and restore files regardless of whether they have read or write access to the files. Comma-separated list.
	BackupOperators pulumi.StringArrayInput
	// Create time of the active directory. A timestamp in RFC3339 UTC "Zulu" format. Examples: "2023-06-22T09:13:01.617Z".
	CreateTime pulumi.StringPtrInput
	// An optional description of this resource.
	Description pulumi.StringPtrInput
	// Comma separated list of DNS server IP addresses for the Active Directory domain.
	Dns pulumi.StringPtrInput
	// Fully qualified domain name for the Active Directory domain.
	Domain pulumi.StringPtrInput
	// All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
	EffectiveLabels pulumi.StringMapInput
	// If enabled, traffic between the SMB server to Domain Controller (DC) will be encrypted.
	EncryptDcConnections pulumi.BoolPtrInput
	// Hostname of the Active Directory server used as Kerberos Key Distribution Center. Only required for volumes using kerberized NFSv4.1
	KdcHostname pulumi.StringPtrInput
	// IP address of the Active Directory server used as Kerberos Key Distribution Center.
	KdcIp pulumi.StringPtrInput
	// Labels as key value pairs. Example: `{ "owner": "Bob", "department": "finance", "purpose": "testing" }`.
	//
	// **Note**: This field is non-authoritative, and will only manage the labels present in your configuration.
	// Please refer to the field `effectiveLabels` for all of the labels present on the resource.
	Labels pulumi.StringMapInput
	// Specifies whether or not the LDAP traffic needs to be signed.
	LdapSigning pulumi.BoolPtrInput
	// Name of the region for the policy to apply to.
	Location pulumi.StringPtrInput
	// The resource name of the Active Directory pool. Needs to be unique per location.
	//
	// ***
	Name pulumi.StringPtrInput
	// NetBIOS name prefix of the server to be created.
	// A five-character random ID is generated automatically, for example, -6f9a, and appended to the prefix. The full UNC share path will have the following format:
	// `\\NetBIOS_PREFIX-ABCD.DOMAIN_NAME\SHARE_NAME`
	NetBiosPrefix pulumi.StringPtrInput
	// Local UNIX users on clients without valid user information in Active Directory are blocked from access to LDAP enabled volumes.
	// This option can be used to temporarily switch such volumes to AUTH_SYS authentication (user ID + 1-16 groups).
	NfsUsersWithLdap pulumi.BoolPtrInput
	// Name of the Organizational Unit where you intend to create the computer account for NetApp Volumes.
	// Defaults to `CN=Computers` if left empty.
	OrganizationalUnit pulumi.StringPtrInput
	Password           pulumi.StringPtrInput
	// The ID of the project in which the resource belongs.
	// If it is not provided, the provider project is used.
	Project pulumi.StringPtrInput
	// The combination of labels configured directly on the resource
	// and default labels configured on the provider.
	PulumiLabels pulumi.StringMapInput
	// Domain accounts that require elevated privileges such as `SeSecurityPrivilege` to manage security logs. Comma-separated list.
	SecurityOperators pulumi.StringArrayInput
	// Specifies an Active Directory site to manage domain controller selection.
	// Use when Active Directory domain controllers in multiple regions are configured. Defaults to `Default-First-Site-Name` if left empty.
	Site pulumi.StringPtrInput
	// The state of the Active Directory policy (not the Active Directory itself).
	State pulumi.StringPtrInput
	// The state details of the Active Directory.
	StateDetails pulumi.StringPtrInput
	// Username for the Active Directory account with permissions to create the compute account within the specified organizational unit.
	Username pulumi.StringPtrInput
}

func (ActiveDirectoryState) ElementType

func (ActiveDirectoryState) ElementType() reflect.Type

type Backup

type Backup struct {
	pulumi.CustomResourceState

	// Type of backup, manually created or created by a backup policy. Possible Values : [TYPE_UNSPECIFIED, MANUAL, SCHEDULED]
	BackupType pulumi.StringOutput `pulumi:"backupType"`
	// Backups of a volume build incrementally on top of each other. They form a "backup chain".
	// Total size of all backups in a chain in bytes = baseline backup size + sum(incremental backup size)
	ChainStorageBytes pulumi.StringOutput `pulumi:"chainStorageBytes"`
	// Create time of the backup. A timestamp in RFC3339 UTC "Zulu" format. Examples: "2023-06-22T09:13:01.617Z".
	CreateTime pulumi.StringOutput `pulumi:"createTime"`
	// A description of the backup with 2048 characters or less. Requests with longer descriptions will be rejected.
	Description pulumi.StringPtrOutput `pulumi:"description"`
	// All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
	EffectiveLabels pulumi.StringMapOutput `pulumi:"effectiveLabels"`
	// Labels as key value pairs. Example: `{ "owner": "Bob", "department": "finance", "purpose": "testing" }`.
	//
	// **Note**: This field is non-authoritative, and will only manage the labels present in your configuration.
	// Please refer to the field `effectiveLabels` for all of the labels present on the resource.
	Labels pulumi.StringMapOutput `pulumi:"labels"`
	// Location of the backup.
	Location pulumi.StringOutput `pulumi:"location"`
	// The resource name of the backup. Needs to be unique per location.
	//
	// ***
	Name pulumi.StringOutput `pulumi:"name"`
	// The ID of the project in which the resource belongs.
	// If it is not provided, the provider project is used.
	Project pulumi.StringOutput `pulumi:"project"`
	// The combination of labels configured directly on the resource
	// and default labels configured on the provider.
	PulumiLabels pulumi.StringMapOutput `pulumi:"pulumiLabels"`
	// If specified, backup will be created from the given snapshot. If not specified,
	// there will be a new snapshot taken to initiate the backup creation.
	// Format: `projects/{{projectId}}/locations/{{location}}/volumes/{{volumename}}/snapshots/{{snapshotname}}“
	SourceSnapshot pulumi.StringPtrOutput `pulumi:"sourceSnapshot"`
	// ID of volumes this backup belongs to. Format: `projects/{{projects_id}}/locations/{{location}}/volumes/{{name}}“
	SourceVolume pulumi.StringPtrOutput `pulumi:"sourceVolume"`
	// The state of the Backup Vault. Possible Values : [STATE_UNSPECIFIED, CREATING, UPLOADING, READY, DELETING, ERROR, UPDATING]
	State pulumi.StringOutput `pulumi:"state"`
	// Name of the backup vault to store the backup in.
	VaultName pulumi.StringOutput `pulumi:"vaultName"`
	// Size of the file system when the backup was created. When creating a new volume from the backup, the volume capacity will have to be at least as big.
	VolumeUsageBytes pulumi.StringOutput `pulumi:"volumeUsageBytes"`
}

NetApp Volumes supports volume backups, which are copies of your volumes stored independently from the volume. Backups are stored in backup vaults, which are containers for backups. If a volume is lost or deleted, you can use backups to restore your data to a new volume.

When you create the first backup of a volume, all of the volume's used data is sent to the backup vault. Subsequent backups of the same volume only include data that has changed from the previous backup. This allows for fast incremental-forever backups and reduces the required capacity inside the backup vault.

You can create manual and scheduled backups. Manual backups can be taken from a volume or from an existing volume snapshot. Scheduled backups require a backup policy.

To get more information about Backup, see:

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

## Example Usage

### Netapp Backup

```go package main

import (

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

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_default, err := compute.LookupNetwork(ctx, &compute.LookupNetworkArgs{
			Name: "",
		}, nil)
		if err != nil {
			return err
		}
		defaultStoragePool, err := netapp.NewStoragePool(ctx, "default", &netapp.StoragePoolArgs{
			Name:         pulumi.String("backup-pool"),
			Location:     pulumi.String("us-central1"),
			ServiceLevel: pulumi.String("PREMIUM"),
			CapacityGib:  pulumi.String("2048"),
			Network:      pulumi.String(_default.Id),
		})
		if err != nil {
			return err
		}
		defaultBackupVault, err := netapp.NewBackupVault(ctx, "default", &netapp.BackupVaultArgs{
			Name:     pulumi.String("backup-vault"),
			Location: defaultStoragePool.Location,
		})
		if err != nil {
			return err
		}
		defaultVolume, err := netapp.NewVolume(ctx, "default", &netapp.VolumeArgs{
			Name:        pulumi.String("backup-volume"),
			Location:    defaultStoragePool.Location,
			CapacityGib: pulumi.String("100"),
			ShareName:   pulumi.String("backup-volume"),
			StoragePool: defaultStoragePool.Name,
			Protocols: pulumi.StringArray{
				pulumi.String("NFSV3"),
			},
			DeletionPolicy: pulumi.String("FORCE"),
			BackupConfig: &netapp.VolumeBackupConfigArgs{
				BackupVault: defaultBackupVault.ID(),
			},
		})
		if err != nil {
			return err
		}
		_, err = netapp.NewBackup(ctx, "test_backup", &netapp.BackupArgs{
			Name:         pulumi.String("test-backup"),
			Location:     defaultBackupVault.Location,
			VaultName:    defaultBackupVault.Name,
			SourceVolume: defaultVolume.ID(),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## Import

Backup can be imported using any of these accepted formats:

* `projects/{{project}}/locations/{{location}}/backupVaults/{{vault_name}}/backups/{{name}}`

* `{{project}}/{{location}}/{{vault_name}}/{{name}}`

* `{{location}}/{{vault_name}}/{{name}}`

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

```sh $ pulumi import gcp:netapp/backup:Backup default projects/{{project}}/locations/{{location}}/backupVaults/{{vault_name}}/backups/{{name}} ```

```sh $ pulumi import gcp:netapp/backup:Backup default {{project}}/{{location}}/{{vault_name}}/{{name}} ```

```sh $ pulumi import gcp:netapp/backup:Backup default {{location}}/{{vault_name}}/{{name}} ```

func GetBackup

func GetBackup(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *BackupState, opts ...pulumi.ResourceOption) (*Backup, error)

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

func NewBackup

func NewBackup(ctx *pulumi.Context,
	name string, args *BackupArgs, opts ...pulumi.ResourceOption) (*Backup, error)

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

func (*Backup) ElementType

func (*Backup) ElementType() reflect.Type

func (*Backup) ToBackupOutput

func (i *Backup) ToBackupOutput() BackupOutput

func (*Backup) ToBackupOutputWithContext

func (i *Backup) ToBackupOutputWithContext(ctx context.Context) BackupOutput

type BackupArgs

type BackupArgs struct {
	// A description of the backup with 2048 characters or less. Requests with longer descriptions will be rejected.
	Description pulumi.StringPtrInput
	// Labels as key value pairs. Example: `{ "owner": "Bob", "department": "finance", "purpose": "testing" }`.
	//
	// **Note**: This field is non-authoritative, and will only manage the labels present in your configuration.
	// Please refer to the field `effectiveLabels` for all of the labels present on the resource.
	Labels pulumi.StringMapInput
	// Location of the backup.
	Location pulumi.StringInput
	// The resource name of the backup. Needs to be unique per location.
	//
	// ***
	Name pulumi.StringPtrInput
	// The ID of the project in which the resource belongs.
	// If it is not provided, the provider project is used.
	Project pulumi.StringPtrInput
	// If specified, backup will be created from the given snapshot. If not specified,
	// there will be a new snapshot taken to initiate the backup creation.
	// Format: `projects/{{projectId}}/locations/{{location}}/volumes/{{volumename}}/snapshots/{{snapshotname}}“
	SourceSnapshot pulumi.StringPtrInput
	// ID of volumes this backup belongs to. Format: `projects/{{projects_id}}/locations/{{location}}/volumes/{{name}}“
	SourceVolume pulumi.StringPtrInput
	// Name of the backup vault to store the backup in.
	VaultName pulumi.StringInput
}

The set of arguments for constructing a Backup resource.

func (BackupArgs) ElementType

func (BackupArgs) ElementType() reflect.Type

type BackupArray

type BackupArray []BackupInput

func (BackupArray) ElementType

func (BackupArray) ElementType() reflect.Type

func (BackupArray) ToBackupArrayOutput

func (i BackupArray) ToBackupArrayOutput() BackupArrayOutput

func (BackupArray) ToBackupArrayOutputWithContext

func (i BackupArray) ToBackupArrayOutputWithContext(ctx context.Context) BackupArrayOutput

type BackupArrayInput

type BackupArrayInput interface {
	pulumi.Input

	ToBackupArrayOutput() BackupArrayOutput
	ToBackupArrayOutputWithContext(context.Context) BackupArrayOutput
}

BackupArrayInput is an input type that accepts BackupArray and BackupArrayOutput values. You can construct a concrete instance of `BackupArrayInput` via:

BackupArray{ BackupArgs{...} }

type BackupArrayOutput

type BackupArrayOutput struct{ *pulumi.OutputState }

func (BackupArrayOutput) ElementType

func (BackupArrayOutput) ElementType() reflect.Type

func (BackupArrayOutput) Index

func (BackupArrayOutput) ToBackupArrayOutput

func (o BackupArrayOutput) ToBackupArrayOutput() BackupArrayOutput

func (BackupArrayOutput) ToBackupArrayOutputWithContext

func (o BackupArrayOutput) ToBackupArrayOutputWithContext(ctx context.Context) BackupArrayOutput

type BackupInput

type BackupInput interface {
	pulumi.Input

	ToBackupOutput() BackupOutput
	ToBackupOutputWithContext(ctx context.Context) BackupOutput
}

type BackupMap

type BackupMap map[string]BackupInput

func (BackupMap) ElementType

func (BackupMap) ElementType() reflect.Type

func (BackupMap) ToBackupMapOutput

func (i BackupMap) ToBackupMapOutput() BackupMapOutput

func (BackupMap) ToBackupMapOutputWithContext

func (i BackupMap) ToBackupMapOutputWithContext(ctx context.Context) BackupMapOutput

type BackupMapInput

type BackupMapInput interface {
	pulumi.Input

	ToBackupMapOutput() BackupMapOutput
	ToBackupMapOutputWithContext(context.Context) BackupMapOutput
}

BackupMapInput is an input type that accepts BackupMap and BackupMapOutput values. You can construct a concrete instance of `BackupMapInput` via:

BackupMap{ "key": BackupArgs{...} }

type BackupMapOutput

type BackupMapOutput struct{ *pulumi.OutputState }

func (BackupMapOutput) ElementType

func (BackupMapOutput) ElementType() reflect.Type

func (BackupMapOutput) MapIndex

func (BackupMapOutput) ToBackupMapOutput

func (o BackupMapOutput) ToBackupMapOutput() BackupMapOutput

func (BackupMapOutput) ToBackupMapOutputWithContext

func (o BackupMapOutput) ToBackupMapOutputWithContext(ctx context.Context) BackupMapOutput

type BackupOutput

type BackupOutput struct{ *pulumi.OutputState }

func (BackupOutput) BackupType

func (o BackupOutput) BackupType() pulumi.StringOutput

Type of backup, manually created or created by a backup policy. Possible Values : [TYPE_UNSPECIFIED, MANUAL, SCHEDULED]

func (BackupOutput) ChainStorageBytes

func (o BackupOutput) ChainStorageBytes() pulumi.StringOutput

Backups of a volume build incrementally on top of each other. They form a "backup chain". Total size of all backups in a chain in bytes = baseline backup size + sum(incremental backup size)

func (BackupOutput) CreateTime

func (o BackupOutput) CreateTime() pulumi.StringOutput

Create time of the backup. A timestamp in RFC3339 UTC "Zulu" format. Examples: "2023-06-22T09:13:01.617Z".

func (BackupOutput) Description

func (o BackupOutput) Description() pulumi.StringPtrOutput

A description of the backup with 2048 characters or less. Requests with longer descriptions will be rejected.

func (BackupOutput) EffectiveLabels

func (o BackupOutput) EffectiveLabels() pulumi.StringMapOutput

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

func (BackupOutput) ElementType

func (BackupOutput) ElementType() reflect.Type

func (BackupOutput) Labels

func (o BackupOutput) Labels() pulumi.StringMapOutput

Labels as key value pairs. Example: `{ "owner": "Bob", "department": "finance", "purpose": "testing" }`.

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

func (BackupOutput) Location

func (o BackupOutput) Location() pulumi.StringOutput

Location of the backup.

func (BackupOutput) Name

func (o BackupOutput) Name() pulumi.StringOutput

The resource name of the backup. Needs to be unique per location.

***

func (BackupOutput) Project

func (o BackupOutput) Project() pulumi.StringOutput

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

func (BackupOutput) PulumiLabels

func (o BackupOutput) PulumiLabels() pulumi.StringMapOutput

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

func (BackupOutput) SourceSnapshot

func (o BackupOutput) SourceSnapshot() pulumi.StringPtrOutput

If specified, backup will be created from the given snapshot. If not specified, there will be a new snapshot taken to initiate the backup creation. Format: `projects/{{projectId}}/locations/{{location}}/volumes/{{volumename}}/snapshots/{{snapshotname}}“

func (BackupOutput) SourceVolume

func (o BackupOutput) SourceVolume() pulumi.StringPtrOutput

ID of volumes this backup belongs to. Format: `projects/{{projects_id}}/locations/{{location}}/volumes/{{name}}“

func (BackupOutput) State

func (o BackupOutput) State() pulumi.StringOutput

The state of the Backup Vault. Possible Values : [STATE_UNSPECIFIED, CREATING, UPLOADING, READY, DELETING, ERROR, UPDATING]

func (BackupOutput) ToBackupOutput

func (o BackupOutput) ToBackupOutput() BackupOutput

func (BackupOutput) ToBackupOutputWithContext

func (o BackupOutput) ToBackupOutputWithContext(ctx context.Context) BackupOutput

func (BackupOutput) VaultName

func (o BackupOutput) VaultName() pulumi.StringOutput

Name of the backup vault to store the backup in.

func (BackupOutput) VolumeUsageBytes

func (o BackupOutput) VolumeUsageBytes() pulumi.StringOutput

Size of the file system when the backup was created. When creating a new volume from the backup, the volume capacity will have to be at least as big.

type BackupPolicy

type BackupPolicy struct {
	pulumi.CustomResourceState

	// The total number of volumes assigned by this backup policy.
	AssignedVolumeCount pulumi.IntOutput `pulumi:"assignedVolumeCount"`
	// Create time of the backup policy. A timestamp in RFC3339 UTC "Zulu" format. Examples: "2023-06-22T09:13:01.617Z".
	CreateTime pulumi.StringOutput `pulumi:"createTime"`
	// Number of daily backups to keep. Note that the minimum daily backup limit is 2.
	DailyBackupLimit pulumi.IntOutput `pulumi:"dailyBackupLimit"`
	// An optional description of this resource.
	Description pulumi.StringPtrOutput `pulumi:"description"`
	// All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
	EffectiveLabels pulumi.StringMapOutput `pulumi:"effectiveLabels"`
	// If enabled, make backups automatically according to the schedules.
	// This will be applied to all volumes that have this policy attached and enforced on volume level.
	Enabled pulumi.BoolPtrOutput `pulumi:"enabled"`
	// Labels as key value pairs. Example: `{ "owner": "Bob", "department": "finance", "purpose": "testing" }`.
	//
	// **Note**: This field is non-authoritative, and will only manage the labels present in your configuration.
	// Please refer to the field `effectiveLabels` for all of the labels present on the resource.
	Labels pulumi.StringMapOutput `pulumi:"labels"`
	// Name of the region for the policy to apply to.
	Location pulumi.StringOutput `pulumi:"location"`
	// Number of monthly backups to keep. Note that the sum of daily, weekly and monthly backups should be greater than 1.
	MonthlyBackupLimit pulumi.IntOutput `pulumi:"monthlyBackupLimit"`
	// The name of the backup policy. Needs to be unique per location.
	//
	// ***
	Name pulumi.StringOutput `pulumi:"name"`
	// The ID of the project in which the resource belongs.
	// If it is not provided, the provider project is used.
	Project pulumi.StringOutput `pulumi:"project"`
	// The combination of labels configured directly on the resource
	// and default labels configured on the provider.
	PulumiLabels pulumi.StringMapOutput `pulumi:"pulumiLabels"`
	// The state of the backup policy.
	State pulumi.StringOutput `pulumi:"state"`
	// Number of weekly backups to keep. Note that the sum of daily, weekly and monthly backups should be greater than 1.
	WeeklyBackupLimit pulumi.IntOutput `pulumi:"weeklyBackupLimit"`
}

A backup policy is used to schedule backups at regular daily, weekly, or monthly intervals. Backup policies allow you to attach a backup schedule to a volume. The policy defines how many backups to retain at daily, weekly, or monthly intervals.

To get more information about BackupPolicy, see:

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

## Example Usage

### Netapp Backup Policy Full

```go package main

import (

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

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := netapp.NewBackupPolicy(ctx, "test_backup_policy_full", &netapp.BackupPolicyArgs{
			Name:               pulumi.String("test-backup-policy-full"),
			Location:           pulumi.String("us-central1"),
			DailyBackupLimit:   pulumi.Int(2),
			WeeklyBackupLimit:  pulumi.Int(1),
			MonthlyBackupLimit: pulumi.Int(1),
			Description:        pulumi.String("TF test backup schedule"),
			Enabled:            pulumi.Bool(true),
			Labels: pulumi.StringMap{
				"foo": pulumi.String("bar"),
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## Import

BackupPolicy can be imported using any of these accepted formats:

* `projects/{{project}}/locations/{{location}}/backupPolicies/{{name}}`

* `{{project}}/{{location}}/{{name}}`

* `{{location}}/{{name}}`

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

```sh $ pulumi import gcp:netapp/backupPolicy:BackupPolicy default projects/{{project}}/locations/{{location}}/backupPolicies/{{name}} ```

```sh $ pulumi import gcp:netapp/backupPolicy:BackupPolicy default {{project}}/{{location}}/{{name}} ```

```sh $ pulumi import gcp:netapp/backupPolicy:BackupPolicy default {{location}}/{{name}} ```

func GetBackupPolicy

func GetBackupPolicy(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *BackupPolicyState, opts ...pulumi.ResourceOption) (*BackupPolicy, error)

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

func NewBackupPolicy

func NewBackupPolicy(ctx *pulumi.Context,
	name string, args *BackupPolicyArgs, opts ...pulumi.ResourceOption) (*BackupPolicy, error)

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

func (*BackupPolicy) ElementType

func (*BackupPolicy) ElementType() reflect.Type

func (*BackupPolicy) ToBackupPolicyOutput

func (i *BackupPolicy) ToBackupPolicyOutput() BackupPolicyOutput

func (*BackupPolicy) ToBackupPolicyOutputWithContext

func (i *BackupPolicy) ToBackupPolicyOutputWithContext(ctx context.Context) BackupPolicyOutput

type BackupPolicyArgs

type BackupPolicyArgs struct {
	// Number of daily backups to keep. Note that the minimum daily backup limit is 2.
	DailyBackupLimit pulumi.IntInput
	// An optional description of this resource.
	Description pulumi.StringPtrInput
	// If enabled, make backups automatically according to the schedules.
	// This will be applied to all volumes that have this policy attached and enforced on volume level.
	Enabled pulumi.BoolPtrInput
	// Labels as key value pairs. Example: `{ "owner": "Bob", "department": "finance", "purpose": "testing" }`.
	//
	// **Note**: This field is non-authoritative, and will only manage the labels present in your configuration.
	// Please refer to the field `effectiveLabels` for all of the labels present on the resource.
	Labels pulumi.StringMapInput
	// Name of the region for the policy to apply to.
	Location pulumi.StringInput
	// Number of monthly backups to keep. Note that the sum of daily, weekly and monthly backups should be greater than 1.
	MonthlyBackupLimit pulumi.IntInput
	// The name of the backup policy. Needs to be unique per location.
	//
	// ***
	Name pulumi.StringPtrInput
	// The ID of the project in which the resource belongs.
	// If it is not provided, the provider project is used.
	Project pulumi.StringPtrInput
	// Number of weekly backups to keep. Note that the sum of daily, weekly and monthly backups should be greater than 1.
	WeeklyBackupLimit pulumi.IntInput
}

The set of arguments for constructing a BackupPolicy resource.

func (BackupPolicyArgs) ElementType

func (BackupPolicyArgs) ElementType() reflect.Type

type BackupPolicyArray

type BackupPolicyArray []BackupPolicyInput

func (BackupPolicyArray) ElementType

func (BackupPolicyArray) ElementType() reflect.Type

func (BackupPolicyArray) ToBackupPolicyArrayOutput

func (i BackupPolicyArray) ToBackupPolicyArrayOutput() BackupPolicyArrayOutput

func (BackupPolicyArray) ToBackupPolicyArrayOutputWithContext

func (i BackupPolicyArray) ToBackupPolicyArrayOutputWithContext(ctx context.Context) BackupPolicyArrayOutput

type BackupPolicyArrayInput

type BackupPolicyArrayInput interface {
	pulumi.Input

	ToBackupPolicyArrayOutput() BackupPolicyArrayOutput
	ToBackupPolicyArrayOutputWithContext(context.Context) BackupPolicyArrayOutput
}

BackupPolicyArrayInput is an input type that accepts BackupPolicyArray and BackupPolicyArrayOutput values. You can construct a concrete instance of `BackupPolicyArrayInput` via:

BackupPolicyArray{ BackupPolicyArgs{...} }

type BackupPolicyArrayOutput

type BackupPolicyArrayOutput struct{ *pulumi.OutputState }

func (BackupPolicyArrayOutput) ElementType

func (BackupPolicyArrayOutput) ElementType() reflect.Type

func (BackupPolicyArrayOutput) Index

func (BackupPolicyArrayOutput) ToBackupPolicyArrayOutput

func (o BackupPolicyArrayOutput) ToBackupPolicyArrayOutput() BackupPolicyArrayOutput

func (BackupPolicyArrayOutput) ToBackupPolicyArrayOutputWithContext

func (o BackupPolicyArrayOutput) ToBackupPolicyArrayOutputWithContext(ctx context.Context) BackupPolicyArrayOutput

type BackupPolicyInput

type BackupPolicyInput interface {
	pulumi.Input

	ToBackupPolicyOutput() BackupPolicyOutput
	ToBackupPolicyOutputWithContext(ctx context.Context) BackupPolicyOutput
}

type BackupPolicyMap

type BackupPolicyMap map[string]BackupPolicyInput

func (BackupPolicyMap) ElementType

func (BackupPolicyMap) ElementType() reflect.Type

func (BackupPolicyMap) ToBackupPolicyMapOutput

func (i BackupPolicyMap) ToBackupPolicyMapOutput() BackupPolicyMapOutput

func (BackupPolicyMap) ToBackupPolicyMapOutputWithContext

func (i BackupPolicyMap) ToBackupPolicyMapOutputWithContext(ctx context.Context) BackupPolicyMapOutput

type BackupPolicyMapInput

type BackupPolicyMapInput interface {
	pulumi.Input

	ToBackupPolicyMapOutput() BackupPolicyMapOutput
	ToBackupPolicyMapOutputWithContext(context.Context) BackupPolicyMapOutput
}

BackupPolicyMapInput is an input type that accepts BackupPolicyMap and BackupPolicyMapOutput values. You can construct a concrete instance of `BackupPolicyMapInput` via:

BackupPolicyMap{ "key": BackupPolicyArgs{...} }

type BackupPolicyMapOutput

type BackupPolicyMapOutput struct{ *pulumi.OutputState }

func (BackupPolicyMapOutput) ElementType

func (BackupPolicyMapOutput) ElementType() reflect.Type

func (BackupPolicyMapOutput) MapIndex

func (BackupPolicyMapOutput) ToBackupPolicyMapOutput

func (o BackupPolicyMapOutput) ToBackupPolicyMapOutput() BackupPolicyMapOutput

func (BackupPolicyMapOutput) ToBackupPolicyMapOutputWithContext

func (o BackupPolicyMapOutput) ToBackupPolicyMapOutputWithContext(ctx context.Context) BackupPolicyMapOutput

type BackupPolicyOutput

type BackupPolicyOutput struct{ *pulumi.OutputState }

func (BackupPolicyOutput) AssignedVolumeCount

func (o BackupPolicyOutput) AssignedVolumeCount() pulumi.IntOutput

The total number of volumes assigned by this backup policy.

func (BackupPolicyOutput) CreateTime

func (o BackupPolicyOutput) CreateTime() pulumi.StringOutput

Create time of the backup policy. A timestamp in RFC3339 UTC "Zulu" format. Examples: "2023-06-22T09:13:01.617Z".

func (BackupPolicyOutput) DailyBackupLimit

func (o BackupPolicyOutput) DailyBackupLimit() pulumi.IntOutput

Number of daily backups to keep. Note that the minimum daily backup limit is 2.

func (BackupPolicyOutput) Description

func (o BackupPolicyOutput) Description() pulumi.StringPtrOutput

An optional description of this resource.

func (BackupPolicyOutput) EffectiveLabels

func (o BackupPolicyOutput) EffectiveLabels() pulumi.StringMapOutput

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

func (BackupPolicyOutput) ElementType

func (BackupPolicyOutput) ElementType() reflect.Type

func (BackupPolicyOutput) Enabled

If enabled, make backups automatically according to the schedules. This will be applied to all volumes that have this policy attached and enforced on volume level.

func (BackupPolicyOutput) Labels

Labels as key value pairs. Example: `{ "owner": "Bob", "department": "finance", "purpose": "testing" }`.

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

func (BackupPolicyOutput) Location

func (o BackupPolicyOutput) Location() pulumi.StringOutput

Name of the region for the policy to apply to.

func (BackupPolicyOutput) MonthlyBackupLimit

func (o BackupPolicyOutput) MonthlyBackupLimit() pulumi.IntOutput

Number of monthly backups to keep. Note that the sum of daily, weekly and monthly backups should be greater than 1.

func (BackupPolicyOutput) Name

The name of the backup policy. Needs to be unique per location.

***

func (BackupPolicyOutput) Project

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

func (BackupPolicyOutput) PulumiLabels

func (o BackupPolicyOutput) PulumiLabels() pulumi.StringMapOutput

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

func (BackupPolicyOutput) State

The state of the backup policy.

func (BackupPolicyOutput) ToBackupPolicyOutput

func (o BackupPolicyOutput) ToBackupPolicyOutput() BackupPolicyOutput

func (BackupPolicyOutput) ToBackupPolicyOutputWithContext

func (o BackupPolicyOutput) ToBackupPolicyOutputWithContext(ctx context.Context) BackupPolicyOutput

func (BackupPolicyOutput) WeeklyBackupLimit

func (o BackupPolicyOutput) WeeklyBackupLimit() pulumi.IntOutput

Number of weekly backups to keep. Note that the sum of daily, weekly and monthly backups should be greater than 1.

type BackupPolicyState

type BackupPolicyState struct {
	// The total number of volumes assigned by this backup policy.
	AssignedVolumeCount pulumi.IntPtrInput
	// Create time of the backup policy. A timestamp in RFC3339 UTC "Zulu" format. Examples: "2023-06-22T09:13:01.617Z".
	CreateTime pulumi.StringPtrInput
	// Number of daily backups to keep. Note that the minimum daily backup limit is 2.
	DailyBackupLimit pulumi.IntPtrInput
	// An optional description of this resource.
	Description pulumi.StringPtrInput
	// All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
	EffectiveLabels pulumi.StringMapInput
	// If enabled, make backups automatically according to the schedules.
	// This will be applied to all volumes that have this policy attached and enforced on volume level.
	Enabled pulumi.BoolPtrInput
	// Labels as key value pairs. Example: `{ "owner": "Bob", "department": "finance", "purpose": "testing" }`.
	//
	// **Note**: This field is non-authoritative, and will only manage the labels present in your configuration.
	// Please refer to the field `effectiveLabels` for all of the labels present on the resource.
	Labels pulumi.StringMapInput
	// Name of the region for the policy to apply to.
	Location pulumi.StringPtrInput
	// Number of monthly backups to keep. Note that the sum of daily, weekly and monthly backups should be greater than 1.
	MonthlyBackupLimit pulumi.IntPtrInput
	// The name of the backup policy. Needs to be unique per location.
	//
	// ***
	Name pulumi.StringPtrInput
	// The ID of the project in which the resource belongs.
	// If it is not provided, the provider project is used.
	Project pulumi.StringPtrInput
	// The combination of labels configured directly on the resource
	// and default labels configured on the provider.
	PulumiLabels pulumi.StringMapInput
	// The state of the backup policy.
	State pulumi.StringPtrInput
	// Number of weekly backups to keep. Note that the sum of daily, weekly and monthly backups should be greater than 1.
	WeeklyBackupLimit pulumi.IntPtrInput
}

func (BackupPolicyState) ElementType

func (BackupPolicyState) ElementType() reflect.Type

type BackupState

type BackupState struct {
	// Type of backup, manually created or created by a backup policy. Possible Values : [TYPE_UNSPECIFIED, MANUAL, SCHEDULED]
	BackupType pulumi.StringPtrInput
	// Backups of a volume build incrementally on top of each other. They form a "backup chain".
	// Total size of all backups in a chain in bytes = baseline backup size + sum(incremental backup size)
	ChainStorageBytes pulumi.StringPtrInput
	// Create time of the backup. A timestamp in RFC3339 UTC "Zulu" format. Examples: "2023-06-22T09:13:01.617Z".
	CreateTime pulumi.StringPtrInput
	// A description of the backup with 2048 characters or less. Requests with longer descriptions will be rejected.
	Description pulumi.StringPtrInput
	// All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
	EffectiveLabels pulumi.StringMapInput
	// Labels as key value pairs. Example: `{ "owner": "Bob", "department": "finance", "purpose": "testing" }`.
	//
	// **Note**: This field is non-authoritative, and will only manage the labels present in your configuration.
	// Please refer to the field `effectiveLabels` for all of the labels present on the resource.
	Labels pulumi.StringMapInput
	// Location of the backup.
	Location pulumi.StringPtrInput
	// The resource name of the backup. Needs to be unique per location.
	//
	// ***
	Name pulumi.StringPtrInput
	// The ID of the project in which the resource belongs.
	// If it is not provided, the provider project is used.
	Project pulumi.StringPtrInput
	// The combination of labels configured directly on the resource
	// and default labels configured on the provider.
	PulumiLabels pulumi.StringMapInput
	// If specified, backup will be created from the given snapshot. If not specified,
	// there will be a new snapshot taken to initiate the backup creation.
	// Format: `projects/{{projectId}}/locations/{{location}}/volumes/{{volumename}}/snapshots/{{snapshotname}}“
	SourceSnapshot pulumi.StringPtrInput
	// ID of volumes this backup belongs to. Format: `projects/{{projects_id}}/locations/{{location}}/volumes/{{name}}“
	SourceVolume pulumi.StringPtrInput
	// The state of the Backup Vault. Possible Values : [STATE_UNSPECIFIED, CREATING, UPLOADING, READY, DELETING, ERROR, UPDATING]
	State pulumi.StringPtrInput
	// Name of the backup vault to store the backup in.
	VaultName pulumi.StringPtrInput
	// Size of the file system when the backup was created. When creating a new volume from the backup, the volume capacity will have to be at least as big.
	VolumeUsageBytes pulumi.StringPtrInput
}

func (BackupState) ElementType

func (BackupState) ElementType() reflect.Type

type BackupVault

type BackupVault struct {
	pulumi.CustomResourceState

	// Create time of the backup vault. A timestamp in RFC3339 UTC "Zulu" format. Examples: "2023-06-22T09:13:01.617Z".
	CreateTime pulumi.StringOutput `pulumi:"createTime"`
	// An optional description of this resource.
	Description pulumi.StringPtrOutput `pulumi:"description"`
	// All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
	EffectiveLabels pulumi.StringMapOutput `pulumi:"effectiveLabels"`
	// Labels as key value pairs. Example: `{ "owner": "Bob", "department": "finance", "purpose": "testing" }`.
	//
	// **Note**: This field is non-authoritative, and will only manage the labels present in your configuration.
	// Please refer to the field `effectiveLabels` for all of the labels present on the resource.
	Labels pulumi.StringMapOutput `pulumi:"labels"`
	// Location (region) of the backup vault.
	Location pulumi.StringOutput `pulumi:"location"`
	// The resource name of the backup vault. Needs to be unique per location.
	//
	// ***
	Name pulumi.StringOutput `pulumi:"name"`
	// The ID of the project in which the resource belongs.
	// If it is not provided, the provider project is used.
	Project pulumi.StringOutput `pulumi:"project"`
	// The combination of labels configured directly on the resource
	// and default labels configured on the provider.
	PulumiLabels pulumi.StringMapOutput `pulumi:"pulumiLabels"`
	// The state of the Backup Vault.
	State pulumi.StringOutput `pulumi:"state"`
}

A backup vault is the location where backups are stored. You can only create one backup vault per region. A vault can hold multiple backups for multiple volumes in that region.

To get more information about BackupVault, see:

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

## Example Usage

### Netapp Backup Vault

```go package main

import (

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

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := netapp.NewBackupVault(ctx, "test_backup_vault", &netapp.BackupVaultArgs{
			Name:        pulumi.String("test-backup-vault"),
			Location:    pulumi.String("us-west1"),
			Description: pulumi.String("Terraform created vault"),
			Labels: pulumi.StringMap{
				"creator": pulumi.String("testuser"),
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## Import

BackupVault can be imported using any of these accepted formats:

* `projects/{{project}}/locations/{{location}}/backupVaults/{{name}}`

* `{{project}}/{{location}}/{{name}}`

* `{{location}}/{{name}}`

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

```sh $ pulumi import gcp:netapp/backupVault:BackupVault default projects/{{project}}/locations/{{location}}/backupVaults/{{name}} ```

```sh $ pulumi import gcp:netapp/backupVault:BackupVault default {{project}}/{{location}}/{{name}} ```

```sh $ pulumi import gcp:netapp/backupVault:BackupVault default {{location}}/{{name}} ```

func GetBackupVault

func GetBackupVault(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *BackupVaultState, opts ...pulumi.ResourceOption) (*BackupVault, error)

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

func NewBackupVault

func NewBackupVault(ctx *pulumi.Context,
	name string, args *BackupVaultArgs, opts ...pulumi.ResourceOption) (*BackupVault, error)

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

func (*BackupVault) ElementType

func (*BackupVault) ElementType() reflect.Type

func (*BackupVault) ToBackupVaultOutput

func (i *BackupVault) ToBackupVaultOutput() BackupVaultOutput

func (*BackupVault) ToBackupVaultOutputWithContext

func (i *BackupVault) ToBackupVaultOutputWithContext(ctx context.Context) BackupVaultOutput

type BackupVaultArgs

type BackupVaultArgs struct {
	// An optional description of this resource.
	Description pulumi.StringPtrInput
	// Labels as key value pairs. Example: `{ "owner": "Bob", "department": "finance", "purpose": "testing" }`.
	//
	// **Note**: This field is non-authoritative, and will only manage the labels present in your configuration.
	// Please refer to the field `effectiveLabels` for all of the labels present on the resource.
	Labels pulumi.StringMapInput
	// Location (region) of the backup vault.
	Location pulumi.StringInput
	// The resource name of the backup vault. Needs to be unique per location.
	//
	// ***
	Name pulumi.StringPtrInput
	// The ID of the project in which the resource belongs.
	// If it is not provided, the provider project is used.
	Project pulumi.StringPtrInput
}

The set of arguments for constructing a BackupVault resource.

func (BackupVaultArgs) ElementType

func (BackupVaultArgs) ElementType() reflect.Type

type BackupVaultArray

type BackupVaultArray []BackupVaultInput

func (BackupVaultArray) ElementType

func (BackupVaultArray) ElementType() reflect.Type

func (BackupVaultArray) ToBackupVaultArrayOutput

func (i BackupVaultArray) ToBackupVaultArrayOutput() BackupVaultArrayOutput

func (BackupVaultArray) ToBackupVaultArrayOutputWithContext

func (i BackupVaultArray) ToBackupVaultArrayOutputWithContext(ctx context.Context) BackupVaultArrayOutput

type BackupVaultArrayInput

type BackupVaultArrayInput interface {
	pulumi.Input

	ToBackupVaultArrayOutput() BackupVaultArrayOutput
	ToBackupVaultArrayOutputWithContext(context.Context) BackupVaultArrayOutput
}

BackupVaultArrayInput is an input type that accepts BackupVaultArray and BackupVaultArrayOutput values. You can construct a concrete instance of `BackupVaultArrayInput` via:

BackupVaultArray{ BackupVaultArgs{...} }

type BackupVaultArrayOutput

type BackupVaultArrayOutput struct{ *pulumi.OutputState }

func (BackupVaultArrayOutput) ElementType

func (BackupVaultArrayOutput) ElementType() reflect.Type

func (BackupVaultArrayOutput) Index

func (BackupVaultArrayOutput) ToBackupVaultArrayOutput

func (o BackupVaultArrayOutput) ToBackupVaultArrayOutput() BackupVaultArrayOutput

func (BackupVaultArrayOutput) ToBackupVaultArrayOutputWithContext

func (o BackupVaultArrayOutput) ToBackupVaultArrayOutputWithContext(ctx context.Context) BackupVaultArrayOutput

type BackupVaultInput

type BackupVaultInput interface {
	pulumi.Input

	ToBackupVaultOutput() BackupVaultOutput
	ToBackupVaultOutputWithContext(ctx context.Context) BackupVaultOutput
}

type BackupVaultMap

type BackupVaultMap map[string]BackupVaultInput

func (BackupVaultMap) ElementType

func (BackupVaultMap) ElementType() reflect.Type

func (BackupVaultMap) ToBackupVaultMapOutput

func (i BackupVaultMap) ToBackupVaultMapOutput() BackupVaultMapOutput

func (BackupVaultMap) ToBackupVaultMapOutputWithContext

func (i BackupVaultMap) ToBackupVaultMapOutputWithContext(ctx context.Context) BackupVaultMapOutput

type BackupVaultMapInput

type BackupVaultMapInput interface {
	pulumi.Input

	ToBackupVaultMapOutput() BackupVaultMapOutput
	ToBackupVaultMapOutputWithContext(context.Context) BackupVaultMapOutput
}

BackupVaultMapInput is an input type that accepts BackupVaultMap and BackupVaultMapOutput values. You can construct a concrete instance of `BackupVaultMapInput` via:

BackupVaultMap{ "key": BackupVaultArgs{...} }

type BackupVaultMapOutput

type BackupVaultMapOutput struct{ *pulumi.OutputState }

func (BackupVaultMapOutput) ElementType

func (BackupVaultMapOutput) ElementType() reflect.Type

func (BackupVaultMapOutput) MapIndex

func (BackupVaultMapOutput) ToBackupVaultMapOutput

func (o BackupVaultMapOutput) ToBackupVaultMapOutput() BackupVaultMapOutput

func (BackupVaultMapOutput) ToBackupVaultMapOutputWithContext

func (o BackupVaultMapOutput) ToBackupVaultMapOutputWithContext(ctx context.Context) BackupVaultMapOutput

type BackupVaultOutput

type BackupVaultOutput struct{ *pulumi.OutputState }

func (BackupVaultOutput) CreateTime

func (o BackupVaultOutput) CreateTime() pulumi.StringOutput

Create time of the backup vault. A timestamp in RFC3339 UTC "Zulu" format. Examples: "2023-06-22T09:13:01.617Z".

func (BackupVaultOutput) Description

func (o BackupVaultOutput) Description() pulumi.StringPtrOutput

An optional description of this resource.

func (BackupVaultOutput) EffectiveLabels

func (o BackupVaultOutput) EffectiveLabels() pulumi.StringMapOutput

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

func (BackupVaultOutput) ElementType

func (BackupVaultOutput) ElementType() reflect.Type

func (BackupVaultOutput) Labels

Labels as key value pairs. Example: `{ "owner": "Bob", "department": "finance", "purpose": "testing" }`.

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

func (BackupVaultOutput) Location

func (o BackupVaultOutput) Location() pulumi.StringOutput

Location (region) of the backup vault.

func (BackupVaultOutput) Name

The resource name of the backup vault. Needs to be unique per location.

***

func (BackupVaultOutput) Project

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

func (BackupVaultOutput) PulumiLabels

func (o BackupVaultOutput) PulumiLabels() pulumi.StringMapOutput

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

func (BackupVaultOutput) State

The state of the Backup Vault.

func (BackupVaultOutput) ToBackupVaultOutput

func (o BackupVaultOutput) ToBackupVaultOutput() BackupVaultOutput

func (BackupVaultOutput) ToBackupVaultOutputWithContext

func (o BackupVaultOutput) ToBackupVaultOutputWithContext(ctx context.Context) BackupVaultOutput

type BackupVaultState

type BackupVaultState struct {
	// Create time of the backup vault. A timestamp in RFC3339 UTC "Zulu" format. Examples: "2023-06-22T09:13:01.617Z".
	CreateTime pulumi.StringPtrInput
	// An optional description of this resource.
	Description pulumi.StringPtrInput
	// All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
	EffectiveLabels pulumi.StringMapInput
	// Labels as key value pairs. Example: `{ "owner": "Bob", "department": "finance", "purpose": "testing" }`.
	//
	// **Note**: This field is non-authoritative, and will only manage the labels present in your configuration.
	// Please refer to the field `effectiveLabels` for all of the labels present on the resource.
	Labels pulumi.StringMapInput
	// Location (region) of the backup vault.
	Location pulumi.StringPtrInput
	// The resource name of the backup vault. Needs to be unique per location.
	//
	// ***
	Name pulumi.StringPtrInput
	// The ID of the project in which the resource belongs.
	// If it is not provided, the provider project is used.
	Project pulumi.StringPtrInput
	// The combination of labels configured directly on the resource
	// and default labels configured on the provider.
	PulumiLabels pulumi.StringMapInput
	// The state of the Backup Vault.
	State pulumi.StringPtrInput
}

func (BackupVaultState) ElementType

func (BackupVaultState) ElementType() reflect.Type

type Kmsconfig

type Kmsconfig struct {
	pulumi.CustomResourceState

	// Resource name of the KMS key to use. Only regional keys are supported. Format: `projects/{{project}}/locations/{{location}}/keyRings/{{key_ring}}/cryptoKeys/{{key}}`.
	CryptoKeyName pulumi.StringOutput `pulumi:"cryptoKeyName"`
	// Description for the CMEK policy.
	Description pulumi.StringPtrOutput `pulumi:"description"`
	// All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
	EffectiveLabels pulumi.StringMapOutput `pulumi:"effectiveLabels"`
	// Access to the key needs to be granted. The instructions contain gcloud commands to run to grant access.
	// To make the policy work, a CMEK policy check is required, which verifies key access.
	Instructions pulumi.StringOutput `pulumi:"instructions"`
	// Labels as key value pairs. Example: `{ "owner": "Bob", "department": "finance", "purpose": "testing" }`.
	//
	// **Note**: This field is non-authoritative, and will only manage the labels present in your configuration.
	// Please refer to the field `effectiveLabels` for all of the labels present on the resource.
	Labels pulumi.StringMapOutput `pulumi:"labels"`
	// Name of the policy location. CMEK policies apply to the whole region.
	Location pulumi.StringOutput `pulumi:"location"`
	// Name of the CMEK policy.
	//
	// ***
	Name pulumi.StringOutput `pulumi:"name"`
	// The ID of the project in which the resource belongs.
	// If it is not provided, the provider project is used.
	Project pulumi.StringOutput `pulumi:"project"`
	// The combination of labels configured directly on the resource
	// and default labels configured on the provider.
	PulumiLabels pulumi.StringMapOutput `pulumi:"pulumiLabels"`
	// The Service account which needs to have access to the  provided KMS key.
	ServiceAccount pulumi.StringOutput `pulumi:"serviceAccount"`
}

NetApp Volumes always encrypts your data at rest using volume-specific keys.

A CMEK policy (customer-managed encryption key) warps such volume-specific keys in a key stored in Cloud Key Management Service (KMS).

To get more information about kmsconfig, see:

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

## Example Usage

### Kms Config Create

```go package main

import (

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

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		keyring, err := kms.NewKeyRing(ctx, "keyring", &kms.KeyRingArgs{
			Name:     pulumi.String("key-ring"),
			Location: pulumi.String("us-central1"),
		})
		if err != nil {
			return err
		}
		cryptoKey, err := kms.NewCryptoKey(ctx, "crypto_key", &kms.CryptoKeyArgs{
			Name:    pulumi.String("crypto-name"),
			KeyRing: keyring.ID(),
		})
		if err != nil {
			return err
		}
		_, err = netapp.NewKmsconfig(ctx, "kmsConfig", &netapp.KmsconfigArgs{
			Name:          pulumi.String("kms-test"),
			Description:   pulumi.String("this is a test description"),
			CryptoKeyName: cryptoKey.ID(),
			Location:      pulumi.String("us-central1"),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## Import

kmsconfig can be imported using any of these accepted formats:

* `projects/{{project}}/locations/{{location}}/kmsConfigs/{{name}}`

* `{{project}}/{{location}}/{{name}}`

* `{{location}}/{{name}}`

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

```sh $ pulumi import gcp:netapp/kmsconfig:Kmsconfig default projects/{{project}}/locations/{{location}}/kmsConfigs/{{name}} ```

```sh $ pulumi import gcp:netapp/kmsconfig:Kmsconfig default {{project}}/{{location}}/{{name}} ```

```sh $ pulumi import gcp:netapp/kmsconfig:Kmsconfig default {{location}}/{{name}} ```

func GetKmsconfig

func GetKmsconfig(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *KmsconfigState, opts ...pulumi.ResourceOption) (*Kmsconfig, error)

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

func NewKmsconfig

func NewKmsconfig(ctx *pulumi.Context,
	name string, args *KmsconfigArgs, opts ...pulumi.ResourceOption) (*Kmsconfig, error)

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

func (*Kmsconfig) ElementType

func (*Kmsconfig) ElementType() reflect.Type

func (*Kmsconfig) ToKmsconfigOutput

func (i *Kmsconfig) ToKmsconfigOutput() KmsconfigOutput

func (*Kmsconfig) ToKmsconfigOutputWithContext

func (i *Kmsconfig) ToKmsconfigOutputWithContext(ctx context.Context) KmsconfigOutput

type KmsconfigArgs

type KmsconfigArgs struct {
	// Resource name of the KMS key to use. Only regional keys are supported. Format: `projects/{{project}}/locations/{{location}}/keyRings/{{key_ring}}/cryptoKeys/{{key}}`.
	CryptoKeyName pulumi.StringInput
	// Description for the CMEK policy.
	Description pulumi.StringPtrInput
	// Labels as key value pairs. Example: `{ "owner": "Bob", "department": "finance", "purpose": "testing" }`.
	//
	// **Note**: This field is non-authoritative, and will only manage the labels present in your configuration.
	// Please refer to the field `effectiveLabels` for all of the labels present on the resource.
	Labels pulumi.StringMapInput
	// Name of the policy location. CMEK policies apply to the whole region.
	Location pulumi.StringInput
	// Name of the CMEK policy.
	//
	// ***
	Name pulumi.StringPtrInput
	// The ID of the project in which the resource belongs.
	// If it is not provided, the provider project is used.
	Project pulumi.StringPtrInput
}

The set of arguments for constructing a Kmsconfig resource.

func (KmsconfigArgs) ElementType

func (KmsconfigArgs) ElementType() reflect.Type

type KmsconfigArray

type KmsconfigArray []KmsconfigInput

func (KmsconfigArray) ElementType

func (KmsconfigArray) ElementType() reflect.Type

func (KmsconfigArray) ToKmsconfigArrayOutput

func (i KmsconfigArray) ToKmsconfigArrayOutput() KmsconfigArrayOutput

func (KmsconfigArray) ToKmsconfigArrayOutputWithContext

func (i KmsconfigArray) ToKmsconfigArrayOutputWithContext(ctx context.Context) KmsconfigArrayOutput

type KmsconfigArrayInput

type KmsconfigArrayInput interface {
	pulumi.Input

	ToKmsconfigArrayOutput() KmsconfigArrayOutput
	ToKmsconfigArrayOutputWithContext(context.Context) KmsconfigArrayOutput
}

KmsconfigArrayInput is an input type that accepts KmsconfigArray and KmsconfigArrayOutput values. You can construct a concrete instance of `KmsconfigArrayInput` via:

KmsconfigArray{ KmsconfigArgs{...} }

type KmsconfigArrayOutput

type KmsconfigArrayOutput struct{ *pulumi.OutputState }

func (KmsconfigArrayOutput) ElementType

func (KmsconfigArrayOutput) ElementType() reflect.Type

func (KmsconfigArrayOutput) Index

func (KmsconfigArrayOutput) ToKmsconfigArrayOutput

func (o KmsconfigArrayOutput) ToKmsconfigArrayOutput() KmsconfigArrayOutput

func (KmsconfigArrayOutput) ToKmsconfigArrayOutputWithContext

func (o KmsconfigArrayOutput) ToKmsconfigArrayOutputWithContext(ctx context.Context) KmsconfigArrayOutput

type KmsconfigInput

type KmsconfigInput interface {
	pulumi.Input

	ToKmsconfigOutput() KmsconfigOutput
	ToKmsconfigOutputWithContext(ctx context.Context) KmsconfigOutput
}

type KmsconfigMap

type KmsconfigMap map[string]KmsconfigInput

func (KmsconfigMap) ElementType

func (KmsconfigMap) ElementType() reflect.Type

func (KmsconfigMap) ToKmsconfigMapOutput

func (i KmsconfigMap) ToKmsconfigMapOutput() KmsconfigMapOutput

func (KmsconfigMap) ToKmsconfigMapOutputWithContext

func (i KmsconfigMap) ToKmsconfigMapOutputWithContext(ctx context.Context) KmsconfigMapOutput

type KmsconfigMapInput

type KmsconfigMapInput interface {
	pulumi.Input

	ToKmsconfigMapOutput() KmsconfigMapOutput
	ToKmsconfigMapOutputWithContext(context.Context) KmsconfigMapOutput
}

KmsconfigMapInput is an input type that accepts KmsconfigMap and KmsconfigMapOutput values. You can construct a concrete instance of `KmsconfigMapInput` via:

KmsconfigMap{ "key": KmsconfigArgs{...} }

type KmsconfigMapOutput

type KmsconfigMapOutput struct{ *pulumi.OutputState }

func (KmsconfigMapOutput) ElementType

func (KmsconfigMapOutput) ElementType() reflect.Type

func (KmsconfigMapOutput) MapIndex

func (KmsconfigMapOutput) ToKmsconfigMapOutput

func (o KmsconfigMapOutput) ToKmsconfigMapOutput() KmsconfigMapOutput

func (KmsconfigMapOutput) ToKmsconfigMapOutputWithContext

func (o KmsconfigMapOutput) ToKmsconfigMapOutputWithContext(ctx context.Context) KmsconfigMapOutput

type KmsconfigOutput

type KmsconfigOutput struct{ *pulumi.OutputState }

func (KmsconfigOutput) CryptoKeyName

func (o KmsconfigOutput) CryptoKeyName() pulumi.StringOutput

Resource name of the KMS key to use. Only regional keys are supported. Format: `projects/{{project}}/locations/{{location}}/keyRings/{{key_ring}}/cryptoKeys/{{key}}`.

func (KmsconfigOutput) Description

func (o KmsconfigOutput) Description() pulumi.StringPtrOutput

Description for the CMEK policy.

func (KmsconfigOutput) EffectiveLabels

func (o KmsconfigOutput) EffectiveLabels() pulumi.StringMapOutput

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

func (KmsconfigOutput) ElementType

func (KmsconfigOutput) ElementType() reflect.Type

func (KmsconfigOutput) Instructions

func (o KmsconfigOutput) Instructions() pulumi.StringOutput

Access to the key needs to be granted. The instructions contain gcloud commands to run to grant access. To make the policy work, a CMEK policy check is required, which verifies key access.

func (KmsconfigOutput) Labels

Labels as key value pairs. Example: `{ "owner": "Bob", "department": "finance", "purpose": "testing" }`.

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

func (KmsconfigOutput) Location

func (o KmsconfigOutput) Location() pulumi.StringOutput

Name of the policy location. CMEK policies apply to the whole region.

func (KmsconfigOutput) Name

Name of the CMEK policy.

***

func (KmsconfigOutput) Project

func (o KmsconfigOutput) Project() pulumi.StringOutput

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

func (KmsconfigOutput) PulumiLabels

func (o KmsconfigOutput) PulumiLabels() pulumi.StringMapOutput

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

func (KmsconfigOutput) ServiceAccount

func (o KmsconfigOutput) ServiceAccount() pulumi.StringOutput

The Service account which needs to have access to the provided KMS key.

func (KmsconfigOutput) ToKmsconfigOutput

func (o KmsconfigOutput) ToKmsconfigOutput() KmsconfigOutput

func (KmsconfigOutput) ToKmsconfigOutputWithContext

func (o KmsconfigOutput) ToKmsconfigOutputWithContext(ctx context.Context) KmsconfigOutput

type KmsconfigState

type KmsconfigState struct {
	// Resource name of the KMS key to use. Only regional keys are supported. Format: `projects/{{project}}/locations/{{location}}/keyRings/{{key_ring}}/cryptoKeys/{{key}}`.
	CryptoKeyName pulumi.StringPtrInput
	// Description for the CMEK policy.
	Description pulumi.StringPtrInput
	// All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
	EffectiveLabels pulumi.StringMapInput
	// Access to the key needs to be granted. The instructions contain gcloud commands to run to grant access.
	// To make the policy work, a CMEK policy check is required, which verifies key access.
	Instructions pulumi.StringPtrInput
	// Labels as key value pairs. Example: `{ "owner": "Bob", "department": "finance", "purpose": "testing" }`.
	//
	// **Note**: This field is non-authoritative, and will only manage the labels present in your configuration.
	// Please refer to the field `effectiveLabels` for all of the labels present on the resource.
	Labels pulumi.StringMapInput
	// Name of the policy location. CMEK policies apply to the whole region.
	Location pulumi.StringPtrInput
	// Name of the CMEK policy.
	//
	// ***
	Name pulumi.StringPtrInput
	// The ID of the project in which the resource belongs.
	// If it is not provided, the provider project is used.
	Project pulumi.StringPtrInput
	// The combination of labels configured directly on the resource
	// and default labels configured on the provider.
	PulumiLabels pulumi.StringMapInput
	// The Service account which needs to have access to the  provided KMS key.
	ServiceAccount pulumi.StringPtrInput
}

func (KmsconfigState) ElementType

func (KmsconfigState) ElementType() reflect.Type

type StoragePool

type StoragePool struct {
	pulumi.CustomResourceState

	// Specifies the Active Directory policy to be used. Format: `projects/{{project}}/locations/{{location}}/activeDirectories/{{name}}`.
	// The policy needs to be in the same location as the storage pool.
	ActiveDirectory pulumi.StringPtrOutput `pulumi:"activeDirectory"`
	// Optional. True if the storage pool supports Auto Tiering enabled volumes. Default is false.
	// Auto-tiering can be enabled after storage pool creation but it can't be disabled once enabled.
	AllowAutoTiering pulumi.BoolPtrOutput `pulumi:"allowAutoTiering"`
	// Capacity of the storage pool (in GiB).
	CapacityGib pulumi.StringOutput `pulumi:"capacityGib"`
	// An optional description of this resource.
	Description pulumi.StringPtrOutput `pulumi:"description"`
	// All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
	EffectiveLabels pulumi.StringMapOutput `pulumi:"effectiveLabels"`
	// Reports if volumes in the pool are encrypted using a Google-managed encryption key or CMEK.
	EncryptionType pulumi.StringOutput `pulumi:"encryptionType"`
	// Specifies the CMEK policy to be used for volume encryption. Format: `projects/{{project}}/locations/{{location}}/kmsConfigs/{{name}}`.
	// The policy needs to be in the same location as the storage pool.
	KmsConfig pulumi.StringPtrOutput `pulumi:"kmsConfig"`
	// Labels as key value pairs. Example: `{ "owner": "Bob", "department": "finance", "purpose": "testing" }`.
	//
	// **Note**: This field is non-authoritative, and will only manage the labels present in your configuration.
	// Please refer to the field `effectiveLabels` for all of the labels present on the resource.
	Labels pulumi.StringMapOutput `pulumi:"labels"`
	// When enabled, the volumes uses Active Directory as LDAP name service for UID/GID lookups. Required to enable extended group support for NFSv3,
	// using security identifiers for NFSv4.1 or principal names for kerberized NFSv4.1.
	LdapEnabled pulumi.BoolPtrOutput `pulumi:"ldapEnabled"`
	// Name of the location. For zonal Flex pools specify a zone name, in all other cases a region name.
	Location pulumi.StringOutput `pulumi:"location"`
	// The resource name of the storage pool. Needs to be unique per location/region.
	//
	// ***
	Name pulumi.StringOutput `pulumi:"name"`
	// VPC network name with format: `projects/{{project}}/global/networks/{{network}}`
	Network pulumi.StringOutput `pulumi:"network"`
	// The ID of the project in which the resource belongs.
	// If it is not provided, the provider project is used.
	Project pulumi.StringOutput `pulumi:"project"`
	// The combination of labels configured directly on the resource
	// and default labels configured on the provider.
	PulumiLabels pulumi.StringMapOutput `pulumi:"pulumiLabels"`
	// Specifies the replica zone for regional Flex pools. `zone` and `replicaZone` values can be swapped to initiate a
	// [zone switch](https://cloud.google.com/netapp/volumes/docs/configure-and-use/storage-pools/edit-or-delete-storage-pool#switch_active_and_replica_zones).
	ReplicaZone pulumi.StringPtrOutput `pulumi:"replicaZone"`
	// Service level of the storage pool.
	// Possible values are: `PREMIUM`, `EXTREME`, `STANDARD`, `FLEX`.
	ServiceLevel pulumi.StringOutput `pulumi:"serviceLevel"`
	// Size allocated to volumes in the storage pool (in GiB).
	VolumeCapacityGib pulumi.StringOutput `pulumi:"volumeCapacityGib"`
	// Number of volume in the storage pool.
	VolumeCount pulumi.IntOutput `pulumi:"volumeCount"`
	// Specifies the active zone for regional Flex pools. `zone` and `replicaZone` values can be swapped to initiate a
	// [zone switch](https://cloud.google.com/netapp/volumes/docs/configure-and-use/storage-pools/edit-or-delete-storage-pool#switch_active_and_replica_zones).
	// If you want to create a zonal Flex pool, specify a zone name for `location` and omit `zone`.
	Zone pulumi.StringPtrOutput `pulumi:"zone"`
}

## Example Usage

### Storage Pool Create

```go package main

import (

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

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		// Create a network or use datasource to reference existing network
		peeringNetwork, err := compute.NewNetwork(ctx, "peering_network", &compute.NetworkArgs{
			Name: pulumi.String("test-network"),
		})
		if err != nil {
			return err
		}
		// Reserve a CIDR for NetApp Volumes to use
		// When using shared-VPCs, this resource needs to be created in host project
		privateIpAlloc, err := compute.NewGlobalAddress(ctx, "private_ip_alloc", &compute.GlobalAddressArgs{
			Name:         pulumi.String("test-address"),
			Purpose:      pulumi.String("VPC_PEERING"),
			AddressType:  pulumi.String("INTERNAL"),
			PrefixLength: pulumi.Int(16),
			Network:      peeringNetwork.ID(),
		})
		if err != nil {
			return err
		}
		// Create a Private Service Access connection
		// When using shared-VPCs, this resource needs to be created in host project
		_, err = servicenetworking.NewConnection(ctx, "default", &servicenetworking.ConnectionArgs{
			Network: peeringNetwork.ID(),
			Service: pulumi.String("netapp.servicenetworking.goog"),
			ReservedPeeringRanges: pulumi.StringArray{
				privateIpAlloc.Name,
			},
		})
		if err != nil {
			return err
		}
		// Modify the PSA Connection to allow import/export of custom routes
		// When using shared-VPCs, this resource needs to be created in host project
		_, err = compute.NewNetworkPeeringRoutesConfig(ctx, "route_updates", &compute.NetworkPeeringRoutesConfigArgs{
			Peering:            _default.Peering,
			Network:            peeringNetwork.Name,
			ImportCustomRoutes: pulumi.Bool(true),
			ExportCustomRoutes: pulumi.Bool(true),
		})
		if err != nil {
			return err
		}
		// Create a storage pool
		// Create this resource in the project which is expected to own the volumes
		_, err = netapp.NewStoragePool(ctx, "test_pool", &netapp.StoragePoolArgs{
			Name:         pulumi.String("test-pool"),
			Location:     pulumi.String("us-central1"),
			ServiceLevel: pulumi.String("PREMIUM"),
			CapacityGib:  pulumi.String("2048"),
			Network:      peeringNetwork.ID(),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## Import

StoragePool can be imported using any of these accepted formats:

* `projects/{{project}}/locations/{{location}}/storagePools/{{name}}`

* `{{project}}/{{location}}/{{name}}`

* `{{location}}/{{name}}`

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

```sh $ pulumi import gcp:netapp/storagePool:StoragePool default projects/{{project}}/locations/{{location}}/storagePools/{{name}} ```

```sh $ pulumi import gcp:netapp/storagePool:StoragePool default {{project}}/{{location}}/{{name}} ```

```sh $ pulumi import gcp:netapp/storagePool:StoragePool default {{location}}/{{name}} ```

func GetStoragePool

func GetStoragePool(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *StoragePoolState, opts ...pulumi.ResourceOption) (*StoragePool, error)

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

func NewStoragePool

func NewStoragePool(ctx *pulumi.Context,
	name string, args *StoragePoolArgs, opts ...pulumi.ResourceOption) (*StoragePool, error)

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

func (*StoragePool) ElementType

func (*StoragePool) ElementType() reflect.Type

func (*StoragePool) ToStoragePoolOutput

func (i *StoragePool) ToStoragePoolOutput() StoragePoolOutput

func (*StoragePool) ToStoragePoolOutputWithContext

func (i *StoragePool) ToStoragePoolOutputWithContext(ctx context.Context) StoragePoolOutput

type StoragePoolArgs

type StoragePoolArgs struct {
	// Specifies the Active Directory policy to be used. Format: `projects/{{project}}/locations/{{location}}/activeDirectories/{{name}}`.
	// The policy needs to be in the same location as the storage pool.
	ActiveDirectory pulumi.StringPtrInput
	// Optional. True if the storage pool supports Auto Tiering enabled volumes. Default is false.
	// Auto-tiering can be enabled after storage pool creation but it can't be disabled once enabled.
	AllowAutoTiering pulumi.BoolPtrInput
	// Capacity of the storage pool (in GiB).
	CapacityGib pulumi.StringInput
	// An optional description of this resource.
	Description pulumi.StringPtrInput
	// Specifies the CMEK policy to be used for volume encryption. Format: `projects/{{project}}/locations/{{location}}/kmsConfigs/{{name}}`.
	// The policy needs to be in the same location as the storage pool.
	KmsConfig pulumi.StringPtrInput
	// Labels as key value pairs. Example: `{ "owner": "Bob", "department": "finance", "purpose": "testing" }`.
	//
	// **Note**: This field is non-authoritative, and will only manage the labels present in your configuration.
	// Please refer to the field `effectiveLabels` for all of the labels present on the resource.
	Labels pulumi.StringMapInput
	// When enabled, the volumes uses Active Directory as LDAP name service for UID/GID lookups. Required to enable extended group support for NFSv3,
	// using security identifiers for NFSv4.1 or principal names for kerberized NFSv4.1.
	LdapEnabled pulumi.BoolPtrInput
	// Name of the location. For zonal Flex pools specify a zone name, in all other cases a region name.
	Location pulumi.StringInput
	// The resource name of the storage pool. Needs to be unique per location/region.
	//
	// ***
	Name pulumi.StringPtrInput
	// VPC network name with format: `projects/{{project}}/global/networks/{{network}}`
	Network pulumi.StringInput
	// The ID of the project in which the resource belongs.
	// If it is not provided, the provider project is used.
	Project pulumi.StringPtrInput
	// Specifies the replica zone for regional Flex pools. `zone` and `replicaZone` values can be swapped to initiate a
	// [zone switch](https://cloud.google.com/netapp/volumes/docs/configure-and-use/storage-pools/edit-or-delete-storage-pool#switch_active_and_replica_zones).
	ReplicaZone pulumi.StringPtrInput
	// Service level of the storage pool.
	// Possible values are: `PREMIUM`, `EXTREME`, `STANDARD`, `FLEX`.
	ServiceLevel pulumi.StringInput
	// Specifies the active zone for regional Flex pools. `zone` and `replicaZone` values can be swapped to initiate a
	// [zone switch](https://cloud.google.com/netapp/volumes/docs/configure-and-use/storage-pools/edit-or-delete-storage-pool#switch_active_and_replica_zones).
	// If you want to create a zonal Flex pool, specify a zone name for `location` and omit `zone`.
	Zone pulumi.StringPtrInput
}

The set of arguments for constructing a StoragePool resource.

func (StoragePoolArgs) ElementType

func (StoragePoolArgs) ElementType() reflect.Type

type StoragePoolArray

type StoragePoolArray []StoragePoolInput

func (StoragePoolArray) ElementType

func (StoragePoolArray) ElementType() reflect.Type

func (StoragePoolArray) ToStoragePoolArrayOutput

func (i StoragePoolArray) ToStoragePoolArrayOutput() StoragePoolArrayOutput

func (StoragePoolArray) ToStoragePoolArrayOutputWithContext

func (i StoragePoolArray) ToStoragePoolArrayOutputWithContext(ctx context.Context) StoragePoolArrayOutput

type StoragePoolArrayInput

type StoragePoolArrayInput interface {
	pulumi.Input

	ToStoragePoolArrayOutput() StoragePoolArrayOutput
	ToStoragePoolArrayOutputWithContext(context.Context) StoragePoolArrayOutput
}

StoragePoolArrayInput is an input type that accepts StoragePoolArray and StoragePoolArrayOutput values. You can construct a concrete instance of `StoragePoolArrayInput` via:

StoragePoolArray{ StoragePoolArgs{...} }

type StoragePoolArrayOutput

type StoragePoolArrayOutput struct{ *pulumi.OutputState }

func (StoragePoolArrayOutput) ElementType

func (StoragePoolArrayOutput) ElementType() reflect.Type

func (StoragePoolArrayOutput) Index

func (StoragePoolArrayOutput) ToStoragePoolArrayOutput

func (o StoragePoolArrayOutput) ToStoragePoolArrayOutput() StoragePoolArrayOutput

func (StoragePoolArrayOutput) ToStoragePoolArrayOutputWithContext

func (o StoragePoolArrayOutput) ToStoragePoolArrayOutputWithContext(ctx context.Context) StoragePoolArrayOutput

type StoragePoolInput

type StoragePoolInput interface {
	pulumi.Input

	ToStoragePoolOutput() StoragePoolOutput
	ToStoragePoolOutputWithContext(ctx context.Context) StoragePoolOutput
}

type StoragePoolMap

type StoragePoolMap map[string]StoragePoolInput

func (StoragePoolMap) ElementType

func (StoragePoolMap) ElementType() reflect.Type

func (StoragePoolMap) ToStoragePoolMapOutput

func (i StoragePoolMap) ToStoragePoolMapOutput() StoragePoolMapOutput

func (StoragePoolMap) ToStoragePoolMapOutputWithContext

func (i StoragePoolMap) ToStoragePoolMapOutputWithContext(ctx context.Context) StoragePoolMapOutput

type StoragePoolMapInput

type StoragePoolMapInput interface {
	pulumi.Input

	ToStoragePoolMapOutput() StoragePoolMapOutput
	ToStoragePoolMapOutputWithContext(context.Context) StoragePoolMapOutput
}

StoragePoolMapInput is an input type that accepts StoragePoolMap and StoragePoolMapOutput values. You can construct a concrete instance of `StoragePoolMapInput` via:

StoragePoolMap{ "key": StoragePoolArgs{...} }

type StoragePoolMapOutput

type StoragePoolMapOutput struct{ *pulumi.OutputState }

func (StoragePoolMapOutput) ElementType

func (StoragePoolMapOutput) ElementType() reflect.Type

func (StoragePoolMapOutput) MapIndex

func (StoragePoolMapOutput) ToStoragePoolMapOutput

func (o StoragePoolMapOutput) ToStoragePoolMapOutput() StoragePoolMapOutput

func (StoragePoolMapOutput) ToStoragePoolMapOutputWithContext

func (o StoragePoolMapOutput) ToStoragePoolMapOutputWithContext(ctx context.Context) StoragePoolMapOutput

type StoragePoolOutput

type StoragePoolOutput struct{ *pulumi.OutputState }

func (StoragePoolOutput) ActiveDirectory

func (o StoragePoolOutput) ActiveDirectory() pulumi.StringPtrOutput

Specifies the Active Directory policy to be used. Format: `projects/{{project}}/locations/{{location}}/activeDirectories/{{name}}`. The policy needs to be in the same location as the storage pool.

func (StoragePoolOutput) AllowAutoTiering added in v8.3.0

func (o StoragePoolOutput) AllowAutoTiering() pulumi.BoolPtrOutput

Optional. True if the storage pool supports Auto Tiering enabled volumes. Default is false. Auto-tiering can be enabled after storage pool creation but it can't be disabled once enabled.

func (StoragePoolOutput) CapacityGib

func (o StoragePoolOutput) CapacityGib() pulumi.StringOutput

Capacity of the storage pool (in GiB).

func (StoragePoolOutput) Description

func (o StoragePoolOutput) Description() pulumi.StringPtrOutput

An optional description of this resource.

func (StoragePoolOutput) EffectiveLabels

func (o StoragePoolOutput) EffectiveLabels() pulumi.StringMapOutput

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

func (StoragePoolOutput) ElementType

func (StoragePoolOutput) ElementType() reflect.Type

func (StoragePoolOutput) EncryptionType

func (o StoragePoolOutput) EncryptionType() pulumi.StringOutput

Reports if volumes in the pool are encrypted using a Google-managed encryption key or CMEK.

func (StoragePoolOutput) KmsConfig

Specifies the CMEK policy to be used for volume encryption. Format: `projects/{{project}}/locations/{{location}}/kmsConfigs/{{name}}`. The policy needs to be in the same location as the storage pool.

func (StoragePoolOutput) Labels

Labels as key value pairs. Example: `{ "owner": "Bob", "department": "finance", "purpose": "testing" }`.

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

func (StoragePoolOutput) LdapEnabled

func (o StoragePoolOutput) LdapEnabled() pulumi.BoolPtrOutput

When enabled, the volumes uses Active Directory as LDAP name service for UID/GID lookups. Required to enable extended group support for NFSv3, using security identifiers for NFSv4.1 or principal names for kerberized NFSv4.1.

func (StoragePoolOutput) Location

func (o StoragePoolOutput) Location() pulumi.StringOutput

Name of the location. For zonal Flex pools specify a zone name, in all other cases a region name.

func (StoragePoolOutput) Name

The resource name of the storage pool. Needs to be unique per location/region.

***

func (StoragePoolOutput) Network

VPC network name with format: `projects/{{project}}/global/networks/{{network}}`

func (StoragePoolOutput) Project

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

func (StoragePoolOutput) PulumiLabels

func (o StoragePoolOutput) PulumiLabels() pulumi.StringMapOutput

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

func (StoragePoolOutput) ReplicaZone

func (o StoragePoolOutput) ReplicaZone() pulumi.StringPtrOutput

Specifies the replica zone for regional Flex pools. `zone` and `replicaZone` values can be swapped to initiate a [zone switch](https://cloud.google.com/netapp/volumes/docs/configure-and-use/storage-pools/edit-or-delete-storage-pool#switch_active_and_replica_zones).

func (StoragePoolOutput) ServiceLevel

func (o StoragePoolOutput) ServiceLevel() pulumi.StringOutput

Service level of the storage pool. Possible values are: `PREMIUM`, `EXTREME`, `STANDARD`, `FLEX`.

func (StoragePoolOutput) ToStoragePoolOutput

func (o StoragePoolOutput) ToStoragePoolOutput() StoragePoolOutput

func (StoragePoolOutput) ToStoragePoolOutputWithContext

func (o StoragePoolOutput) ToStoragePoolOutputWithContext(ctx context.Context) StoragePoolOutput

func (StoragePoolOutput) VolumeCapacityGib

func (o StoragePoolOutput) VolumeCapacityGib() pulumi.StringOutput

Size allocated to volumes in the storage pool (in GiB).

func (StoragePoolOutput) VolumeCount

func (o StoragePoolOutput) VolumeCount() pulumi.IntOutput

Number of volume in the storage pool.

func (StoragePoolOutput) Zone

Specifies the active zone for regional Flex pools. `zone` and `replicaZone` values can be swapped to initiate a [zone switch](https://cloud.google.com/netapp/volumes/docs/configure-and-use/storage-pools/edit-or-delete-storage-pool#switch_active_and_replica_zones). If you want to create a zonal Flex pool, specify a zone name for `location` and omit `zone`.

type StoragePoolState

type StoragePoolState struct {
	// Specifies the Active Directory policy to be used. Format: `projects/{{project}}/locations/{{location}}/activeDirectories/{{name}}`.
	// The policy needs to be in the same location as the storage pool.
	ActiveDirectory pulumi.StringPtrInput
	// Optional. True if the storage pool supports Auto Tiering enabled volumes. Default is false.
	// Auto-tiering can be enabled after storage pool creation but it can't be disabled once enabled.
	AllowAutoTiering pulumi.BoolPtrInput
	// Capacity of the storage pool (in GiB).
	CapacityGib pulumi.StringPtrInput
	// An optional description of this resource.
	Description pulumi.StringPtrInput
	// All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
	EffectiveLabels pulumi.StringMapInput
	// Reports if volumes in the pool are encrypted using a Google-managed encryption key or CMEK.
	EncryptionType pulumi.StringPtrInput
	// Specifies the CMEK policy to be used for volume encryption. Format: `projects/{{project}}/locations/{{location}}/kmsConfigs/{{name}}`.
	// The policy needs to be in the same location as the storage pool.
	KmsConfig pulumi.StringPtrInput
	// Labels as key value pairs. Example: `{ "owner": "Bob", "department": "finance", "purpose": "testing" }`.
	//
	// **Note**: This field is non-authoritative, and will only manage the labels present in your configuration.
	// Please refer to the field `effectiveLabels` for all of the labels present on the resource.
	Labels pulumi.StringMapInput
	// When enabled, the volumes uses Active Directory as LDAP name service for UID/GID lookups. Required to enable extended group support for NFSv3,
	// using security identifiers for NFSv4.1 or principal names for kerberized NFSv4.1.
	LdapEnabled pulumi.BoolPtrInput
	// Name of the location. For zonal Flex pools specify a zone name, in all other cases a region name.
	Location pulumi.StringPtrInput
	// The resource name of the storage pool. Needs to be unique per location/region.
	//
	// ***
	Name pulumi.StringPtrInput
	// VPC network name with format: `projects/{{project}}/global/networks/{{network}}`
	Network pulumi.StringPtrInput
	// The ID of the project in which the resource belongs.
	// If it is not provided, the provider project is used.
	Project pulumi.StringPtrInput
	// The combination of labels configured directly on the resource
	// and default labels configured on the provider.
	PulumiLabels pulumi.StringMapInput
	// Specifies the replica zone for regional Flex pools. `zone` and `replicaZone` values can be swapped to initiate a
	// [zone switch](https://cloud.google.com/netapp/volumes/docs/configure-and-use/storage-pools/edit-or-delete-storage-pool#switch_active_and_replica_zones).
	ReplicaZone pulumi.StringPtrInput
	// Service level of the storage pool.
	// Possible values are: `PREMIUM`, `EXTREME`, `STANDARD`, `FLEX`.
	ServiceLevel pulumi.StringPtrInput
	// Size allocated to volumes in the storage pool (in GiB).
	VolumeCapacityGib pulumi.StringPtrInput
	// Number of volume in the storage pool.
	VolumeCount pulumi.IntPtrInput
	// Specifies the active zone for regional Flex pools. `zone` and `replicaZone` values can be swapped to initiate a
	// [zone switch](https://cloud.google.com/netapp/volumes/docs/configure-and-use/storage-pools/edit-or-delete-storage-pool#switch_active_and_replica_zones).
	// If you want to create a zonal Flex pool, specify a zone name for `location` and omit `zone`.
	Zone pulumi.StringPtrInput
}

func (StoragePoolState) ElementType

func (StoragePoolState) ElementType() reflect.Type

type Volume

type Volume struct {
	pulumi.CustomResourceState

	// Reports the resource name of the Active Directory policy being used. Inherited from storage pool.
	ActiveDirectory pulumi.StringOutput `pulumi:"activeDirectory"`
	// Backup configuration for the volume.
	// Structure is documented below.
	BackupConfig VolumeBackupConfigPtrOutput `pulumi:"backupConfig"`
	// Capacity of the volume (in GiB).
	CapacityGib pulumi.StringOutput `pulumi:"capacityGib"`
	// Output only. Size of the volume cold tier data in GiB.
	ColdTierSizeGib pulumi.StringOutput `pulumi:"coldTierSizeGib"`
	// Create time of the volume. A timestamp in RFC3339 UTC "Zulu" format. Examples: "2023-06-22T09:13:01.617Z".
	CreateTime pulumi.StringOutput `pulumi:"createTime"`
	// Policy to determine if the volume should be deleted forcefully.
	// Volumes may have nested snapshot resources. Deleting such a volume will fail.
	// Setting this parameter to FORCE will delete volumes including nested snapshots.
	// Possible values: DEFAULT, FORCE.
	DeletionPolicy pulumi.StringPtrOutput `pulumi:"deletionPolicy"`
	// An optional description of this resource.
	Description pulumi.StringPtrOutput `pulumi:"description"`
	// All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
	EffectiveLabels pulumi.StringMapOutput `pulumi:"effectiveLabels"`
	// Reports the data-at-rest encryption type of the volume. Inherited from storage pool.
	EncryptionType pulumi.StringOutput `pulumi:"encryptionType"`
	// Export policy of the volume for NFSV3 and/or NFSV4.1 access.
	// Structure is documented below.
	ExportPolicy VolumeExportPolicyPtrOutput `pulumi:"exportPolicy"`
	// Indicates whether the volume is part of a volume replication relationship.
	HasReplication pulumi.BoolOutput `pulumi:"hasReplication"`
	// Flag indicating if the volume is a kerberos volume or not, export policy rules control kerberos security modes (krb5, krb5i, krb5p).
	KerberosEnabled pulumi.BoolPtrOutput `pulumi:"kerberosEnabled"`
	// Reports the CMEK policy resurce name being used for volume encryption. Inherited from storage pool.
	KmsConfig pulumi.StringOutput `pulumi:"kmsConfig"`
	// Labels as key value pairs. Example: `{ "owner": "Bob", "department": "finance", "purpose": "testing" }`.
	//
	// **Note**: This field is non-authoritative, and will only manage the labels present in your configuration.
	// Please refer to the field `effectiveLabels` for all of the labels present on the resource.
	Labels pulumi.StringMapOutput `pulumi:"labels"`
	// Optional. Flag indicating if the volume will be a large capacity volume or a regular volume.
	LargeCapacity pulumi.BoolPtrOutput `pulumi:"largeCapacity"`
	// Flag indicating if the volume is NFS LDAP enabled or not. Inherited from storage pool.
	LdapEnabled pulumi.BoolOutput `pulumi:"ldapEnabled"`
	// Name of the pool location. Usually a region name, expect for some STANDARD service level pools which require a zone name.
	Location pulumi.StringOutput `pulumi:"location"`
	// Reports mount instructions for this volume.
	// Structure is documented below.
	MountOptions VolumeMountOptionArrayOutput `pulumi:"mountOptions"`
	// Optional. Flag indicating if the volume will have an IP address per node for volumes supporting multiple IP endpoints.
	// Only the volume with largeCapacity will be allowed to have multiple endpoints.
	MultipleEndpoints pulumi.BoolPtrOutput `pulumi:"multipleEndpoints"`
	// The name of the volume. Needs to be unique per location.
	//
	// ***
	Name pulumi.StringOutput `pulumi:"name"`
	// VPC network name with format: `projects/{{project}}/global/networks/{{network}}`. Inherited from storage pool.
	Network pulumi.StringOutput `pulumi:"network"`
	// The ID of the project in which the resource belongs.
	// If it is not provided, the provider project is used.
	Project pulumi.StringOutput `pulumi:"project"`
	// The protocol of the volume. Allowed combinations are `['NFSV3']`, `['NFSV4']`, `['SMB']`, `['NFSV3', 'NFSV4']`, `['SMB', 'NFSV3']` and `['SMB', 'NFSV4']`.
	// Each value may be one of: `NFSV3`, `NFSV4`, `SMB`.
	Protocols pulumi.StringArrayOutput `pulumi:"protocols"`
	// Name of the Private Service Access allocated range. Inherited from storage pool.
	PsaRange pulumi.StringOutput `pulumi:"psaRange"`
	// The combination of labels configured directly on the resource
	// and default labels configured on the provider.
	PulumiLabels pulumi.StringMapOutput `pulumi:"pulumiLabels"`
	// Specifies the replica zone for regional volume.
	ReplicaZone pulumi.StringOutput `pulumi:"replicaZone"`
	// Used to create this volume from a snapshot (= cloning) or an backup.
	// Structure is documented below.
	RestoreParameters VolumeRestoreParametersPtrOutput `pulumi:"restoreParameters"`
	// List of actions that are restricted on this volume.
	// Each value may be one of: `DELETE`.
	RestrictedActions pulumi.StringArrayOutput `pulumi:"restrictedActions"`
	// Security Style of the Volume. Use UNIX to use UNIX or NFSV4 ACLs for file permissions.
	// Use NTFS to use NTFS ACLs for file permissions. Can only be set for volumes which use SMB together with NFS as protocol.
	// Possible values are: `NTFS`, `UNIX`.
	SecurityStyle pulumi.StringOutput `pulumi:"securityStyle"`
	// Service level of the volume. Inherited from storage pool. Supported values are : PREMIUM, EXTREME, STANDARD, FLEX.
	ServiceLevel pulumi.StringOutput `pulumi:"serviceLevel"`
	// Share name (SMB) or export path (NFS) of the volume. Needs to be unique per location.
	ShareName pulumi.StringOutput `pulumi:"shareName"`
	// Settings for volumes with SMB access.
	// Each value may be one of: `ENCRYPT_DATA`, `BROWSABLE`, `CHANGE_NOTIFY`, `NON_BROWSABLE`, `OPLOCKS`, `SHOW_SNAPSHOT`, `SHOW_PREVIOUS_VERSIONS`, `ACCESS_BASED_ENUMERATION`, `CONTINUOUSLY_AVAILABLE`.
	SmbSettings pulumi.StringArrayOutput `pulumi:"smbSettings"`
	// If enabled, a NFS volume will contain a read-only .snapshot directory which provides access to each of the volume's snapshots. Will enable "Previous Versions" support for SMB.
	SnapshotDirectory pulumi.BoolPtrOutput `pulumi:"snapshotDirectory"`
	// Snapshot policy defines the schedule for automatic snapshot creation.
	// To disable automatic snapshot creation you have to remove the whole snapshotPolicy block.
	// Structure is documented below.
	SnapshotPolicy VolumeSnapshotPolicyPtrOutput `pulumi:"snapshotPolicy"`
	// State of the volume.
	State pulumi.StringOutput `pulumi:"state"`
	// State details of the volume.
	StateDetails pulumi.StringOutput `pulumi:"stateDetails"`
	// Name of the storage pool to create the volume in. Pool needs enough spare capacity to accommodate the volume.
	StoragePool pulumi.StringOutput `pulumi:"storagePool"`
	// Tiering policy for the volume.
	// Structure is documented below.
	TieringPolicy VolumeTieringPolicyPtrOutput `pulumi:"tieringPolicy"`
	// Unix permission the mount point will be created with. Default is 0770. Applicable for UNIX security style volumes only.
	UnixPermissions pulumi.StringOutput `pulumi:"unixPermissions"`
	// Used capacity of the volume (in GiB). This is computed periodically and it does not represent the realtime usage.
	UsedGib pulumi.StringOutput `pulumi:"usedGib"`
	// Specifies the active zone for regional volume.
	Zone pulumi.StringOutput `pulumi:"zone"`
}

A volume is a file system container in a storage pool that stores application, database, and user data.

You can create a volume's capacity using the available capacity in the storage pool and you can define and resize the capacity without disruption to any processes.

Storage pool settings apply to the volumes contained within them automatically.

To get more information about Volume, see:

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

## Example Usage

### Netapp Volume Basic

```go package main

import (

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

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_default, err := compute.LookupNetwork(ctx, &compute.LookupNetworkArgs{
			Name: "test-network",
		}, nil)
		if err != nil {
			return err
		}
		defaultStoragePool, err := netapp.NewStoragePool(ctx, "default", &netapp.StoragePoolArgs{
			Name:         pulumi.String("test-pool"),
			Location:     pulumi.String("us-west2"),
			ServiceLevel: pulumi.String("PREMIUM"),
			CapacityGib:  pulumi.String("2048"),
			Network:      pulumi.String(_default.Id),
		})
		if err != nil {
			return err
		}
		_, err = netapp.NewVolume(ctx, "test_volume", &netapp.VolumeArgs{
			Location:    pulumi.String("us-west2"),
			Name:        pulumi.String("test-volume"),
			CapacityGib: pulumi.String("100"),
			ShareName:   pulumi.String("test-volume"),
			StoragePool: defaultStoragePool.Name,
			Protocols: pulumi.StringArray{
				pulumi.String("NFSV3"),
			},
			DeletionPolicy: pulumi.String("DEFAULT"),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## Import

Volume can be imported using any of these accepted formats:

* `projects/{{project}}/locations/{{location}}/volumes/{{name}}`

* `{{project}}/{{location}}/{{name}}`

* `{{location}}/{{name}}`

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

```sh $ pulumi import gcp:netapp/volume:Volume default projects/{{project}}/locations/{{location}}/volumes/{{name}} ```

```sh $ pulumi import gcp:netapp/volume:Volume default {{project}}/{{location}}/{{name}} ```

```sh $ pulumi import gcp:netapp/volume:Volume default {{location}}/{{name}} ```

func GetVolume

func GetVolume(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *VolumeState, opts ...pulumi.ResourceOption) (*Volume, error)

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

func NewVolume

func NewVolume(ctx *pulumi.Context,
	name string, args *VolumeArgs, opts ...pulumi.ResourceOption) (*Volume, error)

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

func (*Volume) ElementType

func (*Volume) ElementType() reflect.Type

func (*Volume) ToVolumeOutput

func (i *Volume) ToVolumeOutput() VolumeOutput

func (*Volume) ToVolumeOutputWithContext

func (i *Volume) ToVolumeOutputWithContext(ctx context.Context) VolumeOutput

type VolumeArgs

type VolumeArgs struct {
	// Backup configuration for the volume.
	// Structure is documented below.
	BackupConfig VolumeBackupConfigPtrInput
	// Capacity of the volume (in GiB).
	CapacityGib pulumi.StringInput
	// Policy to determine if the volume should be deleted forcefully.
	// Volumes may have nested snapshot resources. Deleting such a volume will fail.
	// Setting this parameter to FORCE will delete volumes including nested snapshots.
	// Possible values: DEFAULT, FORCE.
	DeletionPolicy pulumi.StringPtrInput
	// An optional description of this resource.
	Description pulumi.StringPtrInput
	// Export policy of the volume for NFSV3 and/or NFSV4.1 access.
	// Structure is documented below.
	ExportPolicy VolumeExportPolicyPtrInput
	// Flag indicating if the volume is a kerberos volume or not, export policy rules control kerberos security modes (krb5, krb5i, krb5p).
	KerberosEnabled pulumi.BoolPtrInput
	// Labels as key value pairs. Example: `{ "owner": "Bob", "department": "finance", "purpose": "testing" }`.
	//
	// **Note**: This field is non-authoritative, and will only manage the labels present in your configuration.
	// Please refer to the field `effectiveLabels` for all of the labels present on the resource.
	Labels pulumi.StringMapInput
	// Optional. Flag indicating if the volume will be a large capacity volume or a regular volume.
	LargeCapacity pulumi.BoolPtrInput
	// Name of the pool location. Usually a region name, expect for some STANDARD service level pools which require a zone name.
	Location pulumi.StringInput
	// Optional. Flag indicating if the volume will have an IP address per node for volumes supporting multiple IP endpoints.
	// Only the volume with largeCapacity will be allowed to have multiple endpoints.
	MultipleEndpoints pulumi.BoolPtrInput
	// The name of the volume. Needs to be unique per location.
	//
	// ***
	Name pulumi.StringPtrInput
	// The ID of the project in which the resource belongs.
	// If it is not provided, the provider project is used.
	Project pulumi.StringPtrInput
	// The protocol of the volume. Allowed combinations are `['NFSV3']`, `['NFSV4']`, `['SMB']`, `['NFSV3', 'NFSV4']`, `['SMB', 'NFSV3']` and `['SMB', 'NFSV4']`.
	// Each value may be one of: `NFSV3`, `NFSV4`, `SMB`.
	Protocols pulumi.StringArrayInput
	// Used to create this volume from a snapshot (= cloning) or an backup.
	// Structure is documented below.
	RestoreParameters VolumeRestoreParametersPtrInput
	// List of actions that are restricted on this volume.
	// Each value may be one of: `DELETE`.
	RestrictedActions pulumi.StringArrayInput
	// Security Style of the Volume. Use UNIX to use UNIX or NFSV4 ACLs for file permissions.
	// Use NTFS to use NTFS ACLs for file permissions. Can only be set for volumes which use SMB together with NFS as protocol.
	// Possible values are: `NTFS`, `UNIX`.
	SecurityStyle pulumi.StringPtrInput
	// Share name (SMB) or export path (NFS) of the volume. Needs to be unique per location.
	ShareName pulumi.StringInput
	// Settings for volumes with SMB access.
	// Each value may be one of: `ENCRYPT_DATA`, `BROWSABLE`, `CHANGE_NOTIFY`, `NON_BROWSABLE`, `OPLOCKS`, `SHOW_SNAPSHOT`, `SHOW_PREVIOUS_VERSIONS`, `ACCESS_BASED_ENUMERATION`, `CONTINUOUSLY_AVAILABLE`.
	SmbSettings pulumi.StringArrayInput
	// If enabled, a NFS volume will contain a read-only .snapshot directory which provides access to each of the volume's snapshots. Will enable "Previous Versions" support for SMB.
	SnapshotDirectory pulumi.BoolPtrInput
	// Snapshot policy defines the schedule for automatic snapshot creation.
	// To disable automatic snapshot creation you have to remove the whole snapshotPolicy block.
	// Structure is documented below.
	SnapshotPolicy VolumeSnapshotPolicyPtrInput
	// Name of the storage pool to create the volume in. Pool needs enough spare capacity to accommodate the volume.
	StoragePool pulumi.StringInput
	// Tiering policy for the volume.
	// Structure is documented below.
	TieringPolicy VolumeTieringPolicyPtrInput
	// Unix permission the mount point will be created with. Default is 0770. Applicable for UNIX security style volumes only.
	UnixPermissions pulumi.StringPtrInput
}

The set of arguments for constructing a Volume resource.

func (VolumeArgs) ElementType

func (VolumeArgs) ElementType() reflect.Type

type VolumeArray

type VolumeArray []VolumeInput

func (VolumeArray) ElementType

func (VolumeArray) ElementType() reflect.Type

func (VolumeArray) ToVolumeArrayOutput

func (i VolumeArray) ToVolumeArrayOutput() VolumeArrayOutput

func (VolumeArray) ToVolumeArrayOutputWithContext

func (i VolumeArray) ToVolumeArrayOutputWithContext(ctx context.Context) VolumeArrayOutput

type VolumeArrayInput

type VolumeArrayInput interface {
	pulumi.Input

	ToVolumeArrayOutput() VolumeArrayOutput
	ToVolumeArrayOutputWithContext(context.Context) VolumeArrayOutput
}

VolumeArrayInput is an input type that accepts VolumeArray and VolumeArrayOutput values. You can construct a concrete instance of `VolumeArrayInput` via:

VolumeArray{ VolumeArgs{...} }

type VolumeArrayOutput

type VolumeArrayOutput struct{ *pulumi.OutputState }

func (VolumeArrayOutput) ElementType

func (VolumeArrayOutput) ElementType() reflect.Type

func (VolumeArrayOutput) Index

func (VolumeArrayOutput) ToVolumeArrayOutput

func (o VolumeArrayOutput) ToVolumeArrayOutput() VolumeArrayOutput

func (VolumeArrayOutput) ToVolumeArrayOutputWithContext

func (o VolumeArrayOutput) ToVolumeArrayOutputWithContext(ctx context.Context) VolumeArrayOutput

type VolumeBackupConfig

type VolumeBackupConfig struct {
	// Specify a single backup policy ID for scheduled backups. Format: `projects/{{projectId}}/locations/{{location}}/backupPolicies/{{backupPolicyName}}`
	BackupPolicies []string `pulumi:"backupPolicies"`
	// ID of the backup vault to use. A backup vault is reqired to create manual or scheduled backups.
	// Format: `projects/{{projectId}}/locations/{{location}}/backupVaults/{{backupVaultName}}`
	BackupVault *string `pulumi:"backupVault"`
	// When set to true, scheduled backup is enabled on the volume. Omit if no backupPolicy is specified.
	ScheduledBackupEnabled *bool `pulumi:"scheduledBackupEnabled"`
}

type VolumeBackupConfigArgs

type VolumeBackupConfigArgs struct {
	// Specify a single backup policy ID for scheduled backups. Format: `projects/{{projectId}}/locations/{{location}}/backupPolicies/{{backupPolicyName}}`
	BackupPolicies pulumi.StringArrayInput `pulumi:"backupPolicies"`
	// ID of the backup vault to use. A backup vault is reqired to create manual or scheduled backups.
	// Format: `projects/{{projectId}}/locations/{{location}}/backupVaults/{{backupVaultName}}`
	BackupVault pulumi.StringPtrInput `pulumi:"backupVault"`
	// When set to true, scheduled backup is enabled on the volume. Omit if no backupPolicy is specified.
	ScheduledBackupEnabled pulumi.BoolPtrInput `pulumi:"scheduledBackupEnabled"`
}

func (VolumeBackupConfigArgs) ElementType

func (VolumeBackupConfigArgs) ElementType() reflect.Type

func (VolumeBackupConfigArgs) ToVolumeBackupConfigOutput

func (i VolumeBackupConfigArgs) ToVolumeBackupConfigOutput() VolumeBackupConfigOutput

func (VolumeBackupConfigArgs) ToVolumeBackupConfigOutputWithContext

func (i VolumeBackupConfigArgs) ToVolumeBackupConfigOutputWithContext(ctx context.Context) VolumeBackupConfigOutput

func (VolumeBackupConfigArgs) ToVolumeBackupConfigPtrOutput

func (i VolumeBackupConfigArgs) ToVolumeBackupConfigPtrOutput() VolumeBackupConfigPtrOutput

func (VolumeBackupConfigArgs) ToVolumeBackupConfigPtrOutputWithContext

func (i VolumeBackupConfigArgs) ToVolumeBackupConfigPtrOutputWithContext(ctx context.Context) VolumeBackupConfigPtrOutput

type VolumeBackupConfigInput

type VolumeBackupConfigInput interface {
	pulumi.Input

	ToVolumeBackupConfigOutput() VolumeBackupConfigOutput
	ToVolumeBackupConfigOutputWithContext(context.Context) VolumeBackupConfigOutput
}

VolumeBackupConfigInput is an input type that accepts VolumeBackupConfigArgs and VolumeBackupConfigOutput values. You can construct a concrete instance of `VolumeBackupConfigInput` via:

VolumeBackupConfigArgs{...}

type VolumeBackupConfigOutput

type VolumeBackupConfigOutput struct{ *pulumi.OutputState }

func (VolumeBackupConfigOutput) BackupPolicies

Specify a single backup policy ID for scheduled backups. Format: `projects/{{projectId}}/locations/{{location}}/backupPolicies/{{backupPolicyName}}`

func (VolumeBackupConfigOutput) BackupVault

ID of the backup vault to use. A backup vault is reqired to create manual or scheduled backups. Format: `projects/{{projectId}}/locations/{{location}}/backupVaults/{{backupVaultName}}`

func (VolumeBackupConfigOutput) ElementType

func (VolumeBackupConfigOutput) ElementType() reflect.Type

func (VolumeBackupConfigOutput) ScheduledBackupEnabled

func (o VolumeBackupConfigOutput) ScheduledBackupEnabled() pulumi.BoolPtrOutput

When set to true, scheduled backup is enabled on the volume. Omit if no backupPolicy is specified.

func (VolumeBackupConfigOutput) ToVolumeBackupConfigOutput

func (o VolumeBackupConfigOutput) ToVolumeBackupConfigOutput() VolumeBackupConfigOutput

func (VolumeBackupConfigOutput) ToVolumeBackupConfigOutputWithContext

func (o VolumeBackupConfigOutput) ToVolumeBackupConfigOutputWithContext(ctx context.Context) VolumeBackupConfigOutput

func (VolumeBackupConfigOutput) ToVolumeBackupConfigPtrOutput

func (o VolumeBackupConfigOutput) ToVolumeBackupConfigPtrOutput() VolumeBackupConfigPtrOutput

func (VolumeBackupConfigOutput) ToVolumeBackupConfigPtrOutputWithContext

func (o VolumeBackupConfigOutput) ToVolumeBackupConfigPtrOutputWithContext(ctx context.Context) VolumeBackupConfigPtrOutput

type VolumeBackupConfigPtrInput

type VolumeBackupConfigPtrInput interface {
	pulumi.Input

	ToVolumeBackupConfigPtrOutput() VolumeBackupConfigPtrOutput
	ToVolumeBackupConfigPtrOutputWithContext(context.Context) VolumeBackupConfigPtrOutput
}

VolumeBackupConfigPtrInput is an input type that accepts VolumeBackupConfigArgs, VolumeBackupConfigPtr and VolumeBackupConfigPtrOutput values. You can construct a concrete instance of `VolumeBackupConfigPtrInput` via:

        VolumeBackupConfigArgs{...}

or:

        nil

type VolumeBackupConfigPtrOutput

type VolumeBackupConfigPtrOutput struct{ *pulumi.OutputState }

func (VolumeBackupConfigPtrOutput) BackupPolicies

Specify a single backup policy ID for scheduled backups. Format: `projects/{{projectId}}/locations/{{location}}/backupPolicies/{{backupPolicyName}}`

func (VolumeBackupConfigPtrOutput) BackupVault

ID of the backup vault to use. A backup vault is reqired to create manual or scheduled backups. Format: `projects/{{projectId}}/locations/{{location}}/backupVaults/{{backupVaultName}}`

func (VolumeBackupConfigPtrOutput) Elem

func (VolumeBackupConfigPtrOutput) ElementType

func (VolumeBackupConfigPtrOutput) ScheduledBackupEnabled

func (o VolumeBackupConfigPtrOutput) ScheduledBackupEnabled() pulumi.BoolPtrOutput

When set to true, scheduled backup is enabled on the volume. Omit if no backupPolicy is specified.

func (VolumeBackupConfigPtrOutput) ToVolumeBackupConfigPtrOutput

func (o VolumeBackupConfigPtrOutput) ToVolumeBackupConfigPtrOutput() VolumeBackupConfigPtrOutput

func (VolumeBackupConfigPtrOutput) ToVolumeBackupConfigPtrOutputWithContext

func (o VolumeBackupConfigPtrOutput) ToVolumeBackupConfigPtrOutputWithContext(ctx context.Context) VolumeBackupConfigPtrOutput

type VolumeExportPolicy

type VolumeExportPolicy struct {
	// Export rules (up to 5) control NFS volume access.
	// Structure is documented below.
	Rules []VolumeExportPolicyRule `pulumi:"rules"`
}

type VolumeExportPolicyArgs

type VolumeExportPolicyArgs struct {
	// Export rules (up to 5) control NFS volume access.
	// Structure is documented below.
	Rules VolumeExportPolicyRuleArrayInput `pulumi:"rules"`
}

func (VolumeExportPolicyArgs) ElementType

func (VolumeExportPolicyArgs) ElementType() reflect.Type

func (VolumeExportPolicyArgs) ToVolumeExportPolicyOutput

func (i VolumeExportPolicyArgs) ToVolumeExportPolicyOutput() VolumeExportPolicyOutput

func (VolumeExportPolicyArgs) ToVolumeExportPolicyOutputWithContext

func (i VolumeExportPolicyArgs) ToVolumeExportPolicyOutputWithContext(ctx context.Context) VolumeExportPolicyOutput

func (VolumeExportPolicyArgs) ToVolumeExportPolicyPtrOutput

func (i VolumeExportPolicyArgs) ToVolumeExportPolicyPtrOutput() VolumeExportPolicyPtrOutput

func (VolumeExportPolicyArgs) ToVolumeExportPolicyPtrOutputWithContext

func (i VolumeExportPolicyArgs) ToVolumeExportPolicyPtrOutputWithContext(ctx context.Context) VolumeExportPolicyPtrOutput

type VolumeExportPolicyInput

type VolumeExportPolicyInput interface {
	pulumi.Input

	ToVolumeExportPolicyOutput() VolumeExportPolicyOutput
	ToVolumeExportPolicyOutputWithContext(context.Context) VolumeExportPolicyOutput
}

VolumeExportPolicyInput is an input type that accepts VolumeExportPolicyArgs and VolumeExportPolicyOutput values. You can construct a concrete instance of `VolumeExportPolicyInput` via:

VolumeExportPolicyArgs{...}

type VolumeExportPolicyOutput

type VolumeExportPolicyOutput struct{ *pulumi.OutputState }

func (VolumeExportPolicyOutput) ElementType

func (VolumeExportPolicyOutput) ElementType() reflect.Type

func (VolumeExportPolicyOutput) Rules

Export rules (up to 5) control NFS volume access. Structure is documented below.

func (VolumeExportPolicyOutput) ToVolumeExportPolicyOutput

func (o VolumeExportPolicyOutput) ToVolumeExportPolicyOutput() VolumeExportPolicyOutput

func (VolumeExportPolicyOutput) ToVolumeExportPolicyOutputWithContext

func (o VolumeExportPolicyOutput) ToVolumeExportPolicyOutputWithContext(ctx context.Context) VolumeExportPolicyOutput

func (VolumeExportPolicyOutput) ToVolumeExportPolicyPtrOutput

func (o VolumeExportPolicyOutput) ToVolumeExportPolicyPtrOutput() VolumeExportPolicyPtrOutput

func (VolumeExportPolicyOutput) ToVolumeExportPolicyPtrOutputWithContext

func (o VolumeExportPolicyOutput) ToVolumeExportPolicyPtrOutputWithContext(ctx context.Context) VolumeExportPolicyPtrOutput

type VolumeExportPolicyPtrInput

type VolumeExportPolicyPtrInput interface {
	pulumi.Input

	ToVolumeExportPolicyPtrOutput() VolumeExportPolicyPtrOutput
	ToVolumeExportPolicyPtrOutputWithContext(context.Context) VolumeExportPolicyPtrOutput
}

VolumeExportPolicyPtrInput is an input type that accepts VolumeExportPolicyArgs, VolumeExportPolicyPtr and VolumeExportPolicyPtrOutput values. You can construct a concrete instance of `VolumeExportPolicyPtrInput` via:

        VolumeExportPolicyArgs{...}

or:

        nil

type VolumeExportPolicyPtrOutput

type VolumeExportPolicyPtrOutput struct{ *pulumi.OutputState }

func (VolumeExportPolicyPtrOutput) Elem

func (VolumeExportPolicyPtrOutput) ElementType

func (VolumeExportPolicyPtrOutput) Rules

Export rules (up to 5) control NFS volume access. Structure is documented below.

func (VolumeExportPolicyPtrOutput) ToVolumeExportPolicyPtrOutput

func (o VolumeExportPolicyPtrOutput) ToVolumeExportPolicyPtrOutput() VolumeExportPolicyPtrOutput

func (VolumeExportPolicyPtrOutput) ToVolumeExportPolicyPtrOutputWithContext

func (o VolumeExportPolicyPtrOutput) ToVolumeExportPolicyPtrOutputWithContext(ctx context.Context) VolumeExportPolicyPtrOutput

type VolumeExportPolicyRule

type VolumeExportPolicyRule struct {
	// Defines the access type for clients matching the `allowedClients` specification.
	// Possible values are: `READ_ONLY`, `READ_WRITE`, `READ_NONE`.
	AccessType *string `pulumi:"accessType"`
	// Defines the client ingress specification (allowed clients) as a comma separated list with IPv4 CIDRs or IPv4 host addresses.
	AllowedClients *string `pulumi:"allowedClients"`
	// If enabled, the root user (UID = 0) of the specified clients doesn't get mapped to nobody (UID = 65534). This is also known as no_root_squash.
	HasRootAccess *string `pulumi:"hasRootAccess"`
	// If enabled (true) the rule defines a read only access for clients matching the 'allowedClients' specification. It enables nfs clients to mount using 'authentication' kerberos security mode.
	Kerberos5ReadOnly *bool `pulumi:"kerberos5ReadOnly"`
	// If enabled (true) the rule defines read and write access for clients matching the 'allowedClients' specification. It enables nfs clients to mount using 'authentication' kerberos security mode. The 'kerberos5ReadOnly' value is ignored if this is enabled.
	Kerberos5ReadWrite *bool `pulumi:"kerberos5ReadWrite"`
	// If enabled (true) the rule defines a read only access for clients matching the 'allowedClients' specification. It enables nfs clients to mount using 'integrity' kerberos security mode.
	Kerberos5iReadOnly *bool `pulumi:"kerberos5iReadOnly"`
	// If enabled (true) the rule defines read and write access for clients matching the 'allowedClients' specification. It enables nfs clients to mount using 'integrity' kerberos security mode. The 'kerberos5iReadOnly' value is ignored if this is enabled.
	Kerberos5iReadWrite *bool `pulumi:"kerberos5iReadWrite"`
	// If enabled (true) the rule defines a read only access for clients matching the 'allowedClients' specification. It enables nfs clients to mount using 'privacy' kerberos security mode.
	Kerberos5pReadOnly *bool `pulumi:"kerberos5pReadOnly"`
	// If enabled (true) the rule defines read and write access for clients matching the 'allowedClients' specification. It enables nfs clients to mount using 'privacy' kerberos security mode. The 'kerberos5pReadOnly' value is ignored if this is enabled.
	Kerberos5pReadWrite *bool `pulumi:"kerberos5pReadWrite"`
	// Enable to apply the export rule to NFSV3 clients.
	Nfsv3 *bool `pulumi:"nfsv3"`
	// Enable to apply the export rule to NFSV4.1 clients.
	Nfsv4 *bool `pulumi:"nfsv4"`
}

type VolumeExportPolicyRuleArgs

type VolumeExportPolicyRuleArgs struct {
	// Defines the access type for clients matching the `allowedClients` specification.
	// Possible values are: `READ_ONLY`, `READ_WRITE`, `READ_NONE`.
	AccessType pulumi.StringPtrInput `pulumi:"accessType"`
	// Defines the client ingress specification (allowed clients) as a comma separated list with IPv4 CIDRs or IPv4 host addresses.
	AllowedClients pulumi.StringPtrInput `pulumi:"allowedClients"`
	// If enabled, the root user (UID = 0) of the specified clients doesn't get mapped to nobody (UID = 65534). This is also known as no_root_squash.
	HasRootAccess pulumi.StringPtrInput `pulumi:"hasRootAccess"`
	// If enabled (true) the rule defines a read only access for clients matching the 'allowedClients' specification. It enables nfs clients to mount using 'authentication' kerberos security mode.
	Kerberos5ReadOnly pulumi.BoolPtrInput `pulumi:"kerberos5ReadOnly"`
	// If enabled (true) the rule defines read and write access for clients matching the 'allowedClients' specification. It enables nfs clients to mount using 'authentication' kerberos security mode. The 'kerberos5ReadOnly' value is ignored if this is enabled.
	Kerberos5ReadWrite pulumi.BoolPtrInput `pulumi:"kerberos5ReadWrite"`
	// If enabled (true) the rule defines a read only access for clients matching the 'allowedClients' specification. It enables nfs clients to mount using 'integrity' kerberos security mode.
	Kerberos5iReadOnly pulumi.BoolPtrInput `pulumi:"kerberos5iReadOnly"`
	// If enabled (true) the rule defines read and write access for clients matching the 'allowedClients' specification. It enables nfs clients to mount using 'integrity' kerberos security mode. The 'kerberos5iReadOnly' value is ignored if this is enabled.
	Kerberos5iReadWrite pulumi.BoolPtrInput `pulumi:"kerberos5iReadWrite"`
	// If enabled (true) the rule defines a read only access for clients matching the 'allowedClients' specification. It enables nfs clients to mount using 'privacy' kerberos security mode.
	Kerberos5pReadOnly pulumi.BoolPtrInput `pulumi:"kerberos5pReadOnly"`
	// If enabled (true) the rule defines read and write access for clients matching the 'allowedClients' specification. It enables nfs clients to mount using 'privacy' kerberos security mode. The 'kerberos5pReadOnly' value is ignored if this is enabled.
	Kerberos5pReadWrite pulumi.BoolPtrInput `pulumi:"kerberos5pReadWrite"`
	// Enable to apply the export rule to NFSV3 clients.
	Nfsv3 pulumi.BoolPtrInput `pulumi:"nfsv3"`
	// Enable to apply the export rule to NFSV4.1 clients.
	Nfsv4 pulumi.BoolPtrInput `pulumi:"nfsv4"`
}

func (VolumeExportPolicyRuleArgs) ElementType

func (VolumeExportPolicyRuleArgs) ElementType() reflect.Type

func (VolumeExportPolicyRuleArgs) ToVolumeExportPolicyRuleOutput

func (i VolumeExportPolicyRuleArgs) ToVolumeExportPolicyRuleOutput() VolumeExportPolicyRuleOutput

func (VolumeExportPolicyRuleArgs) ToVolumeExportPolicyRuleOutputWithContext

func (i VolumeExportPolicyRuleArgs) ToVolumeExportPolicyRuleOutputWithContext(ctx context.Context) VolumeExportPolicyRuleOutput

type VolumeExportPolicyRuleArray

type VolumeExportPolicyRuleArray []VolumeExportPolicyRuleInput

func (VolumeExportPolicyRuleArray) ElementType

func (VolumeExportPolicyRuleArray) ToVolumeExportPolicyRuleArrayOutput

func (i VolumeExportPolicyRuleArray) ToVolumeExportPolicyRuleArrayOutput() VolumeExportPolicyRuleArrayOutput

func (VolumeExportPolicyRuleArray) ToVolumeExportPolicyRuleArrayOutputWithContext

func (i VolumeExportPolicyRuleArray) ToVolumeExportPolicyRuleArrayOutputWithContext(ctx context.Context) VolumeExportPolicyRuleArrayOutput

type VolumeExportPolicyRuleArrayInput

type VolumeExportPolicyRuleArrayInput interface {
	pulumi.Input

	ToVolumeExportPolicyRuleArrayOutput() VolumeExportPolicyRuleArrayOutput
	ToVolumeExportPolicyRuleArrayOutputWithContext(context.Context) VolumeExportPolicyRuleArrayOutput
}

VolumeExportPolicyRuleArrayInput is an input type that accepts VolumeExportPolicyRuleArray and VolumeExportPolicyRuleArrayOutput values. You can construct a concrete instance of `VolumeExportPolicyRuleArrayInput` via:

VolumeExportPolicyRuleArray{ VolumeExportPolicyRuleArgs{...} }

type VolumeExportPolicyRuleArrayOutput

type VolumeExportPolicyRuleArrayOutput struct{ *pulumi.OutputState }

func (VolumeExportPolicyRuleArrayOutput) ElementType

func (VolumeExportPolicyRuleArrayOutput) Index

func (VolumeExportPolicyRuleArrayOutput) ToVolumeExportPolicyRuleArrayOutput

func (o VolumeExportPolicyRuleArrayOutput) ToVolumeExportPolicyRuleArrayOutput() VolumeExportPolicyRuleArrayOutput

func (VolumeExportPolicyRuleArrayOutput) ToVolumeExportPolicyRuleArrayOutputWithContext

func (o VolumeExportPolicyRuleArrayOutput) ToVolumeExportPolicyRuleArrayOutputWithContext(ctx context.Context) VolumeExportPolicyRuleArrayOutput

type VolumeExportPolicyRuleInput

type VolumeExportPolicyRuleInput interface {
	pulumi.Input

	ToVolumeExportPolicyRuleOutput() VolumeExportPolicyRuleOutput
	ToVolumeExportPolicyRuleOutputWithContext(context.Context) VolumeExportPolicyRuleOutput
}

VolumeExportPolicyRuleInput is an input type that accepts VolumeExportPolicyRuleArgs and VolumeExportPolicyRuleOutput values. You can construct a concrete instance of `VolumeExportPolicyRuleInput` via:

VolumeExportPolicyRuleArgs{...}

type VolumeExportPolicyRuleOutput

type VolumeExportPolicyRuleOutput struct{ *pulumi.OutputState }

func (VolumeExportPolicyRuleOutput) AccessType

Defines the access type for clients matching the `allowedClients` specification. Possible values are: `READ_ONLY`, `READ_WRITE`, `READ_NONE`.

func (VolumeExportPolicyRuleOutput) AllowedClients

Defines the client ingress specification (allowed clients) as a comma separated list with IPv4 CIDRs or IPv4 host addresses.

func (VolumeExportPolicyRuleOutput) ElementType

func (VolumeExportPolicyRuleOutput) HasRootAccess

If enabled, the root user (UID = 0) of the specified clients doesn't get mapped to nobody (UID = 65534). This is also known as no_root_squash.

func (VolumeExportPolicyRuleOutput) Kerberos5ReadOnly

func (o VolumeExportPolicyRuleOutput) Kerberos5ReadOnly() pulumi.BoolPtrOutput

If enabled (true) the rule defines a read only access for clients matching the 'allowedClients' specification. It enables nfs clients to mount using 'authentication' kerberos security mode.

func (VolumeExportPolicyRuleOutput) Kerberos5ReadWrite

func (o VolumeExportPolicyRuleOutput) Kerberos5ReadWrite() pulumi.BoolPtrOutput

If enabled (true) the rule defines read and write access for clients matching the 'allowedClients' specification. It enables nfs clients to mount using 'authentication' kerberos security mode. The 'kerberos5ReadOnly' value is ignored if this is enabled.

func (VolumeExportPolicyRuleOutput) Kerberos5iReadOnly

func (o VolumeExportPolicyRuleOutput) Kerberos5iReadOnly() pulumi.BoolPtrOutput

If enabled (true) the rule defines a read only access for clients matching the 'allowedClients' specification. It enables nfs clients to mount using 'integrity' kerberos security mode.

func (VolumeExportPolicyRuleOutput) Kerberos5iReadWrite

func (o VolumeExportPolicyRuleOutput) Kerberos5iReadWrite() pulumi.BoolPtrOutput

If enabled (true) the rule defines read and write access for clients matching the 'allowedClients' specification. It enables nfs clients to mount using 'integrity' kerberos security mode. The 'kerberos5iReadOnly' value is ignored if this is enabled.

func (VolumeExportPolicyRuleOutput) Kerberos5pReadOnly

func (o VolumeExportPolicyRuleOutput) Kerberos5pReadOnly() pulumi.BoolPtrOutput

If enabled (true) the rule defines a read only access for clients matching the 'allowedClients' specification. It enables nfs clients to mount using 'privacy' kerberos security mode.

func (VolumeExportPolicyRuleOutput) Kerberos5pReadWrite

func (o VolumeExportPolicyRuleOutput) Kerberos5pReadWrite() pulumi.BoolPtrOutput

If enabled (true) the rule defines read and write access for clients matching the 'allowedClients' specification. It enables nfs clients to mount using 'privacy' kerberos security mode. The 'kerberos5pReadOnly' value is ignored if this is enabled.

func (VolumeExportPolicyRuleOutput) Nfsv3

Enable to apply the export rule to NFSV3 clients.

func (VolumeExportPolicyRuleOutput) Nfsv4

Enable to apply the export rule to NFSV4.1 clients.

func (VolumeExportPolicyRuleOutput) ToVolumeExportPolicyRuleOutput

func (o VolumeExportPolicyRuleOutput) ToVolumeExportPolicyRuleOutput() VolumeExportPolicyRuleOutput

func (VolumeExportPolicyRuleOutput) ToVolumeExportPolicyRuleOutputWithContext

func (o VolumeExportPolicyRuleOutput) ToVolumeExportPolicyRuleOutputWithContext(ctx context.Context) VolumeExportPolicyRuleOutput

type VolumeInput

type VolumeInput interface {
	pulumi.Input

	ToVolumeOutput() VolumeOutput
	ToVolumeOutputWithContext(ctx context.Context) VolumeOutput
}

type VolumeMap

type VolumeMap map[string]VolumeInput

func (VolumeMap) ElementType

func (VolumeMap) ElementType() reflect.Type

func (VolumeMap) ToVolumeMapOutput

func (i VolumeMap) ToVolumeMapOutput() VolumeMapOutput

func (VolumeMap) ToVolumeMapOutputWithContext

func (i VolumeMap) ToVolumeMapOutputWithContext(ctx context.Context) VolumeMapOutput

type VolumeMapInput

type VolumeMapInput interface {
	pulumi.Input

	ToVolumeMapOutput() VolumeMapOutput
	ToVolumeMapOutputWithContext(context.Context) VolumeMapOutput
}

VolumeMapInput is an input type that accepts VolumeMap and VolumeMapOutput values. You can construct a concrete instance of `VolumeMapInput` via:

VolumeMap{ "key": VolumeArgs{...} }

type VolumeMapOutput

type VolumeMapOutput struct{ *pulumi.OutputState }

func (VolumeMapOutput) ElementType

func (VolumeMapOutput) ElementType() reflect.Type

func (VolumeMapOutput) MapIndex

func (VolumeMapOutput) ToVolumeMapOutput

func (o VolumeMapOutput) ToVolumeMapOutput() VolumeMapOutput

func (VolumeMapOutput) ToVolumeMapOutputWithContext

func (o VolumeMapOutput) ToVolumeMapOutputWithContext(ctx context.Context) VolumeMapOutput

type VolumeMountOption

type VolumeMountOption struct {
	// (Output)
	// Export path of the volume.
	Export *string `pulumi:"export"`
	// (Output)
	// Full export path of the volume.
	// Format for NFS volumes: `<export_ip>:/<shareName>`
	// Format for SMB volumes: `\\\\netbios_prefix-four_random_hex_letters.domain_name\\shareName`
	ExportFull *string `pulumi:"exportFull"`
	// (Output)
	// Human-readable mount instructions.
	Instructions *string `pulumi:"instructions"`
	// (Output)
	// Protocol to mount with.
	Protocol *string `pulumi:"protocol"`
}

type VolumeMountOptionArgs

type VolumeMountOptionArgs struct {
	// (Output)
	// Export path of the volume.
	Export pulumi.StringPtrInput `pulumi:"export"`
	// (Output)
	// Full export path of the volume.
	// Format for NFS volumes: `<export_ip>:/<shareName>`
	// Format for SMB volumes: `\\\\netbios_prefix-four_random_hex_letters.domain_name\\shareName`
	ExportFull pulumi.StringPtrInput `pulumi:"exportFull"`
	// (Output)
	// Human-readable mount instructions.
	Instructions pulumi.StringPtrInput `pulumi:"instructions"`
	// (Output)
	// Protocol to mount with.
	Protocol pulumi.StringPtrInput `pulumi:"protocol"`
}

func (VolumeMountOptionArgs) ElementType

func (VolumeMountOptionArgs) ElementType() reflect.Type

func (VolumeMountOptionArgs) ToVolumeMountOptionOutput

func (i VolumeMountOptionArgs) ToVolumeMountOptionOutput() VolumeMountOptionOutput

func (VolumeMountOptionArgs) ToVolumeMountOptionOutputWithContext

func (i VolumeMountOptionArgs) ToVolumeMountOptionOutputWithContext(ctx context.Context) VolumeMountOptionOutput

type VolumeMountOptionArray

type VolumeMountOptionArray []VolumeMountOptionInput

func (VolumeMountOptionArray) ElementType

func (VolumeMountOptionArray) ElementType() reflect.Type

func (VolumeMountOptionArray) ToVolumeMountOptionArrayOutput

func (i VolumeMountOptionArray) ToVolumeMountOptionArrayOutput() VolumeMountOptionArrayOutput

func (VolumeMountOptionArray) ToVolumeMountOptionArrayOutputWithContext

func (i VolumeMountOptionArray) ToVolumeMountOptionArrayOutputWithContext(ctx context.Context) VolumeMountOptionArrayOutput

type VolumeMountOptionArrayInput

type VolumeMountOptionArrayInput interface {
	pulumi.Input

	ToVolumeMountOptionArrayOutput() VolumeMountOptionArrayOutput
	ToVolumeMountOptionArrayOutputWithContext(context.Context) VolumeMountOptionArrayOutput
}

VolumeMountOptionArrayInput is an input type that accepts VolumeMountOptionArray and VolumeMountOptionArrayOutput values. You can construct a concrete instance of `VolumeMountOptionArrayInput` via:

VolumeMountOptionArray{ VolumeMountOptionArgs{...} }

type VolumeMountOptionArrayOutput

type VolumeMountOptionArrayOutput struct{ *pulumi.OutputState }

func (VolumeMountOptionArrayOutput) ElementType

func (VolumeMountOptionArrayOutput) Index

func (VolumeMountOptionArrayOutput) ToVolumeMountOptionArrayOutput

func (o VolumeMountOptionArrayOutput) ToVolumeMountOptionArrayOutput() VolumeMountOptionArrayOutput

func (VolumeMountOptionArrayOutput) ToVolumeMountOptionArrayOutputWithContext

func (o VolumeMountOptionArrayOutput) ToVolumeMountOptionArrayOutputWithContext(ctx context.Context) VolumeMountOptionArrayOutput

type VolumeMountOptionInput

type VolumeMountOptionInput interface {
	pulumi.Input

	ToVolumeMountOptionOutput() VolumeMountOptionOutput
	ToVolumeMountOptionOutputWithContext(context.Context) VolumeMountOptionOutput
}

VolumeMountOptionInput is an input type that accepts VolumeMountOptionArgs and VolumeMountOptionOutput values. You can construct a concrete instance of `VolumeMountOptionInput` via:

VolumeMountOptionArgs{...}

type VolumeMountOptionOutput

type VolumeMountOptionOutput struct{ *pulumi.OutputState }

func (VolumeMountOptionOutput) ElementType

func (VolumeMountOptionOutput) ElementType() reflect.Type

func (VolumeMountOptionOutput) Export

(Output) Export path of the volume.

func (VolumeMountOptionOutput) ExportFull

(Output) Full export path of the volume. Format for NFS volumes: `<export_ip>:/<shareName>` Format for SMB volumes: `\\\\netbios_prefix-four_random_hex_letters.domain_name\\shareName`

func (VolumeMountOptionOutput) Instructions

(Output) Human-readable mount instructions.

func (VolumeMountOptionOutput) Protocol

(Output) Protocol to mount with.

func (VolumeMountOptionOutput) ToVolumeMountOptionOutput

func (o VolumeMountOptionOutput) ToVolumeMountOptionOutput() VolumeMountOptionOutput

func (VolumeMountOptionOutput) ToVolumeMountOptionOutputWithContext

func (o VolumeMountOptionOutput) ToVolumeMountOptionOutputWithContext(ctx context.Context) VolumeMountOptionOutput

type VolumeOutput

type VolumeOutput struct{ *pulumi.OutputState }

func (VolumeOutput) ActiveDirectory

func (o VolumeOutput) ActiveDirectory() pulumi.StringOutput

Reports the resource name of the Active Directory policy being used. Inherited from storage pool.

func (VolumeOutput) BackupConfig

func (o VolumeOutput) BackupConfig() VolumeBackupConfigPtrOutput

Backup configuration for the volume. Structure is documented below.

func (VolumeOutput) CapacityGib

func (o VolumeOutput) CapacityGib() pulumi.StringOutput

Capacity of the volume (in GiB).

func (VolumeOutput) ColdTierSizeGib added in v8.3.0

func (o VolumeOutput) ColdTierSizeGib() pulumi.StringOutput

Output only. Size of the volume cold tier data in GiB.

func (VolumeOutput) CreateTime

func (o VolumeOutput) CreateTime() pulumi.StringOutput

Create time of the volume. A timestamp in RFC3339 UTC "Zulu" format. Examples: "2023-06-22T09:13:01.617Z".

func (VolumeOutput) DeletionPolicy

func (o VolumeOutput) DeletionPolicy() pulumi.StringPtrOutput

Policy to determine if the volume should be deleted forcefully. Volumes may have nested snapshot resources. Deleting such a volume will fail. Setting this parameter to FORCE will delete volumes including nested snapshots. Possible values: DEFAULT, FORCE.

func (VolumeOutput) Description

func (o VolumeOutput) Description() pulumi.StringPtrOutput

An optional description of this resource.

func (VolumeOutput) EffectiveLabels

func (o VolumeOutput) EffectiveLabels() pulumi.StringMapOutput

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

func (VolumeOutput) ElementType

func (VolumeOutput) ElementType() reflect.Type

func (VolumeOutput) EncryptionType

func (o VolumeOutput) EncryptionType() pulumi.StringOutput

Reports the data-at-rest encryption type of the volume. Inherited from storage pool.

func (VolumeOutput) ExportPolicy

func (o VolumeOutput) ExportPolicy() VolumeExportPolicyPtrOutput

Export policy of the volume for NFSV3 and/or NFSV4.1 access. Structure is documented below.

func (VolumeOutput) HasReplication

func (o VolumeOutput) HasReplication() pulumi.BoolOutput

Indicates whether the volume is part of a volume replication relationship.

func (VolumeOutput) KerberosEnabled

func (o VolumeOutput) KerberosEnabled() pulumi.BoolPtrOutput

Flag indicating if the volume is a kerberos volume or not, export policy rules control kerberos security modes (krb5, krb5i, krb5p).

func (VolumeOutput) KmsConfig

func (o VolumeOutput) KmsConfig() pulumi.StringOutput

Reports the CMEK policy resurce name being used for volume encryption. Inherited from storage pool.

func (VolumeOutput) Labels

func (o VolumeOutput) Labels() pulumi.StringMapOutput

Labels as key value pairs. Example: `{ "owner": "Bob", "department": "finance", "purpose": "testing" }`.

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

func (VolumeOutput) LargeCapacity added in v8.2.0

func (o VolumeOutput) LargeCapacity() pulumi.BoolPtrOutput

Optional. Flag indicating if the volume will be a large capacity volume or a regular volume.

func (VolumeOutput) LdapEnabled

func (o VolumeOutput) LdapEnabled() pulumi.BoolOutput

Flag indicating if the volume is NFS LDAP enabled or not. Inherited from storage pool.

func (VolumeOutput) Location

func (o VolumeOutput) Location() pulumi.StringOutput

Name of the pool location. Usually a region name, expect for some STANDARD service level pools which require a zone name.

func (VolumeOutput) MountOptions

func (o VolumeOutput) MountOptions() VolumeMountOptionArrayOutput

Reports mount instructions for this volume. Structure is documented below.

func (VolumeOutput) MultipleEndpoints added in v8.2.0

func (o VolumeOutput) MultipleEndpoints() pulumi.BoolPtrOutput

Optional. Flag indicating if the volume will have an IP address per node for volumes supporting multiple IP endpoints. Only the volume with largeCapacity will be allowed to have multiple endpoints.

func (VolumeOutput) Name

func (o VolumeOutput) Name() pulumi.StringOutput

The name of the volume. Needs to be unique per location.

***

func (VolumeOutput) Network

func (o VolumeOutput) Network() pulumi.StringOutput

VPC network name with format: `projects/{{project}}/global/networks/{{network}}`. Inherited from storage pool.

func (VolumeOutput) Project

func (o VolumeOutput) Project() pulumi.StringOutput

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

func (VolumeOutput) Protocols

func (o VolumeOutput) Protocols() pulumi.StringArrayOutput

The protocol of the volume. Allowed combinations are `['NFSV3']`, `['NFSV4']`, `['SMB']`, `['NFSV3', 'NFSV4']`, `['SMB', 'NFSV3']` and `['SMB', 'NFSV4']`. Each value may be one of: `NFSV3`, `NFSV4`, `SMB`.

func (VolumeOutput) PsaRange

func (o VolumeOutput) PsaRange() pulumi.StringOutput

Name of the Private Service Access allocated range. Inherited from storage pool.

func (VolumeOutput) PulumiLabels

func (o VolumeOutput) PulumiLabels() pulumi.StringMapOutput

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

func (VolumeOutput) ReplicaZone

func (o VolumeOutput) ReplicaZone() pulumi.StringOutput

Specifies the replica zone for regional volume.

func (VolumeOutput) RestoreParameters

func (o VolumeOutput) RestoreParameters() VolumeRestoreParametersPtrOutput

Used to create this volume from a snapshot (= cloning) or an backup. Structure is documented below.

func (VolumeOutput) RestrictedActions

func (o VolumeOutput) RestrictedActions() pulumi.StringArrayOutput

List of actions that are restricted on this volume. Each value may be one of: `DELETE`.

func (VolumeOutput) SecurityStyle

func (o VolumeOutput) SecurityStyle() pulumi.StringOutput

Security Style of the Volume. Use UNIX to use UNIX or NFSV4 ACLs for file permissions. Use NTFS to use NTFS ACLs for file permissions. Can only be set for volumes which use SMB together with NFS as protocol. Possible values are: `NTFS`, `UNIX`.

func (VolumeOutput) ServiceLevel

func (o VolumeOutput) ServiceLevel() pulumi.StringOutput

Service level of the volume. Inherited from storage pool. Supported values are : PREMIUM, EXTREME, STANDARD, FLEX.

func (VolumeOutput) ShareName

func (o VolumeOutput) ShareName() pulumi.StringOutput

Share name (SMB) or export path (NFS) of the volume. Needs to be unique per location.

func (VolumeOutput) SmbSettings

func (o VolumeOutput) SmbSettings() pulumi.StringArrayOutput

Settings for volumes with SMB access. Each value may be one of: `ENCRYPT_DATA`, `BROWSABLE`, `CHANGE_NOTIFY`, `NON_BROWSABLE`, `OPLOCKS`, `SHOW_SNAPSHOT`, `SHOW_PREVIOUS_VERSIONS`, `ACCESS_BASED_ENUMERATION`, `CONTINUOUSLY_AVAILABLE`.

func (VolumeOutput) SnapshotDirectory

func (o VolumeOutput) SnapshotDirectory() pulumi.BoolPtrOutput

If enabled, a NFS volume will contain a read-only .snapshot directory which provides access to each of the volume's snapshots. Will enable "Previous Versions" support for SMB.

func (VolumeOutput) SnapshotPolicy

func (o VolumeOutput) SnapshotPolicy() VolumeSnapshotPolicyPtrOutput

Snapshot policy defines the schedule for automatic snapshot creation. To disable automatic snapshot creation you have to remove the whole snapshotPolicy block. Structure is documented below.

func (VolumeOutput) State

func (o VolumeOutput) State() pulumi.StringOutput

State of the volume.

func (VolumeOutput) StateDetails

func (o VolumeOutput) StateDetails() pulumi.StringOutput

State details of the volume.

func (VolumeOutput) StoragePool

func (o VolumeOutput) StoragePool() pulumi.StringOutput

Name of the storage pool to create the volume in. Pool needs enough spare capacity to accommodate the volume.

func (VolumeOutput) TieringPolicy added in v8.3.0

func (o VolumeOutput) TieringPolicy() VolumeTieringPolicyPtrOutput

Tiering policy for the volume. Structure is documented below.

func (VolumeOutput) ToVolumeOutput

func (o VolumeOutput) ToVolumeOutput() VolumeOutput

func (VolumeOutput) ToVolumeOutputWithContext

func (o VolumeOutput) ToVolumeOutputWithContext(ctx context.Context) VolumeOutput

func (VolumeOutput) UnixPermissions

func (o VolumeOutput) UnixPermissions() pulumi.StringOutput

Unix permission the mount point will be created with. Default is 0770. Applicable for UNIX security style volumes only.

func (VolumeOutput) UsedGib

func (o VolumeOutput) UsedGib() pulumi.StringOutput

Used capacity of the volume (in GiB). This is computed periodically and it does not represent the realtime usage.

func (VolumeOutput) Zone

func (o VolumeOutput) Zone() pulumi.StringOutput

Specifies the active zone for regional volume.

type VolumeReplication

type VolumeReplication struct {
	pulumi.CustomResourceState

	// Create time of the active directory. A timestamp in RFC3339 UTC "Zulu" format. Examples: "2023-06-22T09:13:01.617Z".
	CreateTime              pulumi.StringOutput  `pulumi:"createTime"`
	DeleteDestinationVolume pulumi.BoolPtrOutput `pulumi:"deleteDestinationVolume"`
	// An description of this resource.
	Description pulumi.StringPtrOutput `pulumi:"description"`
	// Full resource name of destination volume with format: `projects/{{project}}/locations/{{location}}/volumes/{{volumeId}}`
	DestinationVolume pulumi.StringOutput `pulumi:"destinationVolume"`
	// Destination volume parameters.
	// Structure is documented below.
	DestinationVolumeParameters VolumeReplicationDestinationVolumeParametersPtrOutput `pulumi:"destinationVolumeParameters"`
	// All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
	EffectiveLabels pulumi.StringMapOutput `pulumi:"effectiveLabels"`
	// Only replications with mirror_state=MIRRORED can be stopped. A replication in mirror_state=TRANSFERRING
	// currently receives an update and stopping the update might be undesirable. Set this parameter to true
	// to stop anyway. All data transferred to the destination will be discarded and content of destination
	// volume will remain at the state of the last successful update. Default is false.
	ForceStopping pulumi.BoolPtrOutput `pulumi:"forceStopping"`
	// Condition of the relationship. Can be one of the following:
	// - true: The replication relationship is healthy. It has not missed the most recent scheduled transfer.
	// - false: The replication relationship is not healthy. It has missed the most recent scheduled transfer.
	Healthy pulumi.BoolOutput `pulumi:"healthy"`
	// Labels as key value pairs. Example: `{ "owner": "Bob", "department": "finance", "purpose": "testing" }`
	//
	// **Note**: This field is non-authoritative, and will only manage the labels present in your configuration.
	// Please refer to the field `effectiveLabels` for all of the labels present on the resource.
	Labels pulumi.StringMapOutput `pulumi:"labels"`
	// Name of region for this resource. The resource needs to be created in the region of the destination volume.
	Location pulumi.StringOutput `pulumi:"location"`
	// Indicates the state of the mirror between source and destination volumes. Depending on the amount of data
	// in your source volume, PREPARING phase can take hours or days. mirrorState = MIRRORED indicates your baseline
	// transfer ended and destination volume became accessible read-only. TRANSFERRING means a MIRRORED volume
	// currently receives an update. Updated every 5 minutes.
	MirrorState pulumi.StringOutput `pulumi:"mirrorState"`
	// The name of the replication. Needs to be unique per location.
	//
	// ***
	Name pulumi.StringOutput `pulumi:"name"`
	// The ID of the project in which the resource belongs.
	// If it is not provided, the provider project is used.
	Project pulumi.StringOutput `pulumi:"project"`
	// The combination of labels configured directly on the resource
	// and default labels configured on the provider.
	PulumiLabels pulumi.StringMapOutput `pulumi:"pulumiLabels"`
	// Set to false to stop/break the mirror. Stopping the mirror makes the destination volume read-write
	// and act independently from the source volume.
	// Set to true to enable/resume the mirror. WARNING: Resuming a mirror overwrites any changes
	// done to the destination volume with the content of the source volume.
	ReplicationEnabled pulumi.BoolPtrOutput `pulumi:"replicationEnabled"`
	// Specifies the replication interval.
	// Possible values are: `EVERY_10_MINUTES`, `HOURLY`, `DAILY`.
	ReplicationSchedule pulumi.StringOutput `pulumi:"replicationSchedule"`
	// Reverting a replication can swap source and destination volume roles. This field indicates if the `location` hosts
	// the source or destination volume. For resume and revert and resume operations it is critical to understand
	// which volume is the source volume, since it will overwrite changes done to the destination volume.
	Role pulumi.StringOutput `pulumi:"role"`
	// Full resource name of source volume with format: `projects/{{project}}/locations/{{location}}/volumes/{{volumeId}}`
	SourceVolume pulumi.StringOutput `pulumi:"sourceVolume"`
	// Indicates the state of replication resource. State of the mirror itself is indicated in mirrorState.
	State pulumi.StringOutput `pulumi:"state"`
	// State details of the replication resource.
	StateDetails pulumi.StringOutput `pulumi:"stateDetails"`
	// Replication transfer statistics. All statistics are updated every 5 minutes.
	// Structure is documented below.
	TransferStats VolumeReplicationTransferStatArrayOutput `pulumi:"transferStats"`
	// The name of the existing source volume.
	VolumeName    pulumi.StringOutput  `pulumi:"volumeName"`
	WaitForMirror pulumi.BoolPtrOutput `pulumi:"waitForMirror"`
}

## Example Usage

### Netapp Volume Replication Create

```go package main

import (

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

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_default, err := compute.LookupNetwork(ctx, &compute.LookupNetworkArgs{
			Name: "test-network",
		}, nil)
		if err != nil {
			return err
		}
		sourcePool, err := netapp.NewStoragePool(ctx, "source_pool", &netapp.StoragePoolArgs{
			Name:         pulumi.String("source-pool"),
			Location:     pulumi.String("us-central1"),
			ServiceLevel: pulumi.String("PREMIUM"),
			CapacityGib:  pulumi.String("2048"),
			Network:      pulumi.String(_default.Id),
		})
		if err != nil {
			return err
		}
		destinationPool, err := netapp.NewStoragePool(ctx, "destination_pool", &netapp.StoragePoolArgs{
			Name:         pulumi.String("destination-pool"),
			Location:     pulumi.String("us-west2"),
			ServiceLevel: pulumi.String("PREMIUM"),
			CapacityGib:  pulumi.String("2048"),
			Network:      pulumi.String(_default.Id),
		})
		if err != nil {
			return err
		}
		sourceVolume, err := netapp.NewVolume(ctx, "source_volume", &netapp.VolumeArgs{
			Location:    sourcePool.Location,
			Name:        pulumi.String("source-volume"),
			CapacityGib: pulumi.String("100"),
			ShareName:   pulumi.String("source-volume"),
			StoragePool: sourcePool.Name,
			Protocols: pulumi.StringArray{
				pulumi.String("NFSV3"),
			},
			DeletionPolicy: pulumi.String("FORCE"),
		})
		if err != nil {
			return err
		}
		_, err = netapp.NewVolumeReplication(ctx, "test_replication", &netapp.VolumeReplicationArgs{
			Location:            sourceVolume.Location,
			VolumeName:          sourceVolume.Name,
			Name:                pulumi.String("test-replication"),
			ReplicationSchedule: pulumi.String("EVERY_10_MINUTES"),
			Description:         pulumi.String("This is a replication resource"),
			DestinationVolumeParameters: &netapp.VolumeReplicationDestinationVolumeParametersArgs{
				StoragePool: destinationPool.ID(),
				VolumeId:    pulumi.String("destination-volume"),
				ShareName:   pulumi.String("source-volume"),
				Description: pulumi.String("This is a replicated volume"),
			},
			DeleteDestinationVolume: pulumi.Bool(true),
			WaitForMirror:           pulumi.Bool(true),
		}, pulumi.DependsOn([]pulumi.Resource{
			sourceVolume,
		}))
		if err != nil {
			return err
		}
		return nil
	})
}

```

## Import

VolumeReplication can be imported using any of these accepted formats:

* `projects/{{project}}/locations/{{location}}/volumes/{{volume_name}}/replications/{{name}}`

* `{{project}}/{{location}}/{{volume_name}}/{{name}}`

* `{{location}}/{{volume_name}}/{{name}}`

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

```sh $ pulumi import gcp:netapp/volumeReplication:VolumeReplication default projects/{{project}}/locations/{{location}}/volumes/{{volume_name}}/replications/{{name}} ```

```sh $ pulumi import gcp:netapp/volumeReplication:VolumeReplication default {{project}}/{{location}}/{{volume_name}}/{{name}} ```

```sh $ pulumi import gcp:netapp/volumeReplication:VolumeReplication default {{location}}/{{volume_name}}/{{name}} ```

func GetVolumeReplication

func GetVolumeReplication(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *VolumeReplicationState, opts ...pulumi.ResourceOption) (*VolumeReplication, error)

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

func NewVolumeReplication

func NewVolumeReplication(ctx *pulumi.Context,
	name string, args *VolumeReplicationArgs, opts ...pulumi.ResourceOption) (*VolumeReplication, error)

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

func (*VolumeReplication) ElementType

func (*VolumeReplication) ElementType() reflect.Type

func (*VolumeReplication) ToVolumeReplicationOutput

func (i *VolumeReplication) ToVolumeReplicationOutput() VolumeReplicationOutput

func (*VolumeReplication) ToVolumeReplicationOutputWithContext

func (i *VolumeReplication) ToVolumeReplicationOutputWithContext(ctx context.Context) VolumeReplicationOutput

type VolumeReplicationArgs

type VolumeReplicationArgs struct {
	DeleteDestinationVolume pulumi.BoolPtrInput
	// An description of this resource.
	Description pulumi.StringPtrInput
	// Destination volume parameters.
	// Structure is documented below.
	DestinationVolumeParameters VolumeReplicationDestinationVolumeParametersPtrInput
	// Only replications with mirror_state=MIRRORED can be stopped. A replication in mirror_state=TRANSFERRING
	// currently receives an update and stopping the update might be undesirable. Set this parameter to true
	// to stop anyway. All data transferred to the destination will be discarded and content of destination
	// volume will remain at the state of the last successful update. Default is false.
	ForceStopping pulumi.BoolPtrInput
	// Labels as key value pairs. Example: `{ "owner": "Bob", "department": "finance", "purpose": "testing" }`
	//
	// **Note**: This field is non-authoritative, and will only manage the labels present in your configuration.
	// Please refer to the field `effectiveLabels` for all of the labels present on the resource.
	Labels pulumi.StringMapInput
	// Name of region for this resource. The resource needs to be created in the region of the destination volume.
	Location pulumi.StringInput
	// The name of the replication. Needs to be unique per location.
	//
	// ***
	Name pulumi.StringPtrInput
	// The ID of the project in which the resource belongs.
	// If it is not provided, the provider project is used.
	Project pulumi.StringPtrInput
	// Set to false to stop/break the mirror. Stopping the mirror makes the destination volume read-write
	// and act independently from the source volume.
	// Set to true to enable/resume the mirror. WARNING: Resuming a mirror overwrites any changes
	// done to the destination volume with the content of the source volume.
	ReplicationEnabled pulumi.BoolPtrInput
	// Specifies the replication interval.
	// Possible values are: `EVERY_10_MINUTES`, `HOURLY`, `DAILY`.
	ReplicationSchedule pulumi.StringInput
	// The name of the existing source volume.
	VolumeName    pulumi.StringInput
	WaitForMirror pulumi.BoolPtrInput
}

The set of arguments for constructing a VolumeReplication resource.

func (VolumeReplicationArgs) ElementType

func (VolumeReplicationArgs) ElementType() reflect.Type

type VolumeReplicationArray

type VolumeReplicationArray []VolumeReplicationInput

func (VolumeReplicationArray) ElementType

func (VolumeReplicationArray) ElementType() reflect.Type

func (VolumeReplicationArray) ToVolumeReplicationArrayOutput

func (i VolumeReplicationArray) ToVolumeReplicationArrayOutput() VolumeReplicationArrayOutput

func (VolumeReplicationArray) ToVolumeReplicationArrayOutputWithContext

func (i VolumeReplicationArray) ToVolumeReplicationArrayOutputWithContext(ctx context.Context) VolumeReplicationArrayOutput

type VolumeReplicationArrayInput

type VolumeReplicationArrayInput interface {
	pulumi.Input

	ToVolumeReplicationArrayOutput() VolumeReplicationArrayOutput
	ToVolumeReplicationArrayOutputWithContext(context.Context) VolumeReplicationArrayOutput
}

VolumeReplicationArrayInput is an input type that accepts VolumeReplicationArray and VolumeReplicationArrayOutput values. You can construct a concrete instance of `VolumeReplicationArrayInput` via:

VolumeReplicationArray{ VolumeReplicationArgs{...} }

type VolumeReplicationArrayOutput

type VolumeReplicationArrayOutput struct{ *pulumi.OutputState }

func (VolumeReplicationArrayOutput) ElementType

func (VolumeReplicationArrayOutput) Index

func (VolumeReplicationArrayOutput) ToVolumeReplicationArrayOutput

func (o VolumeReplicationArrayOutput) ToVolumeReplicationArrayOutput() VolumeReplicationArrayOutput

func (VolumeReplicationArrayOutput) ToVolumeReplicationArrayOutputWithContext

func (o VolumeReplicationArrayOutput) ToVolumeReplicationArrayOutputWithContext(ctx context.Context) VolumeReplicationArrayOutput

type VolumeReplicationDestinationVolumeParameters

type VolumeReplicationDestinationVolumeParameters struct {
	// Description for the destination volume.
	Description *string `pulumi:"description"`
	// Share name for destination volume. If not specified, name of source volume's share name will be used.
	ShareName *string `pulumi:"shareName"`
	// Name of an existing storage pool for the destination volume with format: `projects/{{project}}/locations/{{location}}/storagePools/{{poolId}}`
	StoragePool string `pulumi:"storagePool"`
	// Name for the destination volume to be created. If not specified, the name of the source volume will be used.
	VolumeId *string `pulumi:"volumeId"`
}

type VolumeReplicationDestinationVolumeParametersArgs

type VolumeReplicationDestinationVolumeParametersArgs struct {
	// Description for the destination volume.
	Description pulumi.StringPtrInput `pulumi:"description"`
	// Share name for destination volume. If not specified, name of source volume's share name will be used.
	ShareName pulumi.StringPtrInput `pulumi:"shareName"`
	// Name of an existing storage pool for the destination volume with format: `projects/{{project}}/locations/{{location}}/storagePools/{{poolId}}`
	StoragePool pulumi.StringInput `pulumi:"storagePool"`
	// Name for the destination volume to be created. If not specified, the name of the source volume will be used.
	VolumeId pulumi.StringPtrInput `pulumi:"volumeId"`
}

func (VolumeReplicationDestinationVolumeParametersArgs) ElementType

func (VolumeReplicationDestinationVolumeParametersArgs) ToVolumeReplicationDestinationVolumeParametersOutput

func (i VolumeReplicationDestinationVolumeParametersArgs) ToVolumeReplicationDestinationVolumeParametersOutput() VolumeReplicationDestinationVolumeParametersOutput

func (VolumeReplicationDestinationVolumeParametersArgs) ToVolumeReplicationDestinationVolumeParametersOutputWithContext

func (i VolumeReplicationDestinationVolumeParametersArgs) ToVolumeReplicationDestinationVolumeParametersOutputWithContext(ctx context.Context) VolumeReplicationDestinationVolumeParametersOutput

func (VolumeReplicationDestinationVolumeParametersArgs) ToVolumeReplicationDestinationVolumeParametersPtrOutput

func (i VolumeReplicationDestinationVolumeParametersArgs) ToVolumeReplicationDestinationVolumeParametersPtrOutput() VolumeReplicationDestinationVolumeParametersPtrOutput

func (VolumeReplicationDestinationVolumeParametersArgs) ToVolumeReplicationDestinationVolumeParametersPtrOutputWithContext

func (i VolumeReplicationDestinationVolumeParametersArgs) ToVolumeReplicationDestinationVolumeParametersPtrOutputWithContext(ctx context.Context) VolumeReplicationDestinationVolumeParametersPtrOutput

type VolumeReplicationDestinationVolumeParametersInput

type VolumeReplicationDestinationVolumeParametersInput interface {
	pulumi.Input

	ToVolumeReplicationDestinationVolumeParametersOutput() VolumeReplicationDestinationVolumeParametersOutput
	ToVolumeReplicationDestinationVolumeParametersOutputWithContext(context.Context) VolumeReplicationDestinationVolumeParametersOutput
}

VolumeReplicationDestinationVolumeParametersInput is an input type that accepts VolumeReplicationDestinationVolumeParametersArgs and VolumeReplicationDestinationVolumeParametersOutput values. You can construct a concrete instance of `VolumeReplicationDestinationVolumeParametersInput` via:

VolumeReplicationDestinationVolumeParametersArgs{...}

type VolumeReplicationDestinationVolumeParametersOutput

type VolumeReplicationDestinationVolumeParametersOutput struct{ *pulumi.OutputState }

func (VolumeReplicationDestinationVolumeParametersOutput) Description

Description for the destination volume.

func (VolumeReplicationDestinationVolumeParametersOutput) ElementType

func (VolumeReplicationDestinationVolumeParametersOutput) ShareName

Share name for destination volume. If not specified, name of source volume's share name will be used.

func (VolumeReplicationDestinationVolumeParametersOutput) StoragePool

Name of an existing storage pool for the destination volume with format: `projects/{{project}}/locations/{{location}}/storagePools/{{poolId}}`

func (VolumeReplicationDestinationVolumeParametersOutput) ToVolumeReplicationDestinationVolumeParametersOutput

func (o VolumeReplicationDestinationVolumeParametersOutput) ToVolumeReplicationDestinationVolumeParametersOutput() VolumeReplicationDestinationVolumeParametersOutput

func (VolumeReplicationDestinationVolumeParametersOutput) ToVolumeReplicationDestinationVolumeParametersOutputWithContext

func (o VolumeReplicationDestinationVolumeParametersOutput) ToVolumeReplicationDestinationVolumeParametersOutputWithContext(ctx context.Context) VolumeReplicationDestinationVolumeParametersOutput

func (VolumeReplicationDestinationVolumeParametersOutput) ToVolumeReplicationDestinationVolumeParametersPtrOutput

func (o VolumeReplicationDestinationVolumeParametersOutput) ToVolumeReplicationDestinationVolumeParametersPtrOutput() VolumeReplicationDestinationVolumeParametersPtrOutput

func (VolumeReplicationDestinationVolumeParametersOutput) ToVolumeReplicationDestinationVolumeParametersPtrOutputWithContext

func (o VolumeReplicationDestinationVolumeParametersOutput) ToVolumeReplicationDestinationVolumeParametersPtrOutputWithContext(ctx context.Context) VolumeReplicationDestinationVolumeParametersPtrOutput

func (VolumeReplicationDestinationVolumeParametersOutput) VolumeId

Name for the destination volume to be created. If not specified, the name of the source volume will be used.

type VolumeReplicationDestinationVolumeParametersPtrInput

type VolumeReplicationDestinationVolumeParametersPtrInput interface {
	pulumi.Input

	ToVolumeReplicationDestinationVolumeParametersPtrOutput() VolumeReplicationDestinationVolumeParametersPtrOutput
	ToVolumeReplicationDestinationVolumeParametersPtrOutputWithContext(context.Context) VolumeReplicationDestinationVolumeParametersPtrOutput
}

VolumeReplicationDestinationVolumeParametersPtrInput is an input type that accepts VolumeReplicationDestinationVolumeParametersArgs, VolumeReplicationDestinationVolumeParametersPtr and VolumeReplicationDestinationVolumeParametersPtrOutput values. You can construct a concrete instance of `VolumeReplicationDestinationVolumeParametersPtrInput` via:

        VolumeReplicationDestinationVolumeParametersArgs{...}

or:

        nil

type VolumeReplicationDestinationVolumeParametersPtrOutput

type VolumeReplicationDestinationVolumeParametersPtrOutput struct{ *pulumi.OutputState }

func (VolumeReplicationDestinationVolumeParametersPtrOutput) Description

Description for the destination volume.

func (VolumeReplicationDestinationVolumeParametersPtrOutput) Elem

func (VolumeReplicationDestinationVolumeParametersPtrOutput) ElementType

func (VolumeReplicationDestinationVolumeParametersPtrOutput) ShareName

Share name for destination volume. If not specified, name of source volume's share name will be used.

func (VolumeReplicationDestinationVolumeParametersPtrOutput) StoragePool

Name of an existing storage pool for the destination volume with format: `projects/{{project}}/locations/{{location}}/storagePools/{{poolId}}`

func (VolumeReplicationDestinationVolumeParametersPtrOutput) ToVolumeReplicationDestinationVolumeParametersPtrOutput

func (VolumeReplicationDestinationVolumeParametersPtrOutput) ToVolumeReplicationDestinationVolumeParametersPtrOutputWithContext

func (o VolumeReplicationDestinationVolumeParametersPtrOutput) ToVolumeReplicationDestinationVolumeParametersPtrOutputWithContext(ctx context.Context) VolumeReplicationDestinationVolumeParametersPtrOutput

func (VolumeReplicationDestinationVolumeParametersPtrOutput) VolumeId

Name for the destination volume to be created. If not specified, the name of the source volume will be used.

type VolumeReplicationInput

type VolumeReplicationInput interface {
	pulumi.Input

	ToVolumeReplicationOutput() VolumeReplicationOutput
	ToVolumeReplicationOutputWithContext(ctx context.Context) VolumeReplicationOutput
}

type VolumeReplicationMap

type VolumeReplicationMap map[string]VolumeReplicationInput

func (VolumeReplicationMap) ElementType

func (VolumeReplicationMap) ElementType() reflect.Type

func (VolumeReplicationMap) ToVolumeReplicationMapOutput

func (i VolumeReplicationMap) ToVolumeReplicationMapOutput() VolumeReplicationMapOutput

func (VolumeReplicationMap) ToVolumeReplicationMapOutputWithContext

func (i VolumeReplicationMap) ToVolumeReplicationMapOutputWithContext(ctx context.Context) VolumeReplicationMapOutput

type VolumeReplicationMapInput

type VolumeReplicationMapInput interface {
	pulumi.Input

	ToVolumeReplicationMapOutput() VolumeReplicationMapOutput
	ToVolumeReplicationMapOutputWithContext(context.Context) VolumeReplicationMapOutput
}

VolumeReplicationMapInput is an input type that accepts VolumeReplicationMap and VolumeReplicationMapOutput values. You can construct a concrete instance of `VolumeReplicationMapInput` via:

VolumeReplicationMap{ "key": VolumeReplicationArgs{...} }

type VolumeReplicationMapOutput

type VolumeReplicationMapOutput struct{ *pulumi.OutputState }

func (VolumeReplicationMapOutput) ElementType

func (VolumeReplicationMapOutput) ElementType() reflect.Type

func (VolumeReplicationMapOutput) MapIndex

func (VolumeReplicationMapOutput) ToVolumeReplicationMapOutput

func (o VolumeReplicationMapOutput) ToVolumeReplicationMapOutput() VolumeReplicationMapOutput

func (VolumeReplicationMapOutput) ToVolumeReplicationMapOutputWithContext

func (o VolumeReplicationMapOutput) ToVolumeReplicationMapOutputWithContext(ctx context.Context) VolumeReplicationMapOutput

type VolumeReplicationOutput

type VolumeReplicationOutput struct{ *pulumi.OutputState }

func (VolumeReplicationOutput) CreateTime

Create time of the active directory. A timestamp in RFC3339 UTC "Zulu" format. Examples: "2023-06-22T09:13:01.617Z".

func (VolumeReplicationOutput) DeleteDestinationVolume

func (o VolumeReplicationOutput) DeleteDestinationVolume() pulumi.BoolPtrOutput

func (VolumeReplicationOutput) Description

An description of this resource.

func (VolumeReplicationOutput) DestinationVolume

func (o VolumeReplicationOutput) DestinationVolume() pulumi.StringOutput

Full resource name of destination volume with format: `projects/{{project}}/locations/{{location}}/volumes/{{volumeId}}`

func (VolumeReplicationOutput) DestinationVolumeParameters

Destination volume parameters. Structure is documented below.

func (VolumeReplicationOutput) EffectiveLabels

func (o VolumeReplicationOutput) EffectiveLabels() pulumi.StringMapOutput

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

func (VolumeReplicationOutput) ElementType

func (VolumeReplicationOutput) ElementType() reflect.Type

func (VolumeReplicationOutput) ForceStopping

func (o VolumeReplicationOutput) ForceStopping() pulumi.BoolPtrOutput

Only replications with mirror_state=MIRRORED can be stopped. A replication in mirror_state=TRANSFERRING currently receives an update and stopping the update might be undesirable. Set this parameter to true to stop anyway. All data transferred to the destination will be discarded and content of destination volume will remain at the state of the last successful update. Default is false.

func (VolumeReplicationOutput) Healthy

Condition of the relationship. Can be one of the following: - true: The replication relationship is healthy. It has not missed the most recent scheduled transfer. - false: The replication relationship is not healthy. It has missed the most recent scheduled transfer.

func (VolumeReplicationOutput) Labels

Labels as key value pairs. Example: `{ "owner": "Bob", "department": "finance", "purpose": "testing" }`

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

func (VolumeReplicationOutput) Location

Name of region for this resource. The resource needs to be created in the region of the destination volume.

func (VolumeReplicationOutput) MirrorState

Indicates the state of the mirror between source and destination volumes. Depending on the amount of data in your source volume, PREPARING phase can take hours or days. mirrorState = MIRRORED indicates your baseline transfer ended and destination volume became accessible read-only. TRANSFERRING means a MIRRORED volume currently receives an update. Updated every 5 minutes.

func (VolumeReplicationOutput) Name

The name of the replication. Needs to be unique per location.

***

func (VolumeReplicationOutput) Project

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

func (VolumeReplicationOutput) PulumiLabels

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

func (VolumeReplicationOutput) ReplicationEnabled

func (o VolumeReplicationOutput) ReplicationEnabled() pulumi.BoolPtrOutput

Set to false to stop/break the mirror. Stopping the mirror makes the destination volume read-write and act independently from the source volume. Set to true to enable/resume the mirror. WARNING: Resuming a mirror overwrites any changes done to the destination volume with the content of the source volume.

func (VolumeReplicationOutput) ReplicationSchedule

func (o VolumeReplicationOutput) ReplicationSchedule() pulumi.StringOutput

Specifies the replication interval. Possible values are: `EVERY_10_MINUTES`, `HOURLY`, `DAILY`.

func (VolumeReplicationOutput) Role

Reverting a replication can swap source and destination volume roles. This field indicates if the `location` hosts the source or destination volume. For resume and revert and resume operations it is critical to understand which volume is the source volume, since it will overwrite changes done to the destination volume.

func (VolumeReplicationOutput) SourceVolume

func (o VolumeReplicationOutput) SourceVolume() pulumi.StringOutput

Full resource name of source volume with format: `projects/{{project}}/locations/{{location}}/volumes/{{volumeId}}`

func (VolumeReplicationOutput) State

Indicates the state of replication resource. State of the mirror itself is indicated in mirrorState.

func (VolumeReplicationOutput) StateDetails

func (o VolumeReplicationOutput) StateDetails() pulumi.StringOutput

State details of the replication resource.

func (VolumeReplicationOutput) ToVolumeReplicationOutput

func (o VolumeReplicationOutput) ToVolumeReplicationOutput() VolumeReplicationOutput

func (VolumeReplicationOutput) ToVolumeReplicationOutputWithContext

func (o VolumeReplicationOutput) ToVolumeReplicationOutputWithContext(ctx context.Context) VolumeReplicationOutput

func (VolumeReplicationOutput) TransferStats

Replication transfer statistics. All statistics are updated every 5 minutes. Structure is documented below.

func (VolumeReplicationOutput) VolumeName

The name of the existing source volume.

func (VolumeReplicationOutput) WaitForMirror

func (o VolumeReplicationOutput) WaitForMirror() pulumi.BoolPtrOutput

type VolumeReplicationState

type VolumeReplicationState struct {
	// Create time of the active directory. A timestamp in RFC3339 UTC "Zulu" format. Examples: "2023-06-22T09:13:01.617Z".
	CreateTime              pulumi.StringPtrInput
	DeleteDestinationVolume pulumi.BoolPtrInput
	// An description of this resource.
	Description pulumi.StringPtrInput
	// Full resource name of destination volume with format: `projects/{{project}}/locations/{{location}}/volumes/{{volumeId}}`
	DestinationVolume pulumi.StringPtrInput
	// Destination volume parameters.
	// Structure is documented below.
	DestinationVolumeParameters VolumeReplicationDestinationVolumeParametersPtrInput
	// All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
	EffectiveLabels pulumi.StringMapInput
	// Only replications with mirror_state=MIRRORED can be stopped. A replication in mirror_state=TRANSFERRING
	// currently receives an update and stopping the update might be undesirable. Set this parameter to true
	// to stop anyway. All data transferred to the destination will be discarded and content of destination
	// volume will remain at the state of the last successful update. Default is false.
	ForceStopping pulumi.BoolPtrInput
	// Condition of the relationship. Can be one of the following:
	// - true: The replication relationship is healthy. It has not missed the most recent scheduled transfer.
	// - false: The replication relationship is not healthy. It has missed the most recent scheduled transfer.
	Healthy pulumi.BoolPtrInput
	// Labels as key value pairs. Example: `{ "owner": "Bob", "department": "finance", "purpose": "testing" }`
	//
	// **Note**: This field is non-authoritative, and will only manage the labels present in your configuration.
	// Please refer to the field `effectiveLabels` for all of the labels present on the resource.
	Labels pulumi.StringMapInput
	// Name of region for this resource. The resource needs to be created in the region of the destination volume.
	Location pulumi.StringPtrInput
	// Indicates the state of the mirror between source and destination volumes. Depending on the amount of data
	// in your source volume, PREPARING phase can take hours or days. mirrorState = MIRRORED indicates your baseline
	// transfer ended and destination volume became accessible read-only. TRANSFERRING means a MIRRORED volume
	// currently receives an update. Updated every 5 minutes.
	MirrorState pulumi.StringPtrInput
	// The name of the replication. Needs to be unique per location.
	//
	// ***
	Name pulumi.StringPtrInput
	// The ID of the project in which the resource belongs.
	// If it is not provided, the provider project is used.
	Project pulumi.StringPtrInput
	// The combination of labels configured directly on the resource
	// and default labels configured on the provider.
	PulumiLabels pulumi.StringMapInput
	// Set to false to stop/break the mirror. Stopping the mirror makes the destination volume read-write
	// and act independently from the source volume.
	// Set to true to enable/resume the mirror. WARNING: Resuming a mirror overwrites any changes
	// done to the destination volume with the content of the source volume.
	ReplicationEnabled pulumi.BoolPtrInput
	// Specifies the replication interval.
	// Possible values are: `EVERY_10_MINUTES`, `HOURLY`, `DAILY`.
	ReplicationSchedule pulumi.StringPtrInput
	// Reverting a replication can swap source and destination volume roles. This field indicates if the `location` hosts
	// the source or destination volume. For resume and revert and resume operations it is critical to understand
	// which volume is the source volume, since it will overwrite changes done to the destination volume.
	Role pulumi.StringPtrInput
	// Full resource name of source volume with format: `projects/{{project}}/locations/{{location}}/volumes/{{volumeId}}`
	SourceVolume pulumi.StringPtrInput
	// Indicates the state of replication resource. State of the mirror itself is indicated in mirrorState.
	State pulumi.StringPtrInput
	// State details of the replication resource.
	StateDetails pulumi.StringPtrInput
	// Replication transfer statistics. All statistics are updated every 5 minutes.
	// Structure is documented below.
	TransferStats VolumeReplicationTransferStatArrayInput
	// The name of the existing source volume.
	VolumeName    pulumi.StringPtrInput
	WaitForMirror pulumi.BoolPtrInput
}

func (VolumeReplicationState) ElementType

func (VolumeReplicationState) ElementType() reflect.Type

type VolumeReplicationTransferStat

type VolumeReplicationTransferStat struct {
	// (Output)
	// The elapsed time since the creation of the snapshot on the source volume that was last replicated
	// to the destination volume. Lag time represents the difference in age of the destination volume
	// data in relation to the source volume data.
	LagDuration *string `pulumi:"lagDuration"`
	// (Output)
	// Size of last completed transfer in bytes.
	LastTransferBytes *string `pulumi:"lastTransferBytes"`
	// (Output)
	// Time taken during last completed transfer.
	LastTransferDuration *string `pulumi:"lastTransferDuration"`
	// (Output)
	// Time when last transfer completed. A timestamp in RFC3339 UTC "Zulu" format. Examples: "2023-06-22T09:13:01.617Z".
	LastTransferEndTime *string `pulumi:"lastTransferEndTime"`
	// (Output)
	// A message describing the cause of the last transfer failure.
	LastTransferError *string `pulumi:"lastTransferError"`
	// (Output)
	// Cumulative time taken across all transfers for the replication relationship.
	TotalTransferDuration *string `pulumi:"totalTransferDuration"`
	// (Output)
	// Cumulative bytes transferred so far for the replication relationship.
	TransferBytes *string `pulumi:"transferBytes"`
	// (Output)
	// Time when progress was updated last. A timestamp in RFC3339 UTC "Zulu" format. Examples: "2023-06-22T09:13:01.617Z".
	UpdateTime *string `pulumi:"updateTime"`
}

type VolumeReplicationTransferStatArgs

type VolumeReplicationTransferStatArgs struct {
	// (Output)
	// The elapsed time since the creation of the snapshot on the source volume that was last replicated
	// to the destination volume. Lag time represents the difference in age of the destination volume
	// data in relation to the source volume data.
	LagDuration pulumi.StringPtrInput `pulumi:"lagDuration"`
	// (Output)
	// Size of last completed transfer in bytes.
	LastTransferBytes pulumi.StringPtrInput `pulumi:"lastTransferBytes"`
	// (Output)
	// Time taken during last completed transfer.
	LastTransferDuration pulumi.StringPtrInput `pulumi:"lastTransferDuration"`
	// (Output)
	// Time when last transfer completed. A timestamp in RFC3339 UTC "Zulu" format. Examples: "2023-06-22T09:13:01.617Z".
	LastTransferEndTime pulumi.StringPtrInput `pulumi:"lastTransferEndTime"`
	// (Output)
	// A message describing the cause of the last transfer failure.
	LastTransferError pulumi.StringPtrInput `pulumi:"lastTransferError"`
	// (Output)
	// Cumulative time taken across all transfers for the replication relationship.
	TotalTransferDuration pulumi.StringPtrInput `pulumi:"totalTransferDuration"`
	// (Output)
	// Cumulative bytes transferred so far for the replication relationship.
	TransferBytes pulumi.StringPtrInput `pulumi:"transferBytes"`
	// (Output)
	// Time when progress was updated last. A timestamp in RFC3339 UTC "Zulu" format. Examples: "2023-06-22T09:13:01.617Z".
	UpdateTime pulumi.StringPtrInput `pulumi:"updateTime"`
}

func (VolumeReplicationTransferStatArgs) ElementType

func (VolumeReplicationTransferStatArgs) ToVolumeReplicationTransferStatOutput

func (i VolumeReplicationTransferStatArgs) ToVolumeReplicationTransferStatOutput() VolumeReplicationTransferStatOutput

func (VolumeReplicationTransferStatArgs) ToVolumeReplicationTransferStatOutputWithContext

func (i VolumeReplicationTransferStatArgs) ToVolumeReplicationTransferStatOutputWithContext(ctx context.Context) VolumeReplicationTransferStatOutput

type VolumeReplicationTransferStatArray

type VolumeReplicationTransferStatArray []VolumeReplicationTransferStatInput

func (VolumeReplicationTransferStatArray) ElementType

func (VolumeReplicationTransferStatArray) ToVolumeReplicationTransferStatArrayOutput

func (i VolumeReplicationTransferStatArray) ToVolumeReplicationTransferStatArrayOutput() VolumeReplicationTransferStatArrayOutput

func (VolumeReplicationTransferStatArray) ToVolumeReplicationTransferStatArrayOutputWithContext

func (i VolumeReplicationTransferStatArray) ToVolumeReplicationTransferStatArrayOutputWithContext(ctx context.Context) VolumeReplicationTransferStatArrayOutput

type VolumeReplicationTransferStatArrayInput

type VolumeReplicationTransferStatArrayInput interface {
	pulumi.Input

	ToVolumeReplicationTransferStatArrayOutput() VolumeReplicationTransferStatArrayOutput
	ToVolumeReplicationTransferStatArrayOutputWithContext(context.Context) VolumeReplicationTransferStatArrayOutput
}

VolumeReplicationTransferStatArrayInput is an input type that accepts VolumeReplicationTransferStatArray and VolumeReplicationTransferStatArrayOutput values. You can construct a concrete instance of `VolumeReplicationTransferStatArrayInput` via:

VolumeReplicationTransferStatArray{ VolumeReplicationTransferStatArgs{...} }

type VolumeReplicationTransferStatArrayOutput

type VolumeReplicationTransferStatArrayOutput struct{ *pulumi.OutputState }

func (VolumeReplicationTransferStatArrayOutput) ElementType

func (VolumeReplicationTransferStatArrayOutput) Index

func (VolumeReplicationTransferStatArrayOutput) ToVolumeReplicationTransferStatArrayOutput

func (o VolumeReplicationTransferStatArrayOutput) ToVolumeReplicationTransferStatArrayOutput() VolumeReplicationTransferStatArrayOutput

func (VolumeReplicationTransferStatArrayOutput) ToVolumeReplicationTransferStatArrayOutputWithContext

func (o VolumeReplicationTransferStatArrayOutput) ToVolumeReplicationTransferStatArrayOutputWithContext(ctx context.Context) VolumeReplicationTransferStatArrayOutput

type VolumeReplicationTransferStatInput

type VolumeReplicationTransferStatInput interface {
	pulumi.Input

	ToVolumeReplicationTransferStatOutput() VolumeReplicationTransferStatOutput
	ToVolumeReplicationTransferStatOutputWithContext(context.Context) VolumeReplicationTransferStatOutput
}

VolumeReplicationTransferStatInput is an input type that accepts VolumeReplicationTransferStatArgs and VolumeReplicationTransferStatOutput values. You can construct a concrete instance of `VolumeReplicationTransferStatInput` via:

VolumeReplicationTransferStatArgs{...}

type VolumeReplicationTransferStatOutput

type VolumeReplicationTransferStatOutput struct{ *pulumi.OutputState }

func (VolumeReplicationTransferStatOutput) ElementType

func (VolumeReplicationTransferStatOutput) LagDuration

(Output) The elapsed time since the creation of the snapshot on the source volume that was last replicated to the destination volume. Lag time represents the difference in age of the destination volume data in relation to the source volume data.

func (VolumeReplicationTransferStatOutput) LastTransferBytes

(Output) Size of last completed transfer in bytes.

func (VolumeReplicationTransferStatOutput) LastTransferDuration

(Output) Time taken during last completed transfer.

func (VolumeReplicationTransferStatOutput) LastTransferEndTime

(Output) Time when last transfer completed. A timestamp in RFC3339 UTC "Zulu" format. Examples: "2023-06-22T09:13:01.617Z".

func (VolumeReplicationTransferStatOutput) LastTransferError

(Output) A message describing the cause of the last transfer failure.

func (VolumeReplicationTransferStatOutput) ToVolumeReplicationTransferStatOutput

func (o VolumeReplicationTransferStatOutput) ToVolumeReplicationTransferStatOutput() VolumeReplicationTransferStatOutput

func (VolumeReplicationTransferStatOutput) ToVolumeReplicationTransferStatOutputWithContext

func (o VolumeReplicationTransferStatOutput) ToVolumeReplicationTransferStatOutputWithContext(ctx context.Context) VolumeReplicationTransferStatOutput

func (VolumeReplicationTransferStatOutput) TotalTransferDuration

(Output) Cumulative time taken across all transfers for the replication relationship.

func (VolumeReplicationTransferStatOutput) TransferBytes

(Output) Cumulative bytes transferred so far for the replication relationship.

func (VolumeReplicationTransferStatOutput) UpdateTime

(Output) Time when progress was updated last. A timestamp in RFC3339 UTC "Zulu" format. Examples: "2023-06-22T09:13:01.617Z".

type VolumeRestoreParameters

type VolumeRestoreParameters struct {
	// Full name of the snapshot to use for creating this volume.
	// `sourceSnapshot` and `sourceBackup` cannot be used simultaneously.
	// Format: `projects/{{project}}/locations/{{location}}/backupVaults/{{backupVaultId}}/backups/{{backup}}`.
	SourceBackup *string `pulumi:"sourceBackup"`
	// Full name of the snapshot to use for creating this volume.
	// `sourceSnapshot` and `sourceBackup` cannot be used simultaneously.
	// Format: `projects/{{project}}/locations/{{location}}/volumes/{{volume}}/snapshots/{{snapshot}}`.
	SourceSnapshot *string `pulumi:"sourceSnapshot"`
}

type VolumeRestoreParametersArgs

type VolumeRestoreParametersArgs struct {
	// Full name of the snapshot to use for creating this volume.
	// `sourceSnapshot` and `sourceBackup` cannot be used simultaneously.
	// Format: `projects/{{project}}/locations/{{location}}/backupVaults/{{backupVaultId}}/backups/{{backup}}`.
	SourceBackup pulumi.StringPtrInput `pulumi:"sourceBackup"`
	// Full name of the snapshot to use for creating this volume.
	// `sourceSnapshot` and `sourceBackup` cannot be used simultaneously.
	// Format: `projects/{{project}}/locations/{{location}}/volumes/{{volume}}/snapshots/{{snapshot}}`.
	SourceSnapshot pulumi.StringPtrInput `pulumi:"sourceSnapshot"`
}

func (VolumeRestoreParametersArgs) ElementType

func (VolumeRestoreParametersArgs) ToVolumeRestoreParametersOutput

func (i VolumeRestoreParametersArgs) ToVolumeRestoreParametersOutput() VolumeRestoreParametersOutput

func (VolumeRestoreParametersArgs) ToVolumeRestoreParametersOutputWithContext

func (i VolumeRestoreParametersArgs) ToVolumeRestoreParametersOutputWithContext(ctx context.Context) VolumeRestoreParametersOutput

func (VolumeRestoreParametersArgs) ToVolumeRestoreParametersPtrOutput

func (i VolumeRestoreParametersArgs) ToVolumeRestoreParametersPtrOutput() VolumeRestoreParametersPtrOutput

func (VolumeRestoreParametersArgs) ToVolumeRestoreParametersPtrOutputWithContext

func (i VolumeRestoreParametersArgs) ToVolumeRestoreParametersPtrOutputWithContext(ctx context.Context) VolumeRestoreParametersPtrOutput

type VolumeRestoreParametersInput

type VolumeRestoreParametersInput interface {
	pulumi.Input

	ToVolumeRestoreParametersOutput() VolumeRestoreParametersOutput
	ToVolumeRestoreParametersOutputWithContext(context.Context) VolumeRestoreParametersOutput
}

VolumeRestoreParametersInput is an input type that accepts VolumeRestoreParametersArgs and VolumeRestoreParametersOutput values. You can construct a concrete instance of `VolumeRestoreParametersInput` via:

VolumeRestoreParametersArgs{...}

type VolumeRestoreParametersOutput

type VolumeRestoreParametersOutput struct{ *pulumi.OutputState }

func (VolumeRestoreParametersOutput) ElementType

func (VolumeRestoreParametersOutput) SourceBackup

Full name of the snapshot to use for creating this volume. `sourceSnapshot` and `sourceBackup` cannot be used simultaneously. Format: `projects/{{project}}/locations/{{location}}/backupVaults/{{backupVaultId}}/backups/{{backup}}`.

func (VolumeRestoreParametersOutput) SourceSnapshot

Full name of the snapshot to use for creating this volume. `sourceSnapshot` and `sourceBackup` cannot be used simultaneously. Format: `projects/{{project}}/locations/{{location}}/volumes/{{volume}}/snapshots/{{snapshot}}`.

func (VolumeRestoreParametersOutput) ToVolumeRestoreParametersOutput

func (o VolumeRestoreParametersOutput) ToVolumeRestoreParametersOutput() VolumeRestoreParametersOutput

func (VolumeRestoreParametersOutput) ToVolumeRestoreParametersOutputWithContext

func (o VolumeRestoreParametersOutput) ToVolumeRestoreParametersOutputWithContext(ctx context.Context) VolumeRestoreParametersOutput

func (VolumeRestoreParametersOutput) ToVolumeRestoreParametersPtrOutput

func (o VolumeRestoreParametersOutput) ToVolumeRestoreParametersPtrOutput() VolumeRestoreParametersPtrOutput

func (VolumeRestoreParametersOutput) ToVolumeRestoreParametersPtrOutputWithContext

func (o VolumeRestoreParametersOutput) ToVolumeRestoreParametersPtrOutputWithContext(ctx context.Context) VolumeRestoreParametersPtrOutput

type VolumeRestoreParametersPtrInput

type VolumeRestoreParametersPtrInput interface {
	pulumi.Input

	ToVolumeRestoreParametersPtrOutput() VolumeRestoreParametersPtrOutput
	ToVolumeRestoreParametersPtrOutputWithContext(context.Context) VolumeRestoreParametersPtrOutput
}

VolumeRestoreParametersPtrInput is an input type that accepts VolumeRestoreParametersArgs, VolumeRestoreParametersPtr and VolumeRestoreParametersPtrOutput values. You can construct a concrete instance of `VolumeRestoreParametersPtrInput` via:

        VolumeRestoreParametersArgs{...}

or:

        nil

type VolumeRestoreParametersPtrOutput

type VolumeRestoreParametersPtrOutput struct{ *pulumi.OutputState }

func (VolumeRestoreParametersPtrOutput) Elem

func (VolumeRestoreParametersPtrOutput) ElementType

func (VolumeRestoreParametersPtrOutput) SourceBackup

Full name of the snapshot to use for creating this volume. `sourceSnapshot` and `sourceBackup` cannot be used simultaneously. Format: `projects/{{project}}/locations/{{location}}/backupVaults/{{backupVaultId}}/backups/{{backup}}`.

func (VolumeRestoreParametersPtrOutput) SourceSnapshot

Full name of the snapshot to use for creating this volume. `sourceSnapshot` and `sourceBackup` cannot be used simultaneously. Format: `projects/{{project}}/locations/{{location}}/volumes/{{volume}}/snapshots/{{snapshot}}`.

func (VolumeRestoreParametersPtrOutput) ToVolumeRestoreParametersPtrOutput

func (o VolumeRestoreParametersPtrOutput) ToVolumeRestoreParametersPtrOutput() VolumeRestoreParametersPtrOutput

func (VolumeRestoreParametersPtrOutput) ToVolumeRestoreParametersPtrOutputWithContext

func (o VolumeRestoreParametersPtrOutput) ToVolumeRestoreParametersPtrOutputWithContext(ctx context.Context) VolumeRestoreParametersPtrOutput

type VolumeSnapshot

type VolumeSnapshot struct {
	pulumi.CustomResourceState

	// Description for the snapshot.
	Description pulumi.StringPtrOutput `pulumi:"description"`
	// All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
	EffectiveLabels pulumi.StringMapOutput `pulumi:"effectiveLabels"`
	// Labels as key value pairs. Example: `{ "owner": "Bob", "department": "finance", "purpose": "testing" }`.
	//
	// **Note**: This field is non-authoritative, and will only manage the labels present in your configuration.
	// Please refer to the field `effectiveLabels` for all of the labels present on the resource.
	Labels pulumi.StringMapOutput `pulumi:"labels"`
	// Name of the snapshot location. Snapshots are child resources of volumes and live in the same location.
	Location pulumi.StringOutput `pulumi:"location"`
	// The name of the snapshot.
	//
	// ***
	Name pulumi.StringOutput `pulumi:"name"`
	// The ID of the project in which the resource belongs.
	// If it is not provided, the provider project is used.
	Project pulumi.StringOutput `pulumi:"project"`
	// The combination of labels configured directly on the resource
	// and default labels configured on the provider.
	PulumiLabels pulumi.StringMapOutput `pulumi:"pulumiLabels"`
	// Storage used to store blocks unique to this snapshot.
	UsedBytes pulumi.IntOutput `pulumi:"usedBytes"`
	// The name of the volume to create the snapshot in.
	VolumeName pulumi.StringOutput `pulumi:"volumeName"`
}

NetApp Volumes helps you manage your data usage with snapshots that can quickly restore lost data. Snapshots are point-in-time versions of your volume's content. They are resources of volumes and are instant captures of your data that consume space only for modified data. Because data changes over time, snapshots usually consume more space as they get older. NetApp Volumes volumes use just-in-time copy-on-write so that unmodified files in snapshots don't consume any of the volume's capacity.

To get more information about VolumeSnapshot, see:

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

## Example Usage

### Volume Snapshot Create

```go package main

import (

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

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_default, err := compute.LookupNetwork(ctx, &compute.LookupNetworkArgs{
			Name: "test-network",
		}, nil)
		if err != nil {
			return err
		}
		defaultStoragePool, err := netapp.NewStoragePool(ctx, "default", &netapp.StoragePoolArgs{
			Name:         pulumi.String("test-pool"),
			Location:     pulumi.String("us-west2"),
			ServiceLevel: pulumi.String("PREMIUM"),
			CapacityGib:  pulumi.String("2048"),
			Network:      pulumi.String(_default.Id),
		})
		if err != nil {
			return err
		}
		defaultVolume, err := netapp.NewVolume(ctx, "default", &netapp.VolumeArgs{
			Location:    defaultStoragePool.Location,
			Name:        pulumi.String("test-volume"),
			CapacityGib: pulumi.String("100"),
			ShareName:   pulumi.String("test-volume"),
			StoragePool: defaultStoragePool.Name,
			Protocols: pulumi.StringArray{
				pulumi.String("NFSV3"),
			},
		})
		if err != nil {
			return err
		}
		_, err = netapp.NewVolumeSnapshot(ctx, "test_snapshot", &netapp.VolumeSnapshotArgs{
			Location:   defaultVolume.Location,
			VolumeName: defaultVolume.Name,
			Name:       pulumi.String("testvolumesnap"),
		}, pulumi.DependsOn([]pulumi.Resource{
			defaultVolume,
		}))
		if err != nil {
			return err
		}
		return nil
	})
}

```

## Import

VolumeSnapshot can be imported using any of these accepted formats:

* `projects/{{project}}/locations/{{location}}/volumes/{{volume_name}}/snapshots/{{name}}`

* `{{project}}/{{location}}/{{volume_name}}/{{name}}`

* `{{location}}/{{volume_name}}/{{name}}`

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

```sh $ pulumi import gcp:netapp/volumeSnapshot:VolumeSnapshot default projects/{{project}}/locations/{{location}}/volumes/{{volume_name}}/snapshots/{{name}} ```

```sh $ pulumi import gcp:netapp/volumeSnapshot:VolumeSnapshot default {{project}}/{{location}}/{{volume_name}}/{{name}} ```

```sh $ pulumi import gcp:netapp/volumeSnapshot:VolumeSnapshot default {{location}}/{{volume_name}}/{{name}} ```

func GetVolumeSnapshot

func GetVolumeSnapshot(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *VolumeSnapshotState, opts ...pulumi.ResourceOption) (*VolumeSnapshot, error)

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

func NewVolumeSnapshot

func NewVolumeSnapshot(ctx *pulumi.Context,
	name string, args *VolumeSnapshotArgs, opts ...pulumi.ResourceOption) (*VolumeSnapshot, error)

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

func (*VolumeSnapshot) ElementType

func (*VolumeSnapshot) ElementType() reflect.Type

func (*VolumeSnapshot) ToVolumeSnapshotOutput

func (i *VolumeSnapshot) ToVolumeSnapshotOutput() VolumeSnapshotOutput

func (*VolumeSnapshot) ToVolumeSnapshotOutputWithContext

func (i *VolumeSnapshot) ToVolumeSnapshotOutputWithContext(ctx context.Context) VolumeSnapshotOutput

type VolumeSnapshotArgs

type VolumeSnapshotArgs struct {
	// Description for the snapshot.
	Description pulumi.StringPtrInput
	// Labels as key value pairs. Example: `{ "owner": "Bob", "department": "finance", "purpose": "testing" }`.
	//
	// **Note**: This field is non-authoritative, and will only manage the labels present in your configuration.
	// Please refer to the field `effectiveLabels` for all of the labels present on the resource.
	Labels pulumi.StringMapInput
	// Name of the snapshot location. Snapshots are child resources of volumes and live in the same location.
	Location pulumi.StringInput
	// The name of the snapshot.
	//
	// ***
	Name pulumi.StringPtrInput
	// The ID of the project in which the resource belongs.
	// If it is not provided, the provider project is used.
	Project pulumi.StringPtrInput
	// The name of the volume to create the snapshot in.
	VolumeName pulumi.StringInput
}

The set of arguments for constructing a VolumeSnapshot resource.

func (VolumeSnapshotArgs) ElementType

func (VolumeSnapshotArgs) ElementType() reflect.Type

type VolumeSnapshotArray

type VolumeSnapshotArray []VolumeSnapshotInput

func (VolumeSnapshotArray) ElementType

func (VolumeSnapshotArray) ElementType() reflect.Type

func (VolumeSnapshotArray) ToVolumeSnapshotArrayOutput

func (i VolumeSnapshotArray) ToVolumeSnapshotArrayOutput() VolumeSnapshotArrayOutput

func (VolumeSnapshotArray) ToVolumeSnapshotArrayOutputWithContext

func (i VolumeSnapshotArray) ToVolumeSnapshotArrayOutputWithContext(ctx context.Context) VolumeSnapshotArrayOutput

type VolumeSnapshotArrayInput

type VolumeSnapshotArrayInput interface {
	pulumi.Input

	ToVolumeSnapshotArrayOutput() VolumeSnapshotArrayOutput
	ToVolumeSnapshotArrayOutputWithContext(context.Context) VolumeSnapshotArrayOutput
}

VolumeSnapshotArrayInput is an input type that accepts VolumeSnapshotArray and VolumeSnapshotArrayOutput values. You can construct a concrete instance of `VolumeSnapshotArrayInput` via:

VolumeSnapshotArray{ VolumeSnapshotArgs{...} }

type VolumeSnapshotArrayOutput

type VolumeSnapshotArrayOutput struct{ *pulumi.OutputState }

func (VolumeSnapshotArrayOutput) ElementType

func (VolumeSnapshotArrayOutput) ElementType() reflect.Type

func (VolumeSnapshotArrayOutput) Index

func (VolumeSnapshotArrayOutput) ToVolumeSnapshotArrayOutput

func (o VolumeSnapshotArrayOutput) ToVolumeSnapshotArrayOutput() VolumeSnapshotArrayOutput

func (VolumeSnapshotArrayOutput) ToVolumeSnapshotArrayOutputWithContext

func (o VolumeSnapshotArrayOutput) ToVolumeSnapshotArrayOutputWithContext(ctx context.Context) VolumeSnapshotArrayOutput

type VolumeSnapshotInput

type VolumeSnapshotInput interface {
	pulumi.Input

	ToVolumeSnapshotOutput() VolumeSnapshotOutput
	ToVolumeSnapshotOutputWithContext(ctx context.Context) VolumeSnapshotOutput
}

type VolumeSnapshotMap

type VolumeSnapshotMap map[string]VolumeSnapshotInput

func (VolumeSnapshotMap) ElementType

func (VolumeSnapshotMap) ElementType() reflect.Type

func (VolumeSnapshotMap) ToVolumeSnapshotMapOutput

func (i VolumeSnapshotMap) ToVolumeSnapshotMapOutput() VolumeSnapshotMapOutput

func (VolumeSnapshotMap) ToVolumeSnapshotMapOutputWithContext

func (i VolumeSnapshotMap) ToVolumeSnapshotMapOutputWithContext(ctx context.Context) VolumeSnapshotMapOutput

type VolumeSnapshotMapInput

type VolumeSnapshotMapInput interface {
	pulumi.Input

	ToVolumeSnapshotMapOutput() VolumeSnapshotMapOutput
	ToVolumeSnapshotMapOutputWithContext(context.Context) VolumeSnapshotMapOutput
}

VolumeSnapshotMapInput is an input type that accepts VolumeSnapshotMap and VolumeSnapshotMapOutput values. You can construct a concrete instance of `VolumeSnapshotMapInput` via:

VolumeSnapshotMap{ "key": VolumeSnapshotArgs{...} }

type VolumeSnapshotMapOutput

type VolumeSnapshotMapOutput struct{ *pulumi.OutputState }

func (VolumeSnapshotMapOutput) ElementType

func (VolumeSnapshotMapOutput) ElementType() reflect.Type

func (VolumeSnapshotMapOutput) MapIndex

func (VolumeSnapshotMapOutput) ToVolumeSnapshotMapOutput

func (o VolumeSnapshotMapOutput) ToVolumeSnapshotMapOutput() VolumeSnapshotMapOutput

func (VolumeSnapshotMapOutput) ToVolumeSnapshotMapOutputWithContext

func (o VolumeSnapshotMapOutput) ToVolumeSnapshotMapOutputWithContext(ctx context.Context) VolumeSnapshotMapOutput

type VolumeSnapshotOutput

type VolumeSnapshotOutput struct{ *pulumi.OutputState }

func (VolumeSnapshotOutput) Description

Description for the snapshot.

func (VolumeSnapshotOutput) EffectiveLabels

func (o VolumeSnapshotOutput) EffectiveLabels() pulumi.StringMapOutput

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

func (VolumeSnapshotOutput) ElementType

func (VolumeSnapshotOutput) ElementType() reflect.Type

func (VolumeSnapshotOutput) Labels

Labels as key value pairs. Example: `{ "owner": "Bob", "department": "finance", "purpose": "testing" }`.

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

func (VolumeSnapshotOutput) Location

Name of the snapshot location. Snapshots are child resources of volumes and live in the same location.

func (VolumeSnapshotOutput) Name

The name of the snapshot.

***

func (VolumeSnapshotOutput) Project

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

func (VolumeSnapshotOutput) PulumiLabels

func (o VolumeSnapshotOutput) PulumiLabels() pulumi.StringMapOutput

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

func (VolumeSnapshotOutput) ToVolumeSnapshotOutput

func (o VolumeSnapshotOutput) ToVolumeSnapshotOutput() VolumeSnapshotOutput

func (VolumeSnapshotOutput) ToVolumeSnapshotOutputWithContext

func (o VolumeSnapshotOutput) ToVolumeSnapshotOutputWithContext(ctx context.Context) VolumeSnapshotOutput

func (VolumeSnapshotOutput) UsedBytes

func (o VolumeSnapshotOutput) UsedBytes() pulumi.IntOutput

Storage used to store blocks unique to this snapshot.

func (VolumeSnapshotOutput) VolumeName

func (o VolumeSnapshotOutput) VolumeName() pulumi.StringOutput

The name of the volume to create the snapshot in.

type VolumeSnapshotPolicy

type VolumeSnapshotPolicy struct {
	// Daily schedule policy.
	// Structure is documented below.
	DailySchedule *VolumeSnapshotPolicyDailySchedule `pulumi:"dailySchedule"`
	// Enables automated snapshot creation according to defined schedule. Default is false.
	// To disable automatic snapshot creation you have to remove the whole snapshotPolicy block.
	Enabled *bool `pulumi:"enabled"`
	// Hourly schedule policy.
	// Structure is documented below.
	HourlySchedule *VolumeSnapshotPolicyHourlySchedule `pulumi:"hourlySchedule"`
	// Monthly schedule policy.
	// Structure is documented below.
	MonthlySchedule *VolumeSnapshotPolicyMonthlySchedule `pulumi:"monthlySchedule"`
	// Weekly schedule policy.
	// Structure is documented below.
	WeeklySchedule *VolumeSnapshotPolicyWeeklySchedule `pulumi:"weeklySchedule"`
}

type VolumeSnapshotPolicyArgs

type VolumeSnapshotPolicyArgs struct {
	// Daily schedule policy.
	// Structure is documented below.
	DailySchedule VolumeSnapshotPolicyDailySchedulePtrInput `pulumi:"dailySchedule"`
	// Enables automated snapshot creation according to defined schedule. Default is false.
	// To disable automatic snapshot creation you have to remove the whole snapshotPolicy block.
	Enabled pulumi.BoolPtrInput `pulumi:"enabled"`
	// Hourly schedule policy.
	// Structure is documented below.
	HourlySchedule VolumeSnapshotPolicyHourlySchedulePtrInput `pulumi:"hourlySchedule"`
	// Monthly schedule policy.
	// Structure is documented below.
	MonthlySchedule VolumeSnapshotPolicyMonthlySchedulePtrInput `pulumi:"monthlySchedule"`
	// Weekly schedule policy.
	// Structure is documented below.
	WeeklySchedule VolumeSnapshotPolicyWeeklySchedulePtrInput `pulumi:"weeklySchedule"`
}

func (VolumeSnapshotPolicyArgs) ElementType

func (VolumeSnapshotPolicyArgs) ElementType() reflect.Type

func (VolumeSnapshotPolicyArgs) ToVolumeSnapshotPolicyOutput

func (i VolumeSnapshotPolicyArgs) ToVolumeSnapshotPolicyOutput() VolumeSnapshotPolicyOutput

func (VolumeSnapshotPolicyArgs) ToVolumeSnapshotPolicyOutputWithContext

func (i VolumeSnapshotPolicyArgs) ToVolumeSnapshotPolicyOutputWithContext(ctx context.Context) VolumeSnapshotPolicyOutput

func (VolumeSnapshotPolicyArgs) ToVolumeSnapshotPolicyPtrOutput

func (i VolumeSnapshotPolicyArgs) ToVolumeSnapshotPolicyPtrOutput() VolumeSnapshotPolicyPtrOutput

func (VolumeSnapshotPolicyArgs) ToVolumeSnapshotPolicyPtrOutputWithContext

func (i VolumeSnapshotPolicyArgs) ToVolumeSnapshotPolicyPtrOutputWithContext(ctx context.Context) VolumeSnapshotPolicyPtrOutput

type VolumeSnapshotPolicyDailySchedule

type VolumeSnapshotPolicyDailySchedule struct {
	// Set the hour to create the snapshot (0-23), defaults to midnight (0).
	Hour *int `pulumi:"hour"`
	// Set the minute of the hour to create the snapshot (0-59), defaults to the top of the hour (0).
	Minute *int `pulumi:"minute"`
	// The maximum number of snapshots to keep for the daily schedule.
	SnapshotsToKeep int `pulumi:"snapshotsToKeep"`
}

type VolumeSnapshotPolicyDailyScheduleArgs

type VolumeSnapshotPolicyDailyScheduleArgs struct {
	// Set the hour to create the snapshot (0-23), defaults to midnight (0).
	Hour pulumi.IntPtrInput `pulumi:"hour"`
	// Set the minute of the hour to create the snapshot (0-59), defaults to the top of the hour (0).
	Minute pulumi.IntPtrInput `pulumi:"minute"`
	// The maximum number of snapshots to keep for the daily schedule.
	SnapshotsToKeep pulumi.IntInput `pulumi:"snapshotsToKeep"`
}

func (VolumeSnapshotPolicyDailyScheduleArgs) ElementType

func (VolumeSnapshotPolicyDailyScheduleArgs) ToVolumeSnapshotPolicyDailyScheduleOutput

func (i VolumeSnapshotPolicyDailyScheduleArgs) ToVolumeSnapshotPolicyDailyScheduleOutput() VolumeSnapshotPolicyDailyScheduleOutput

func (VolumeSnapshotPolicyDailyScheduleArgs) ToVolumeSnapshotPolicyDailyScheduleOutputWithContext

func (i VolumeSnapshotPolicyDailyScheduleArgs) ToVolumeSnapshotPolicyDailyScheduleOutputWithContext(ctx context.Context) VolumeSnapshotPolicyDailyScheduleOutput

func (VolumeSnapshotPolicyDailyScheduleArgs) ToVolumeSnapshotPolicyDailySchedulePtrOutput

func (i VolumeSnapshotPolicyDailyScheduleArgs) ToVolumeSnapshotPolicyDailySchedulePtrOutput() VolumeSnapshotPolicyDailySchedulePtrOutput

func (VolumeSnapshotPolicyDailyScheduleArgs) ToVolumeSnapshotPolicyDailySchedulePtrOutputWithContext

func (i VolumeSnapshotPolicyDailyScheduleArgs) ToVolumeSnapshotPolicyDailySchedulePtrOutputWithContext(ctx context.Context) VolumeSnapshotPolicyDailySchedulePtrOutput

type VolumeSnapshotPolicyDailyScheduleInput

type VolumeSnapshotPolicyDailyScheduleInput interface {
	pulumi.Input

	ToVolumeSnapshotPolicyDailyScheduleOutput() VolumeSnapshotPolicyDailyScheduleOutput
	ToVolumeSnapshotPolicyDailyScheduleOutputWithContext(context.Context) VolumeSnapshotPolicyDailyScheduleOutput
}

VolumeSnapshotPolicyDailyScheduleInput is an input type that accepts VolumeSnapshotPolicyDailyScheduleArgs and VolumeSnapshotPolicyDailyScheduleOutput values. You can construct a concrete instance of `VolumeSnapshotPolicyDailyScheduleInput` via:

VolumeSnapshotPolicyDailyScheduleArgs{...}

type VolumeSnapshotPolicyDailyScheduleOutput

type VolumeSnapshotPolicyDailyScheduleOutput struct{ *pulumi.OutputState }

func (VolumeSnapshotPolicyDailyScheduleOutput) ElementType

func (VolumeSnapshotPolicyDailyScheduleOutput) Hour

Set the hour to create the snapshot (0-23), defaults to midnight (0).

func (VolumeSnapshotPolicyDailyScheduleOutput) Minute

Set the minute of the hour to create the snapshot (0-59), defaults to the top of the hour (0).

func (VolumeSnapshotPolicyDailyScheduleOutput) SnapshotsToKeep

The maximum number of snapshots to keep for the daily schedule.

func (VolumeSnapshotPolicyDailyScheduleOutput) ToVolumeSnapshotPolicyDailyScheduleOutput

func (o VolumeSnapshotPolicyDailyScheduleOutput) ToVolumeSnapshotPolicyDailyScheduleOutput() VolumeSnapshotPolicyDailyScheduleOutput

func (VolumeSnapshotPolicyDailyScheduleOutput) ToVolumeSnapshotPolicyDailyScheduleOutputWithContext

func (o VolumeSnapshotPolicyDailyScheduleOutput) ToVolumeSnapshotPolicyDailyScheduleOutputWithContext(ctx context.Context) VolumeSnapshotPolicyDailyScheduleOutput

func (VolumeSnapshotPolicyDailyScheduleOutput) ToVolumeSnapshotPolicyDailySchedulePtrOutput

func (o VolumeSnapshotPolicyDailyScheduleOutput) ToVolumeSnapshotPolicyDailySchedulePtrOutput() VolumeSnapshotPolicyDailySchedulePtrOutput

func (VolumeSnapshotPolicyDailyScheduleOutput) ToVolumeSnapshotPolicyDailySchedulePtrOutputWithContext

func (o VolumeSnapshotPolicyDailyScheduleOutput) ToVolumeSnapshotPolicyDailySchedulePtrOutputWithContext(ctx context.Context) VolumeSnapshotPolicyDailySchedulePtrOutput

type VolumeSnapshotPolicyDailySchedulePtrInput

type VolumeSnapshotPolicyDailySchedulePtrInput interface {
	pulumi.Input

	ToVolumeSnapshotPolicyDailySchedulePtrOutput() VolumeSnapshotPolicyDailySchedulePtrOutput
	ToVolumeSnapshotPolicyDailySchedulePtrOutputWithContext(context.Context) VolumeSnapshotPolicyDailySchedulePtrOutput
}

VolumeSnapshotPolicyDailySchedulePtrInput is an input type that accepts VolumeSnapshotPolicyDailyScheduleArgs, VolumeSnapshotPolicyDailySchedulePtr and VolumeSnapshotPolicyDailySchedulePtrOutput values. You can construct a concrete instance of `VolumeSnapshotPolicyDailySchedulePtrInput` via:

        VolumeSnapshotPolicyDailyScheduleArgs{...}

or:

        nil

type VolumeSnapshotPolicyDailySchedulePtrOutput

type VolumeSnapshotPolicyDailySchedulePtrOutput struct{ *pulumi.OutputState }

func (VolumeSnapshotPolicyDailySchedulePtrOutput) Elem

func (VolumeSnapshotPolicyDailySchedulePtrOutput) ElementType

func (VolumeSnapshotPolicyDailySchedulePtrOutput) Hour

Set the hour to create the snapshot (0-23), defaults to midnight (0).

func (VolumeSnapshotPolicyDailySchedulePtrOutput) Minute

Set the minute of the hour to create the snapshot (0-59), defaults to the top of the hour (0).

func (VolumeSnapshotPolicyDailySchedulePtrOutput) SnapshotsToKeep

The maximum number of snapshots to keep for the daily schedule.

func (VolumeSnapshotPolicyDailySchedulePtrOutput) ToVolumeSnapshotPolicyDailySchedulePtrOutput

func (o VolumeSnapshotPolicyDailySchedulePtrOutput) ToVolumeSnapshotPolicyDailySchedulePtrOutput() VolumeSnapshotPolicyDailySchedulePtrOutput

func (VolumeSnapshotPolicyDailySchedulePtrOutput) ToVolumeSnapshotPolicyDailySchedulePtrOutputWithContext

func (o VolumeSnapshotPolicyDailySchedulePtrOutput) ToVolumeSnapshotPolicyDailySchedulePtrOutputWithContext(ctx context.Context) VolumeSnapshotPolicyDailySchedulePtrOutput

type VolumeSnapshotPolicyHourlySchedule

type VolumeSnapshotPolicyHourlySchedule struct {
	// Set the minute of the hour to create the snapshot (0-59), defaults to the top of the hour (0).
	Minute *int `pulumi:"minute"`
	// The maximum number of snapshots to keep for the hourly schedule.
	SnapshotsToKeep int `pulumi:"snapshotsToKeep"`
}

type VolumeSnapshotPolicyHourlyScheduleArgs

type VolumeSnapshotPolicyHourlyScheduleArgs struct {
	// Set the minute of the hour to create the snapshot (0-59), defaults to the top of the hour (0).
	Minute pulumi.IntPtrInput `pulumi:"minute"`
	// The maximum number of snapshots to keep for the hourly schedule.
	SnapshotsToKeep pulumi.IntInput `pulumi:"snapshotsToKeep"`
}

func (VolumeSnapshotPolicyHourlyScheduleArgs) ElementType

func (VolumeSnapshotPolicyHourlyScheduleArgs) ToVolumeSnapshotPolicyHourlyScheduleOutput

func (i VolumeSnapshotPolicyHourlyScheduleArgs) ToVolumeSnapshotPolicyHourlyScheduleOutput() VolumeSnapshotPolicyHourlyScheduleOutput

func (VolumeSnapshotPolicyHourlyScheduleArgs) ToVolumeSnapshotPolicyHourlyScheduleOutputWithContext

func (i VolumeSnapshotPolicyHourlyScheduleArgs) ToVolumeSnapshotPolicyHourlyScheduleOutputWithContext(ctx context.Context) VolumeSnapshotPolicyHourlyScheduleOutput

func (VolumeSnapshotPolicyHourlyScheduleArgs) ToVolumeSnapshotPolicyHourlySchedulePtrOutput

func (i VolumeSnapshotPolicyHourlyScheduleArgs) ToVolumeSnapshotPolicyHourlySchedulePtrOutput() VolumeSnapshotPolicyHourlySchedulePtrOutput

func (VolumeSnapshotPolicyHourlyScheduleArgs) ToVolumeSnapshotPolicyHourlySchedulePtrOutputWithContext

func (i VolumeSnapshotPolicyHourlyScheduleArgs) ToVolumeSnapshotPolicyHourlySchedulePtrOutputWithContext(ctx context.Context) VolumeSnapshotPolicyHourlySchedulePtrOutput

type VolumeSnapshotPolicyHourlyScheduleInput

type VolumeSnapshotPolicyHourlyScheduleInput interface {
	pulumi.Input

	ToVolumeSnapshotPolicyHourlyScheduleOutput() VolumeSnapshotPolicyHourlyScheduleOutput
	ToVolumeSnapshotPolicyHourlyScheduleOutputWithContext(context.Context) VolumeSnapshotPolicyHourlyScheduleOutput
}

VolumeSnapshotPolicyHourlyScheduleInput is an input type that accepts VolumeSnapshotPolicyHourlyScheduleArgs and VolumeSnapshotPolicyHourlyScheduleOutput values. You can construct a concrete instance of `VolumeSnapshotPolicyHourlyScheduleInput` via:

VolumeSnapshotPolicyHourlyScheduleArgs{...}

type VolumeSnapshotPolicyHourlyScheduleOutput

type VolumeSnapshotPolicyHourlyScheduleOutput struct{ *pulumi.OutputState }

func (VolumeSnapshotPolicyHourlyScheduleOutput) ElementType

func (VolumeSnapshotPolicyHourlyScheduleOutput) Minute

Set the minute of the hour to create the snapshot (0-59), defaults to the top of the hour (0).

func (VolumeSnapshotPolicyHourlyScheduleOutput) SnapshotsToKeep

The maximum number of snapshots to keep for the hourly schedule.

func (VolumeSnapshotPolicyHourlyScheduleOutput) ToVolumeSnapshotPolicyHourlyScheduleOutput

func (o VolumeSnapshotPolicyHourlyScheduleOutput) ToVolumeSnapshotPolicyHourlyScheduleOutput() VolumeSnapshotPolicyHourlyScheduleOutput

func (VolumeSnapshotPolicyHourlyScheduleOutput) ToVolumeSnapshotPolicyHourlyScheduleOutputWithContext

func (o VolumeSnapshotPolicyHourlyScheduleOutput) ToVolumeSnapshotPolicyHourlyScheduleOutputWithContext(ctx context.Context) VolumeSnapshotPolicyHourlyScheduleOutput

func (VolumeSnapshotPolicyHourlyScheduleOutput) ToVolumeSnapshotPolicyHourlySchedulePtrOutput

func (o VolumeSnapshotPolicyHourlyScheduleOutput) ToVolumeSnapshotPolicyHourlySchedulePtrOutput() VolumeSnapshotPolicyHourlySchedulePtrOutput

func (VolumeSnapshotPolicyHourlyScheduleOutput) ToVolumeSnapshotPolicyHourlySchedulePtrOutputWithContext

func (o VolumeSnapshotPolicyHourlyScheduleOutput) ToVolumeSnapshotPolicyHourlySchedulePtrOutputWithContext(ctx context.Context) VolumeSnapshotPolicyHourlySchedulePtrOutput

type VolumeSnapshotPolicyHourlySchedulePtrInput

type VolumeSnapshotPolicyHourlySchedulePtrInput interface {
	pulumi.Input

	ToVolumeSnapshotPolicyHourlySchedulePtrOutput() VolumeSnapshotPolicyHourlySchedulePtrOutput
	ToVolumeSnapshotPolicyHourlySchedulePtrOutputWithContext(context.Context) VolumeSnapshotPolicyHourlySchedulePtrOutput
}

VolumeSnapshotPolicyHourlySchedulePtrInput is an input type that accepts VolumeSnapshotPolicyHourlyScheduleArgs, VolumeSnapshotPolicyHourlySchedulePtr and VolumeSnapshotPolicyHourlySchedulePtrOutput values. You can construct a concrete instance of `VolumeSnapshotPolicyHourlySchedulePtrInput` via:

        VolumeSnapshotPolicyHourlyScheduleArgs{...}

or:

        nil

type VolumeSnapshotPolicyHourlySchedulePtrOutput

type VolumeSnapshotPolicyHourlySchedulePtrOutput struct{ *pulumi.OutputState }

func (VolumeSnapshotPolicyHourlySchedulePtrOutput) Elem

func (VolumeSnapshotPolicyHourlySchedulePtrOutput) ElementType

func (VolumeSnapshotPolicyHourlySchedulePtrOutput) Minute

Set the minute of the hour to create the snapshot (0-59), defaults to the top of the hour (0).

func (VolumeSnapshotPolicyHourlySchedulePtrOutput) SnapshotsToKeep

The maximum number of snapshots to keep for the hourly schedule.

func (VolumeSnapshotPolicyHourlySchedulePtrOutput) ToVolumeSnapshotPolicyHourlySchedulePtrOutput

func (o VolumeSnapshotPolicyHourlySchedulePtrOutput) ToVolumeSnapshotPolicyHourlySchedulePtrOutput() VolumeSnapshotPolicyHourlySchedulePtrOutput

func (VolumeSnapshotPolicyHourlySchedulePtrOutput) ToVolumeSnapshotPolicyHourlySchedulePtrOutputWithContext

func (o VolumeSnapshotPolicyHourlySchedulePtrOutput) ToVolumeSnapshotPolicyHourlySchedulePtrOutputWithContext(ctx context.Context) VolumeSnapshotPolicyHourlySchedulePtrOutput

type VolumeSnapshotPolicyInput

type VolumeSnapshotPolicyInput interface {
	pulumi.Input

	ToVolumeSnapshotPolicyOutput() VolumeSnapshotPolicyOutput
	ToVolumeSnapshotPolicyOutputWithContext(context.Context) VolumeSnapshotPolicyOutput
}

VolumeSnapshotPolicyInput is an input type that accepts VolumeSnapshotPolicyArgs and VolumeSnapshotPolicyOutput values. You can construct a concrete instance of `VolumeSnapshotPolicyInput` via:

VolumeSnapshotPolicyArgs{...}

type VolumeSnapshotPolicyMonthlySchedule

type VolumeSnapshotPolicyMonthlySchedule struct {
	// Set the day or days of the month to make a snapshot (1-31). Accepts a comma separated number of days. Defaults to '1'.
	DaysOfMonth *string `pulumi:"daysOfMonth"`
	// Set the hour to create the snapshot (0-23), defaults to midnight (0).
	Hour *int `pulumi:"hour"`
	// Set the minute of the hour to create the snapshot (0-59), defaults to the top of the hour (0).
	Minute *int `pulumi:"minute"`
	// The maximum number of snapshots to keep for the monthly schedule
	SnapshotsToKeep int `pulumi:"snapshotsToKeep"`
}

type VolumeSnapshotPolicyMonthlyScheduleArgs

type VolumeSnapshotPolicyMonthlyScheduleArgs struct {
	// Set the day or days of the month to make a snapshot (1-31). Accepts a comma separated number of days. Defaults to '1'.
	DaysOfMonth pulumi.StringPtrInput `pulumi:"daysOfMonth"`
	// Set the hour to create the snapshot (0-23), defaults to midnight (0).
	Hour pulumi.IntPtrInput `pulumi:"hour"`
	// Set the minute of the hour to create the snapshot (0-59), defaults to the top of the hour (0).
	Minute pulumi.IntPtrInput `pulumi:"minute"`
	// The maximum number of snapshots to keep for the monthly schedule
	SnapshotsToKeep pulumi.IntInput `pulumi:"snapshotsToKeep"`
}

func (VolumeSnapshotPolicyMonthlyScheduleArgs) ElementType

func (VolumeSnapshotPolicyMonthlyScheduleArgs) ToVolumeSnapshotPolicyMonthlyScheduleOutput

func (i VolumeSnapshotPolicyMonthlyScheduleArgs) ToVolumeSnapshotPolicyMonthlyScheduleOutput() VolumeSnapshotPolicyMonthlyScheduleOutput

func (VolumeSnapshotPolicyMonthlyScheduleArgs) ToVolumeSnapshotPolicyMonthlyScheduleOutputWithContext

func (i VolumeSnapshotPolicyMonthlyScheduleArgs) ToVolumeSnapshotPolicyMonthlyScheduleOutputWithContext(ctx context.Context) VolumeSnapshotPolicyMonthlyScheduleOutput

func (VolumeSnapshotPolicyMonthlyScheduleArgs) ToVolumeSnapshotPolicyMonthlySchedulePtrOutput

func (i VolumeSnapshotPolicyMonthlyScheduleArgs) ToVolumeSnapshotPolicyMonthlySchedulePtrOutput() VolumeSnapshotPolicyMonthlySchedulePtrOutput

func (VolumeSnapshotPolicyMonthlyScheduleArgs) ToVolumeSnapshotPolicyMonthlySchedulePtrOutputWithContext

func (i VolumeSnapshotPolicyMonthlyScheduleArgs) ToVolumeSnapshotPolicyMonthlySchedulePtrOutputWithContext(ctx context.Context) VolumeSnapshotPolicyMonthlySchedulePtrOutput

type VolumeSnapshotPolicyMonthlyScheduleInput

type VolumeSnapshotPolicyMonthlyScheduleInput interface {
	pulumi.Input

	ToVolumeSnapshotPolicyMonthlyScheduleOutput() VolumeSnapshotPolicyMonthlyScheduleOutput
	ToVolumeSnapshotPolicyMonthlyScheduleOutputWithContext(context.Context) VolumeSnapshotPolicyMonthlyScheduleOutput
}

VolumeSnapshotPolicyMonthlyScheduleInput is an input type that accepts VolumeSnapshotPolicyMonthlyScheduleArgs and VolumeSnapshotPolicyMonthlyScheduleOutput values. You can construct a concrete instance of `VolumeSnapshotPolicyMonthlyScheduleInput` via:

VolumeSnapshotPolicyMonthlyScheduleArgs{...}

type VolumeSnapshotPolicyMonthlyScheduleOutput

type VolumeSnapshotPolicyMonthlyScheduleOutput struct{ *pulumi.OutputState }

func (VolumeSnapshotPolicyMonthlyScheduleOutput) DaysOfMonth

Set the day or days of the month to make a snapshot (1-31). Accepts a comma separated number of days. Defaults to '1'.

func (VolumeSnapshotPolicyMonthlyScheduleOutput) ElementType

func (VolumeSnapshotPolicyMonthlyScheduleOutput) Hour

Set the hour to create the snapshot (0-23), defaults to midnight (0).

func (VolumeSnapshotPolicyMonthlyScheduleOutput) Minute

Set the minute of the hour to create the snapshot (0-59), defaults to the top of the hour (0).

func (VolumeSnapshotPolicyMonthlyScheduleOutput) SnapshotsToKeep

The maximum number of snapshots to keep for the monthly schedule

func (VolumeSnapshotPolicyMonthlyScheduleOutput) ToVolumeSnapshotPolicyMonthlyScheduleOutput

func (o VolumeSnapshotPolicyMonthlyScheduleOutput) ToVolumeSnapshotPolicyMonthlyScheduleOutput() VolumeSnapshotPolicyMonthlyScheduleOutput

func (VolumeSnapshotPolicyMonthlyScheduleOutput) ToVolumeSnapshotPolicyMonthlyScheduleOutputWithContext

func (o VolumeSnapshotPolicyMonthlyScheduleOutput) ToVolumeSnapshotPolicyMonthlyScheduleOutputWithContext(ctx context.Context) VolumeSnapshotPolicyMonthlyScheduleOutput

func (VolumeSnapshotPolicyMonthlyScheduleOutput) ToVolumeSnapshotPolicyMonthlySchedulePtrOutput

func (o VolumeSnapshotPolicyMonthlyScheduleOutput) ToVolumeSnapshotPolicyMonthlySchedulePtrOutput() VolumeSnapshotPolicyMonthlySchedulePtrOutput

func (VolumeSnapshotPolicyMonthlyScheduleOutput) ToVolumeSnapshotPolicyMonthlySchedulePtrOutputWithContext

func (o VolumeSnapshotPolicyMonthlyScheduleOutput) ToVolumeSnapshotPolicyMonthlySchedulePtrOutputWithContext(ctx context.Context) VolumeSnapshotPolicyMonthlySchedulePtrOutput

type VolumeSnapshotPolicyMonthlySchedulePtrInput

type VolumeSnapshotPolicyMonthlySchedulePtrInput interface {
	pulumi.Input

	ToVolumeSnapshotPolicyMonthlySchedulePtrOutput() VolumeSnapshotPolicyMonthlySchedulePtrOutput
	ToVolumeSnapshotPolicyMonthlySchedulePtrOutputWithContext(context.Context) VolumeSnapshotPolicyMonthlySchedulePtrOutput
}

VolumeSnapshotPolicyMonthlySchedulePtrInput is an input type that accepts VolumeSnapshotPolicyMonthlyScheduleArgs, VolumeSnapshotPolicyMonthlySchedulePtr and VolumeSnapshotPolicyMonthlySchedulePtrOutput values. You can construct a concrete instance of `VolumeSnapshotPolicyMonthlySchedulePtrInput` via:

        VolumeSnapshotPolicyMonthlyScheduleArgs{...}

or:

        nil

type VolumeSnapshotPolicyMonthlySchedulePtrOutput

type VolumeSnapshotPolicyMonthlySchedulePtrOutput struct{ *pulumi.OutputState }

func (VolumeSnapshotPolicyMonthlySchedulePtrOutput) DaysOfMonth

Set the day or days of the month to make a snapshot (1-31). Accepts a comma separated number of days. Defaults to '1'.

func (VolumeSnapshotPolicyMonthlySchedulePtrOutput) Elem

func (VolumeSnapshotPolicyMonthlySchedulePtrOutput) ElementType

func (VolumeSnapshotPolicyMonthlySchedulePtrOutput) Hour

Set the hour to create the snapshot (0-23), defaults to midnight (0).

func (VolumeSnapshotPolicyMonthlySchedulePtrOutput) Minute

Set the minute of the hour to create the snapshot (0-59), defaults to the top of the hour (0).

func (VolumeSnapshotPolicyMonthlySchedulePtrOutput) SnapshotsToKeep

The maximum number of snapshots to keep for the monthly schedule

func (VolumeSnapshotPolicyMonthlySchedulePtrOutput) ToVolumeSnapshotPolicyMonthlySchedulePtrOutput

func (o VolumeSnapshotPolicyMonthlySchedulePtrOutput) ToVolumeSnapshotPolicyMonthlySchedulePtrOutput() VolumeSnapshotPolicyMonthlySchedulePtrOutput

func (VolumeSnapshotPolicyMonthlySchedulePtrOutput) ToVolumeSnapshotPolicyMonthlySchedulePtrOutputWithContext

func (o VolumeSnapshotPolicyMonthlySchedulePtrOutput) ToVolumeSnapshotPolicyMonthlySchedulePtrOutputWithContext(ctx context.Context) VolumeSnapshotPolicyMonthlySchedulePtrOutput

type VolumeSnapshotPolicyOutput

type VolumeSnapshotPolicyOutput struct{ *pulumi.OutputState }

func (VolumeSnapshotPolicyOutput) DailySchedule

Daily schedule policy. Structure is documented below.

func (VolumeSnapshotPolicyOutput) ElementType

func (VolumeSnapshotPolicyOutput) ElementType() reflect.Type

func (VolumeSnapshotPolicyOutput) Enabled

Enables automated snapshot creation according to defined schedule. Default is false. To disable automatic snapshot creation you have to remove the whole snapshotPolicy block.

func (VolumeSnapshotPolicyOutput) HourlySchedule

Hourly schedule policy. Structure is documented below.

func (VolumeSnapshotPolicyOutput) MonthlySchedule

Monthly schedule policy. Structure is documented below.

func (VolumeSnapshotPolicyOutput) ToVolumeSnapshotPolicyOutput

func (o VolumeSnapshotPolicyOutput) ToVolumeSnapshotPolicyOutput() VolumeSnapshotPolicyOutput

func (VolumeSnapshotPolicyOutput) ToVolumeSnapshotPolicyOutputWithContext

func (o VolumeSnapshotPolicyOutput) ToVolumeSnapshotPolicyOutputWithContext(ctx context.Context) VolumeSnapshotPolicyOutput

func (VolumeSnapshotPolicyOutput) ToVolumeSnapshotPolicyPtrOutput

func (o VolumeSnapshotPolicyOutput) ToVolumeSnapshotPolicyPtrOutput() VolumeSnapshotPolicyPtrOutput

func (VolumeSnapshotPolicyOutput) ToVolumeSnapshotPolicyPtrOutputWithContext

func (o VolumeSnapshotPolicyOutput) ToVolumeSnapshotPolicyPtrOutputWithContext(ctx context.Context) VolumeSnapshotPolicyPtrOutput

func (VolumeSnapshotPolicyOutput) WeeklySchedule

Weekly schedule policy. Structure is documented below.

type VolumeSnapshotPolicyPtrInput

type VolumeSnapshotPolicyPtrInput interface {
	pulumi.Input

	ToVolumeSnapshotPolicyPtrOutput() VolumeSnapshotPolicyPtrOutput
	ToVolumeSnapshotPolicyPtrOutputWithContext(context.Context) VolumeSnapshotPolicyPtrOutput
}

VolumeSnapshotPolicyPtrInput is an input type that accepts VolumeSnapshotPolicyArgs, VolumeSnapshotPolicyPtr and VolumeSnapshotPolicyPtrOutput values. You can construct a concrete instance of `VolumeSnapshotPolicyPtrInput` via:

        VolumeSnapshotPolicyArgs{...}

or:

        nil

type VolumeSnapshotPolicyPtrOutput

type VolumeSnapshotPolicyPtrOutput struct{ *pulumi.OutputState }

func (VolumeSnapshotPolicyPtrOutput) DailySchedule

Daily schedule policy. Structure is documented below.

func (VolumeSnapshotPolicyPtrOutput) Elem

func (VolumeSnapshotPolicyPtrOutput) ElementType

func (VolumeSnapshotPolicyPtrOutput) Enabled

Enables automated snapshot creation according to defined schedule. Default is false. To disable automatic snapshot creation you have to remove the whole snapshotPolicy block.

func (VolumeSnapshotPolicyPtrOutput) HourlySchedule

Hourly schedule policy. Structure is documented below.

func (VolumeSnapshotPolicyPtrOutput) MonthlySchedule

Monthly schedule policy. Structure is documented below.

func (VolumeSnapshotPolicyPtrOutput) ToVolumeSnapshotPolicyPtrOutput

func (o VolumeSnapshotPolicyPtrOutput) ToVolumeSnapshotPolicyPtrOutput() VolumeSnapshotPolicyPtrOutput

func (VolumeSnapshotPolicyPtrOutput) ToVolumeSnapshotPolicyPtrOutputWithContext

func (o VolumeSnapshotPolicyPtrOutput) ToVolumeSnapshotPolicyPtrOutputWithContext(ctx context.Context) VolumeSnapshotPolicyPtrOutput

func (VolumeSnapshotPolicyPtrOutput) WeeklySchedule

Weekly schedule policy. Structure is documented below.

type VolumeSnapshotPolicyWeeklySchedule

type VolumeSnapshotPolicyWeeklySchedule struct {
	// Set the day or days of the week to make a snapshot. Accepts a comma separated days of the week. Defaults to 'Sunday'.
	Day *string `pulumi:"day"`
	// Set the hour to create the snapshot (0-23), defaults to midnight (0).
	Hour *int `pulumi:"hour"`
	// Set the minute of the hour to create the snapshot (0-59), defaults to the top of the hour (0).
	Minute *int `pulumi:"minute"`
	// The maximum number of snapshots to keep for the weekly schedule.
	SnapshotsToKeep int `pulumi:"snapshotsToKeep"`
}

type VolumeSnapshotPolicyWeeklyScheduleArgs

type VolumeSnapshotPolicyWeeklyScheduleArgs struct {
	// Set the day or days of the week to make a snapshot. Accepts a comma separated days of the week. Defaults to 'Sunday'.
	Day pulumi.StringPtrInput `pulumi:"day"`
	// Set the hour to create the snapshot (0-23), defaults to midnight (0).
	Hour pulumi.IntPtrInput `pulumi:"hour"`
	// Set the minute of the hour to create the snapshot (0-59), defaults to the top of the hour (0).
	Minute pulumi.IntPtrInput `pulumi:"minute"`
	// The maximum number of snapshots to keep for the weekly schedule.
	SnapshotsToKeep pulumi.IntInput `pulumi:"snapshotsToKeep"`
}

func (VolumeSnapshotPolicyWeeklyScheduleArgs) ElementType

func (VolumeSnapshotPolicyWeeklyScheduleArgs) ToVolumeSnapshotPolicyWeeklyScheduleOutput

func (i VolumeSnapshotPolicyWeeklyScheduleArgs) ToVolumeSnapshotPolicyWeeklyScheduleOutput() VolumeSnapshotPolicyWeeklyScheduleOutput

func (VolumeSnapshotPolicyWeeklyScheduleArgs) ToVolumeSnapshotPolicyWeeklyScheduleOutputWithContext

func (i VolumeSnapshotPolicyWeeklyScheduleArgs) ToVolumeSnapshotPolicyWeeklyScheduleOutputWithContext(ctx context.Context) VolumeSnapshotPolicyWeeklyScheduleOutput

func (VolumeSnapshotPolicyWeeklyScheduleArgs) ToVolumeSnapshotPolicyWeeklySchedulePtrOutput

func (i VolumeSnapshotPolicyWeeklyScheduleArgs) ToVolumeSnapshotPolicyWeeklySchedulePtrOutput() VolumeSnapshotPolicyWeeklySchedulePtrOutput

func (VolumeSnapshotPolicyWeeklyScheduleArgs) ToVolumeSnapshotPolicyWeeklySchedulePtrOutputWithContext

func (i VolumeSnapshotPolicyWeeklyScheduleArgs) ToVolumeSnapshotPolicyWeeklySchedulePtrOutputWithContext(ctx context.Context) VolumeSnapshotPolicyWeeklySchedulePtrOutput

type VolumeSnapshotPolicyWeeklyScheduleInput

type VolumeSnapshotPolicyWeeklyScheduleInput interface {
	pulumi.Input

	ToVolumeSnapshotPolicyWeeklyScheduleOutput() VolumeSnapshotPolicyWeeklyScheduleOutput
	ToVolumeSnapshotPolicyWeeklyScheduleOutputWithContext(context.Context) VolumeSnapshotPolicyWeeklyScheduleOutput
}

VolumeSnapshotPolicyWeeklyScheduleInput is an input type that accepts VolumeSnapshotPolicyWeeklyScheduleArgs and VolumeSnapshotPolicyWeeklyScheduleOutput values. You can construct a concrete instance of `VolumeSnapshotPolicyWeeklyScheduleInput` via:

VolumeSnapshotPolicyWeeklyScheduleArgs{...}

type VolumeSnapshotPolicyWeeklyScheduleOutput

type VolumeSnapshotPolicyWeeklyScheduleOutput struct{ *pulumi.OutputState }

func (VolumeSnapshotPolicyWeeklyScheduleOutput) Day

Set the day or days of the week to make a snapshot. Accepts a comma separated days of the week. Defaults to 'Sunday'.

func (VolumeSnapshotPolicyWeeklyScheduleOutput) ElementType

func (VolumeSnapshotPolicyWeeklyScheduleOutput) Hour

Set the hour to create the snapshot (0-23), defaults to midnight (0).

func (VolumeSnapshotPolicyWeeklyScheduleOutput) Minute

Set the minute of the hour to create the snapshot (0-59), defaults to the top of the hour (0).

func (VolumeSnapshotPolicyWeeklyScheduleOutput) SnapshotsToKeep

The maximum number of snapshots to keep for the weekly schedule.

func (VolumeSnapshotPolicyWeeklyScheduleOutput) ToVolumeSnapshotPolicyWeeklyScheduleOutput

func (o VolumeSnapshotPolicyWeeklyScheduleOutput) ToVolumeSnapshotPolicyWeeklyScheduleOutput() VolumeSnapshotPolicyWeeklyScheduleOutput

func (VolumeSnapshotPolicyWeeklyScheduleOutput) ToVolumeSnapshotPolicyWeeklyScheduleOutputWithContext

func (o VolumeSnapshotPolicyWeeklyScheduleOutput) ToVolumeSnapshotPolicyWeeklyScheduleOutputWithContext(ctx context.Context) VolumeSnapshotPolicyWeeklyScheduleOutput

func (VolumeSnapshotPolicyWeeklyScheduleOutput) ToVolumeSnapshotPolicyWeeklySchedulePtrOutput

func (o VolumeSnapshotPolicyWeeklyScheduleOutput) ToVolumeSnapshotPolicyWeeklySchedulePtrOutput() VolumeSnapshotPolicyWeeklySchedulePtrOutput

func (VolumeSnapshotPolicyWeeklyScheduleOutput) ToVolumeSnapshotPolicyWeeklySchedulePtrOutputWithContext

func (o VolumeSnapshotPolicyWeeklyScheduleOutput) ToVolumeSnapshotPolicyWeeklySchedulePtrOutputWithContext(ctx context.Context) VolumeSnapshotPolicyWeeklySchedulePtrOutput

type VolumeSnapshotPolicyWeeklySchedulePtrInput

type VolumeSnapshotPolicyWeeklySchedulePtrInput interface {
	pulumi.Input

	ToVolumeSnapshotPolicyWeeklySchedulePtrOutput() VolumeSnapshotPolicyWeeklySchedulePtrOutput
	ToVolumeSnapshotPolicyWeeklySchedulePtrOutputWithContext(context.Context) VolumeSnapshotPolicyWeeklySchedulePtrOutput
}

VolumeSnapshotPolicyWeeklySchedulePtrInput is an input type that accepts VolumeSnapshotPolicyWeeklyScheduleArgs, VolumeSnapshotPolicyWeeklySchedulePtr and VolumeSnapshotPolicyWeeklySchedulePtrOutput values. You can construct a concrete instance of `VolumeSnapshotPolicyWeeklySchedulePtrInput` via:

        VolumeSnapshotPolicyWeeklyScheduleArgs{...}

or:

        nil

type VolumeSnapshotPolicyWeeklySchedulePtrOutput

type VolumeSnapshotPolicyWeeklySchedulePtrOutput struct{ *pulumi.OutputState }

func (VolumeSnapshotPolicyWeeklySchedulePtrOutput) Day

Set the day or days of the week to make a snapshot. Accepts a comma separated days of the week. Defaults to 'Sunday'.

func (VolumeSnapshotPolicyWeeklySchedulePtrOutput) Elem

func (VolumeSnapshotPolicyWeeklySchedulePtrOutput) ElementType

func (VolumeSnapshotPolicyWeeklySchedulePtrOutput) Hour

Set the hour to create the snapshot (0-23), defaults to midnight (0).

func (VolumeSnapshotPolicyWeeklySchedulePtrOutput) Minute

Set the minute of the hour to create the snapshot (0-59), defaults to the top of the hour (0).

func (VolumeSnapshotPolicyWeeklySchedulePtrOutput) SnapshotsToKeep

The maximum number of snapshots to keep for the weekly schedule.

func (VolumeSnapshotPolicyWeeklySchedulePtrOutput) ToVolumeSnapshotPolicyWeeklySchedulePtrOutput

func (o VolumeSnapshotPolicyWeeklySchedulePtrOutput) ToVolumeSnapshotPolicyWeeklySchedulePtrOutput() VolumeSnapshotPolicyWeeklySchedulePtrOutput

func (VolumeSnapshotPolicyWeeklySchedulePtrOutput) ToVolumeSnapshotPolicyWeeklySchedulePtrOutputWithContext

func (o VolumeSnapshotPolicyWeeklySchedulePtrOutput) ToVolumeSnapshotPolicyWeeklySchedulePtrOutputWithContext(ctx context.Context) VolumeSnapshotPolicyWeeklySchedulePtrOutput

type VolumeSnapshotState

type VolumeSnapshotState struct {
	// Description for the snapshot.
	Description pulumi.StringPtrInput
	// All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
	EffectiveLabels pulumi.StringMapInput
	// Labels as key value pairs. Example: `{ "owner": "Bob", "department": "finance", "purpose": "testing" }`.
	//
	// **Note**: This field is non-authoritative, and will only manage the labels present in your configuration.
	// Please refer to the field `effectiveLabels` for all of the labels present on the resource.
	Labels pulumi.StringMapInput
	// Name of the snapshot location. Snapshots are child resources of volumes and live in the same location.
	Location pulumi.StringPtrInput
	// The name of the snapshot.
	//
	// ***
	Name pulumi.StringPtrInput
	// The ID of the project in which the resource belongs.
	// If it is not provided, the provider project is used.
	Project pulumi.StringPtrInput
	// The combination of labels configured directly on the resource
	// and default labels configured on the provider.
	PulumiLabels pulumi.StringMapInput
	// Storage used to store blocks unique to this snapshot.
	UsedBytes pulumi.IntPtrInput
	// The name of the volume to create the snapshot in.
	VolumeName pulumi.StringPtrInput
}

func (VolumeSnapshotState) ElementType

func (VolumeSnapshotState) ElementType() reflect.Type

type VolumeState

type VolumeState struct {
	// Reports the resource name of the Active Directory policy being used. Inherited from storage pool.
	ActiveDirectory pulumi.StringPtrInput
	// Backup configuration for the volume.
	// Structure is documented below.
	BackupConfig VolumeBackupConfigPtrInput
	// Capacity of the volume (in GiB).
	CapacityGib pulumi.StringPtrInput
	// Output only. Size of the volume cold tier data in GiB.
	ColdTierSizeGib pulumi.StringPtrInput
	// Create time of the volume. A timestamp in RFC3339 UTC "Zulu" format. Examples: "2023-06-22T09:13:01.617Z".
	CreateTime pulumi.StringPtrInput
	// Policy to determine if the volume should be deleted forcefully.
	// Volumes may have nested snapshot resources. Deleting such a volume will fail.
	// Setting this parameter to FORCE will delete volumes including nested snapshots.
	// Possible values: DEFAULT, FORCE.
	DeletionPolicy pulumi.StringPtrInput
	// An optional description of this resource.
	Description pulumi.StringPtrInput
	// All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
	EffectiveLabels pulumi.StringMapInput
	// Reports the data-at-rest encryption type of the volume. Inherited from storage pool.
	EncryptionType pulumi.StringPtrInput
	// Export policy of the volume for NFSV3 and/or NFSV4.1 access.
	// Structure is documented below.
	ExportPolicy VolumeExportPolicyPtrInput
	// Indicates whether the volume is part of a volume replication relationship.
	HasReplication pulumi.BoolPtrInput
	// Flag indicating if the volume is a kerberos volume or not, export policy rules control kerberos security modes (krb5, krb5i, krb5p).
	KerberosEnabled pulumi.BoolPtrInput
	// Reports the CMEK policy resurce name being used for volume encryption. Inherited from storage pool.
	KmsConfig pulumi.StringPtrInput
	// Labels as key value pairs. Example: `{ "owner": "Bob", "department": "finance", "purpose": "testing" }`.
	//
	// **Note**: This field is non-authoritative, and will only manage the labels present in your configuration.
	// Please refer to the field `effectiveLabels` for all of the labels present on the resource.
	Labels pulumi.StringMapInput
	// Optional. Flag indicating if the volume will be a large capacity volume or a regular volume.
	LargeCapacity pulumi.BoolPtrInput
	// Flag indicating if the volume is NFS LDAP enabled or not. Inherited from storage pool.
	LdapEnabled pulumi.BoolPtrInput
	// Name of the pool location. Usually a region name, expect for some STANDARD service level pools which require a zone name.
	Location pulumi.StringPtrInput
	// Reports mount instructions for this volume.
	// Structure is documented below.
	MountOptions VolumeMountOptionArrayInput
	// Optional. Flag indicating if the volume will have an IP address per node for volumes supporting multiple IP endpoints.
	// Only the volume with largeCapacity will be allowed to have multiple endpoints.
	MultipleEndpoints pulumi.BoolPtrInput
	// The name of the volume. Needs to be unique per location.
	//
	// ***
	Name pulumi.StringPtrInput
	// VPC network name with format: `projects/{{project}}/global/networks/{{network}}`. Inherited from storage pool.
	Network pulumi.StringPtrInput
	// The ID of the project in which the resource belongs.
	// If it is not provided, the provider project is used.
	Project pulumi.StringPtrInput
	// The protocol of the volume. Allowed combinations are `['NFSV3']`, `['NFSV4']`, `['SMB']`, `['NFSV3', 'NFSV4']`, `['SMB', 'NFSV3']` and `['SMB', 'NFSV4']`.
	// Each value may be one of: `NFSV3`, `NFSV4`, `SMB`.
	Protocols pulumi.StringArrayInput
	// Name of the Private Service Access allocated range. Inherited from storage pool.
	PsaRange pulumi.StringPtrInput
	// The combination of labels configured directly on the resource
	// and default labels configured on the provider.
	PulumiLabels pulumi.StringMapInput
	// Specifies the replica zone for regional volume.
	ReplicaZone pulumi.StringPtrInput
	// Used to create this volume from a snapshot (= cloning) or an backup.
	// Structure is documented below.
	RestoreParameters VolumeRestoreParametersPtrInput
	// List of actions that are restricted on this volume.
	// Each value may be one of: `DELETE`.
	RestrictedActions pulumi.StringArrayInput
	// Security Style of the Volume. Use UNIX to use UNIX or NFSV4 ACLs for file permissions.
	// Use NTFS to use NTFS ACLs for file permissions. Can only be set for volumes which use SMB together with NFS as protocol.
	// Possible values are: `NTFS`, `UNIX`.
	SecurityStyle pulumi.StringPtrInput
	// Service level of the volume. Inherited from storage pool. Supported values are : PREMIUM, EXTREME, STANDARD, FLEX.
	ServiceLevel pulumi.StringPtrInput
	// Share name (SMB) or export path (NFS) of the volume. Needs to be unique per location.
	ShareName pulumi.StringPtrInput
	// Settings for volumes with SMB access.
	// Each value may be one of: `ENCRYPT_DATA`, `BROWSABLE`, `CHANGE_NOTIFY`, `NON_BROWSABLE`, `OPLOCKS`, `SHOW_SNAPSHOT`, `SHOW_PREVIOUS_VERSIONS`, `ACCESS_BASED_ENUMERATION`, `CONTINUOUSLY_AVAILABLE`.
	SmbSettings pulumi.StringArrayInput
	// If enabled, a NFS volume will contain a read-only .snapshot directory which provides access to each of the volume's snapshots. Will enable "Previous Versions" support for SMB.
	SnapshotDirectory pulumi.BoolPtrInput
	// Snapshot policy defines the schedule for automatic snapshot creation.
	// To disable automatic snapshot creation you have to remove the whole snapshotPolicy block.
	// Structure is documented below.
	SnapshotPolicy VolumeSnapshotPolicyPtrInput
	// State of the volume.
	State pulumi.StringPtrInput
	// State details of the volume.
	StateDetails pulumi.StringPtrInput
	// Name of the storage pool to create the volume in. Pool needs enough spare capacity to accommodate the volume.
	StoragePool pulumi.StringPtrInput
	// Tiering policy for the volume.
	// Structure is documented below.
	TieringPolicy VolumeTieringPolicyPtrInput
	// Unix permission the mount point will be created with. Default is 0770. Applicable for UNIX security style volumes only.
	UnixPermissions pulumi.StringPtrInput
	// Used capacity of the volume (in GiB). This is computed periodically and it does not represent the realtime usage.
	UsedGib pulumi.StringPtrInput
	// Specifies the active zone for regional volume.
	Zone pulumi.StringPtrInput
}

func (VolumeState) ElementType

func (VolumeState) ElementType() reflect.Type

type VolumeTieringPolicy added in v8.3.0

type VolumeTieringPolicy struct {
	// Optional. Time in days to mark the volume's data block as cold and make it eligible for tiering, can be range from 7-183.
	// Default is 31.
	CoolingThresholdDays *int `pulumi:"coolingThresholdDays"`
	// Optional. Flag indicating if the volume has tiering policy enable/pause. Default is PAUSED.
	// Default value is `PAUSED`.
	// Possible values are: `ENABLED`, `PAUSED`.
	TierAction *string `pulumi:"tierAction"`
}

type VolumeTieringPolicyArgs added in v8.3.0

type VolumeTieringPolicyArgs struct {
	// Optional. Time in days to mark the volume's data block as cold and make it eligible for tiering, can be range from 7-183.
	// Default is 31.
	CoolingThresholdDays pulumi.IntPtrInput `pulumi:"coolingThresholdDays"`
	// Optional. Flag indicating if the volume has tiering policy enable/pause. Default is PAUSED.
	// Default value is `PAUSED`.
	// Possible values are: `ENABLED`, `PAUSED`.
	TierAction pulumi.StringPtrInput `pulumi:"tierAction"`
}

func (VolumeTieringPolicyArgs) ElementType added in v8.3.0

func (VolumeTieringPolicyArgs) ElementType() reflect.Type

func (VolumeTieringPolicyArgs) ToVolumeTieringPolicyOutput added in v8.3.0

func (i VolumeTieringPolicyArgs) ToVolumeTieringPolicyOutput() VolumeTieringPolicyOutput

func (VolumeTieringPolicyArgs) ToVolumeTieringPolicyOutputWithContext added in v8.3.0

func (i VolumeTieringPolicyArgs) ToVolumeTieringPolicyOutputWithContext(ctx context.Context) VolumeTieringPolicyOutput

func (VolumeTieringPolicyArgs) ToVolumeTieringPolicyPtrOutput added in v8.3.0

func (i VolumeTieringPolicyArgs) ToVolumeTieringPolicyPtrOutput() VolumeTieringPolicyPtrOutput

func (VolumeTieringPolicyArgs) ToVolumeTieringPolicyPtrOutputWithContext added in v8.3.0

func (i VolumeTieringPolicyArgs) ToVolumeTieringPolicyPtrOutputWithContext(ctx context.Context) VolumeTieringPolicyPtrOutput

type VolumeTieringPolicyInput added in v8.3.0

type VolumeTieringPolicyInput interface {
	pulumi.Input

	ToVolumeTieringPolicyOutput() VolumeTieringPolicyOutput
	ToVolumeTieringPolicyOutputWithContext(context.Context) VolumeTieringPolicyOutput
}

VolumeTieringPolicyInput is an input type that accepts VolumeTieringPolicyArgs and VolumeTieringPolicyOutput values. You can construct a concrete instance of `VolumeTieringPolicyInput` via:

VolumeTieringPolicyArgs{...}

type VolumeTieringPolicyOutput added in v8.3.0

type VolumeTieringPolicyOutput struct{ *pulumi.OutputState }

func (VolumeTieringPolicyOutput) CoolingThresholdDays added in v8.3.0

func (o VolumeTieringPolicyOutput) CoolingThresholdDays() pulumi.IntPtrOutput

Optional. Time in days to mark the volume's data block as cold and make it eligible for tiering, can be range from 7-183. Default is 31.

func (VolumeTieringPolicyOutput) ElementType added in v8.3.0

func (VolumeTieringPolicyOutput) ElementType() reflect.Type

func (VolumeTieringPolicyOutput) TierAction added in v8.3.0

Optional. Flag indicating if the volume has tiering policy enable/pause. Default is PAUSED. Default value is `PAUSED`. Possible values are: `ENABLED`, `PAUSED`.

func (VolumeTieringPolicyOutput) ToVolumeTieringPolicyOutput added in v8.3.0

func (o VolumeTieringPolicyOutput) ToVolumeTieringPolicyOutput() VolumeTieringPolicyOutput

func (VolumeTieringPolicyOutput) ToVolumeTieringPolicyOutputWithContext added in v8.3.0

func (o VolumeTieringPolicyOutput) ToVolumeTieringPolicyOutputWithContext(ctx context.Context) VolumeTieringPolicyOutput

func (VolumeTieringPolicyOutput) ToVolumeTieringPolicyPtrOutput added in v8.3.0

func (o VolumeTieringPolicyOutput) ToVolumeTieringPolicyPtrOutput() VolumeTieringPolicyPtrOutput

func (VolumeTieringPolicyOutput) ToVolumeTieringPolicyPtrOutputWithContext added in v8.3.0

func (o VolumeTieringPolicyOutput) ToVolumeTieringPolicyPtrOutputWithContext(ctx context.Context) VolumeTieringPolicyPtrOutput

type VolumeTieringPolicyPtrInput added in v8.3.0

type VolumeTieringPolicyPtrInput interface {
	pulumi.Input

	ToVolumeTieringPolicyPtrOutput() VolumeTieringPolicyPtrOutput
	ToVolumeTieringPolicyPtrOutputWithContext(context.Context) VolumeTieringPolicyPtrOutput
}

VolumeTieringPolicyPtrInput is an input type that accepts VolumeTieringPolicyArgs, VolumeTieringPolicyPtr and VolumeTieringPolicyPtrOutput values. You can construct a concrete instance of `VolumeTieringPolicyPtrInput` via:

        VolumeTieringPolicyArgs{...}

or:

        nil

func VolumeTieringPolicyPtr added in v8.3.0

func VolumeTieringPolicyPtr(v *VolumeTieringPolicyArgs) VolumeTieringPolicyPtrInput

type VolumeTieringPolicyPtrOutput added in v8.3.0

type VolumeTieringPolicyPtrOutput struct{ *pulumi.OutputState }

func (VolumeTieringPolicyPtrOutput) CoolingThresholdDays added in v8.3.0

func (o VolumeTieringPolicyPtrOutput) CoolingThresholdDays() pulumi.IntPtrOutput

Optional. Time in days to mark the volume's data block as cold and make it eligible for tiering, can be range from 7-183. Default is 31.

func (VolumeTieringPolicyPtrOutput) Elem added in v8.3.0

func (VolumeTieringPolicyPtrOutput) ElementType added in v8.3.0

func (VolumeTieringPolicyPtrOutput) TierAction added in v8.3.0

Optional. Flag indicating if the volume has tiering policy enable/pause. Default is PAUSED. Default value is `PAUSED`. Possible values are: `ENABLED`, `PAUSED`.

func (VolumeTieringPolicyPtrOutput) ToVolumeTieringPolicyPtrOutput added in v8.3.0

func (o VolumeTieringPolicyPtrOutput) ToVolumeTieringPolicyPtrOutput() VolumeTieringPolicyPtrOutput

func (VolumeTieringPolicyPtrOutput) ToVolumeTieringPolicyPtrOutputWithContext added in v8.3.0

func (o VolumeTieringPolicyPtrOutput) ToVolumeTieringPolicyPtrOutputWithContext(ctx context.Context) VolumeTieringPolicyPtrOutput

Jump to

Keyboard shortcuts

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