netapp

package
v7.20.0 Latest Latest
Warning

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

Go to latest
Published: Apr 24, 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 added in v7.5.0

type ActiveDirectory struct {
	pulumi.CustomResourceState

	// 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 requried 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 for specified username. Note - Manual changes done to the password will not be detected. Terraform will not
	// re-apply the password, unless you use a new password in Terraform.
	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/v7/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"),
			},
			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 added in v7.5.0

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 added in v7.5.0

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 added in v7.5.0

func (*ActiveDirectory) ElementType() reflect.Type

func (*ActiveDirectory) ToActiveDirectoryOutput added in v7.5.0

func (i *ActiveDirectory) ToActiveDirectoryOutput() ActiveDirectoryOutput

func (*ActiveDirectory) ToActiveDirectoryOutputWithContext added in v7.5.0

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

type ActiveDirectoryArgs added in v7.5.0

type ActiveDirectoryArgs struct {
	// 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 requried 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 for specified username. Note - Manual changes done to the password will not be detected. Terraform will not
	// re-apply the password, unless you use a new password in Terraform.
	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 added in v7.5.0

func (ActiveDirectoryArgs) ElementType() reflect.Type

type ActiveDirectoryArray added in v7.5.0

type ActiveDirectoryArray []ActiveDirectoryInput

func (ActiveDirectoryArray) ElementType added in v7.5.0

func (ActiveDirectoryArray) ElementType() reflect.Type

func (ActiveDirectoryArray) ToActiveDirectoryArrayOutput added in v7.5.0

func (i ActiveDirectoryArray) ToActiveDirectoryArrayOutput() ActiveDirectoryArrayOutput

func (ActiveDirectoryArray) ToActiveDirectoryArrayOutputWithContext added in v7.5.0

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

type ActiveDirectoryArrayInput added in v7.5.0

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 added in v7.5.0

type ActiveDirectoryArrayOutput struct{ *pulumi.OutputState }

func (ActiveDirectoryArrayOutput) ElementType added in v7.5.0

func (ActiveDirectoryArrayOutput) ElementType() reflect.Type

func (ActiveDirectoryArrayOutput) Index added in v7.5.0

func (ActiveDirectoryArrayOutput) ToActiveDirectoryArrayOutput added in v7.5.0

func (o ActiveDirectoryArrayOutput) ToActiveDirectoryArrayOutput() ActiveDirectoryArrayOutput

func (ActiveDirectoryArrayOutput) ToActiveDirectoryArrayOutputWithContext added in v7.5.0

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

type ActiveDirectoryInput added in v7.5.0

type ActiveDirectoryInput interface {
	pulumi.Input

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

type ActiveDirectoryMap added in v7.5.0

type ActiveDirectoryMap map[string]ActiveDirectoryInput

func (ActiveDirectoryMap) ElementType added in v7.5.0

func (ActiveDirectoryMap) ElementType() reflect.Type

func (ActiveDirectoryMap) ToActiveDirectoryMapOutput added in v7.5.0

func (i ActiveDirectoryMap) ToActiveDirectoryMapOutput() ActiveDirectoryMapOutput

func (ActiveDirectoryMap) ToActiveDirectoryMapOutputWithContext added in v7.5.0

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

type ActiveDirectoryMapInput added in v7.5.0

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 added in v7.5.0

type ActiveDirectoryMapOutput struct{ *pulumi.OutputState }

func (ActiveDirectoryMapOutput) ElementType added in v7.5.0

func (ActiveDirectoryMapOutput) ElementType() reflect.Type

func (ActiveDirectoryMapOutput) MapIndex added in v7.5.0

func (ActiveDirectoryMapOutput) ToActiveDirectoryMapOutput added in v7.5.0

func (o ActiveDirectoryMapOutput) ToActiveDirectoryMapOutput() ActiveDirectoryMapOutput

func (ActiveDirectoryMapOutput) ToActiveDirectoryMapOutputWithContext added in v7.5.0

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

type ActiveDirectoryOutput added in v7.5.0

type ActiveDirectoryOutput struct{ *pulumi.OutputState }

func (ActiveDirectoryOutput) AesEncryption added in v7.5.0

func (o ActiveDirectoryOutput) AesEncryption() pulumi.BoolPtrOutput

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

func (ActiveDirectoryOutput) BackupOperators added in v7.5.0

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 added in v7.5.0

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 added in v7.5.0

An optional description of this resource.

func (ActiveDirectoryOutput) Dns added in v7.5.0

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

func (ActiveDirectoryOutput) Domain added in v7.5.0

Fully qualified domain name for the Active Directory domain.

func (ActiveDirectoryOutput) EffectiveLabels added in v7.5.0

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 added in v7.5.0

func (ActiveDirectoryOutput) ElementType() reflect.Type

func (ActiveDirectoryOutput) EncryptDcConnections added in v7.5.0

func (o ActiveDirectoryOutput) EncryptDcConnections() pulumi.BoolPtrOutput

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

func (ActiveDirectoryOutput) KdcHostname added in v7.5.0

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

func (ActiveDirectoryOutput) KdcIp added in v7.5.0

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

func (ActiveDirectoryOutput) Labels added in v7.5.0

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 added in v7.5.0

func (o ActiveDirectoryOutput) LdapSigning() pulumi.BoolPtrOutput

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

func (ActiveDirectoryOutput) Location added in v7.5.0

Name of the region for the policy to apply to.

func (ActiveDirectoryOutput) Name added in v7.5.0

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

***

func (ActiveDirectoryOutput) NetBiosPrefix added in v7.5.0

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 added in v7.5.0

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 added in v7.5.0

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 added in v7.5.0

Password for specified username. Note - Manual changes done to the password will not be detected. Terraform will not re-apply the password, unless you use a new password in Terraform.

func (ActiveDirectoryOutput) Project added in v7.5.0

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

func (ActiveDirectoryOutput) PulumiLabels added in v7.5.0

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 added in v7.5.0

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 added in v7.5.0

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 added in v7.5.0

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

func (ActiveDirectoryOutput) StateDetails added in v7.5.0

func (o ActiveDirectoryOutput) StateDetails() pulumi.StringOutput

The state details of the Active Directory.

func (ActiveDirectoryOutput) ToActiveDirectoryOutput added in v7.5.0

func (o ActiveDirectoryOutput) ToActiveDirectoryOutput() ActiveDirectoryOutput

func (ActiveDirectoryOutput) ToActiveDirectoryOutputWithContext added in v7.5.0

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

func (ActiveDirectoryOutput) Username added in v7.5.0

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

type ActiveDirectoryState added in v7.5.0

type ActiveDirectoryState struct {
	// 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 requried 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 for specified username. Note - Manual changes done to the password will not be detected. Terraform will not
	// re-apply the password, unless you use a new password in Terraform.
	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 added in v7.5.0

func (ActiveDirectoryState) ElementType() reflect.Type

type BackupPolicy added in v7.7.0

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/v7/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 added in v7.7.0

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 added in v7.7.0

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 added in v7.7.0

func (*BackupPolicy) ElementType() reflect.Type

func (*BackupPolicy) ToBackupPolicyOutput added in v7.7.0

func (i *BackupPolicy) ToBackupPolicyOutput() BackupPolicyOutput

func (*BackupPolicy) ToBackupPolicyOutputWithContext added in v7.7.0

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

type BackupPolicyArgs added in v7.7.0

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 added in v7.7.0

func (BackupPolicyArgs) ElementType() reflect.Type

type BackupPolicyArray added in v7.7.0

type BackupPolicyArray []BackupPolicyInput

func (BackupPolicyArray) ElementType added in v7.7.0

func (BackupPolicyArray) ElementType() reflect.Type

func (BackupPolicyArray) ToBackupPolicyArrayOutput added in v7.7.0

func (i BackupPolicyArray) ToBackupPolicyArrayOutput() BackupPolicyArrayOutput

func (BackupPolicyArray) ToBackupPolicyArrayOutputWithContext added in v7.7.0

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

type BackupPolicyArrayInput added in v7.7.0

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 added in v7.7.0

type BackupPolicyArrayOutput struct{ *pulumi.OutputState }

func (BackupPolicyArrayOutput) ElementType added in v7.7.0

func (BackupPolicyArrayOutput) ElementType() reflect.Type

func (BackupPolicyArrayOutput) Index added in v7.7.0

func (BackupPolicyArrayOutput) ToBackupPolicyArrayOutput added in v7.7.0

func (o BackupPolicyArrayOutput) ToBackupPolicyArrayOutput() BackupPolicyArrayOutput

func (BackupPolicyArrayOutput) ToBackupPolicyArrayOutputWithContext added in v7.7.0

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

type BackupPolicyInput added in v7.7.0

type BackupPolicyInput interface {
	pulumi.Input

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

type BackupPolicyMap added in v7.7.0

type BackupPolicyMap map[string]BackupPolicyInput

func (BackupPolicyMap) ElementType added in v7.7.0

func (BackupPolicyMap) ElementType() reflect.Type

func (BackupPolicyMap) ToBackupPolicyMapOutput added in v7.7.0

func (i BackupPolicyMap) ToBackupPolicyMapOutput() BackupPolicyMapOutput

func (BackupPolicyMap) ToBackupPolicyMapOutputWithContext added in v7.7.0

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

type BackupPolicyMapInput added in v7.7.0

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 added in v7.7.0

type BackupPolicyMapOutput struct{ *pulumi.OutputState }

func (BackupPolicyMapOutput) ElementType added in v7.7.0

func (BackupPolicyMapOutput) ElementType() reflect.Type

func (BackupPolicyMapOutput) MapIndex added in v7.7.0

func (BackupPolicyMapOutput) ToBackupPolicyMapOutput added in v7.7.0

func (o BackupPolicyMapOutput) ToBackupPolicyMapOutput() BackupPolicyMapOutput

func (BackupPolicyMapOutput) ToBackupPolicyMapOutputWithContext added in v7.7.0

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

type BackupPolicyOutput added in v7.7.0

type BackupPolicyOutput struct{ *pulumi.OutputState }

func (BackupPolicyOutput) AssignedVolumeCount added in v7.7.0

func (o BackupPolicyOutput) AssignedVolumeCount() pulumi.IntOutput

The total number of volumes assigned by this backup policy.

func (BackupPolicyOutput) CreateTime added in v7.7.0

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 added in v7.7.0

func (o BackupPolicyOutput) DailyBackupLimit() pulumi.IntOutput

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

func (BackupPolicyOutput) Description added in v7.7.0

func (o BackupPolicyOutput) Description() pulumi.StringPtrOutput

An optional description of this resource.

func (BackupPolicyOutput) EffectiveLabels added in v7.7.0

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 added in v7.7.0

func (BackupPolicyOutput) ElementType() reflect.Type

func (BackupPolicyOutput) Enabled added in v7.7.0

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 added in v7.7.0

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 added in v7.7.0

func (o BackupPolicyOutput) Location() pulumi.StringOutput

Name of the region for the policy to apply to.

func (BackupPolicyOutput) MonthlyBackupLimit added in v7.7.0

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 added in v7.7.0

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

***

func (BackupPolicyOutput) Project added in v7.7.0

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

func (BackupPolicyOutput) PulumiLabels added in v7.7.0

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 added in v7.7.0

The state of the backup policy.

func (BackupPolicyOutput) ToBackupPolicyOutput added in v7.7.0

func (o BackupPolicyOutput) ToBackupPolicyOutput() BackupPolicyOutput

func (BackupPolicyOutput) ToBackupPolicyOutputWithContext added in v7.7.0

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

func (BackupPolicyOutput) WeeklyBackupLimit added in v7.7.0

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 added in v7.7.0

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 added in v7.7.0

func (BackupPolicyState) ElementType() reflect.Type

type BackupVault added in v7.5.0

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/v7/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-central1"),
			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 added in v7.5.0

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 added in v7.5.0

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 added in v7.5.0

func (*BackupVault) ElementType() reflect.Type

func (*BackupVault) ToBackupVaultOutput added in v7.5.0

func (i *BackupVault) ToBackupVaultOutput() BackupVaultOutput

func (*BackupVault) ToBackupVaultOutputWithContext added in v7.5.0

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

type BackupVaultArgs added in v7.5.0

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 added in v7.5.0

func (BackupVaultArgs) ElementType() reflect.Type

type BackupVaultArray added in v7.5.0

type BackupVaultArray []BackupVaultInput

func (BackupVaultArray) ElementType added in v7.5.0

func (BackupVaultArray) ElementType() reflect.Type

func (BackupVaultArray) ToBackupVaultArrayOutput added in v7.5.0

func (i BackupVaultArray) ToBackupVaultArrayOutput() BackupVaultArrayOutput

func (BackupVaultArray) ToBackupVaultArrayOutputWithContext added in v7.5.0

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

type BackupVaultArrayInput added in v7.5.0

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 added in v7.5.0

type BackupVaultArrayOutput struct{ *pulumi.OutputState }

func (BackupVaultArrayOutput) ElementType added in v7.5.0

func (BackupVaultArrayOutput) ElementType() reflect.Type

func (BackupVaultArrayOutput) Index added in v7.5.0

func (BackupVaultArrayOutput) ToBackupVaultArrayOutput added in v7.5.0

func (o BackupVaultArrayOutput) ToBackupVaultArrayOutput() BackupVaultArrayOutput

func (BackupVaultArrayOutput) ToBackupVaultArrayOutputWithContext added in v7.5.0

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

type BackupVaultInput added in v7.5.0

type BackupVaultInput interface {
	pulumi.Input

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

type BackupVaultMap added in v7.5.0

type BackupVaultMap map[string]BackupVaultInput

func (BackupVaultMap) ElementType added in v7.5.0

func (BackupVaultMap) ElementType() reflect.Type

func (BackupVaultMap) ToBackupVaultMapOutput added in v7.5.0

func (i BackupVaultMap) ToBackupVaultMapOutput() BackupVaultMapOutput

func (BackupVaultMap) ToBackupVaultMapOutputWithContext added in v7.5.0

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

type BackupVaultMapInput added in v7.5.0

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 added in v7.5.0

type BackupVaultMapOutput struct{ *pulumi.OutputState }

func (BackupVaultMapOutput) ElementType added in v7.5.0

func (BackupVaultMapOutput) ElementType() reflect.Type

func (BackupVaultMapOutput) MapIndex added in v7.5.0

func (BackupVaultMapOutput) ToBackupVaultMapOutput added in v7.5.0

func (o BackupVaultMapOutput) ToBackupVaultMapOutput() BackupVaultMapOutput

func (BackupVaultMapOutput) ToBackupVaultMapOutputWithContext added in v7.5.0

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

type BackupVaultOutput added in v7.5.0

type BackupVaultOutput struct{ *pulumi.OutputState }

func (BackupVaultOutput) CreateTime added in v7.5.0

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 added in v7.5.0

func (o BackupVaultOutput) Description() pulumi.StringPtrOutput

An optional description of this resource.

func (BackupVaultOutput) EffectiveLabels added in v7.5.0

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 added in v7.5.0

func (BackupVaultOutput) ElementType() reflect.Type

func (BackupVaultOutput) Labels added in v7.5.0

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 added in v7.5.0

func (o BackupVaultOutput) Location() pulumi.StringOutput

Location (region) of the backup vault.

func (BackupVaultOutput) Name added in v7.5.0

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

***

func (BackupVaultOutput) Project added in v7.5.0

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

func (BackupVaultOutput) PulumiLabels added in v7.5.0

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 added in v7.5.0

The state of the Backup Vault.

func (BackupVaultOutput) ToBackupVaultOutput added in v7.5.0

func (o BackupVaultOutput) ToBackupVaultOutput() BackupVaultOutput

func (BackupVaultOutput) ToBackupVaultOutputWithContext added in v7.5.0

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

type BackupVaultState added in v7.5.0

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 added in v7.5.0

func (BackupVaultState) ElementType() reflect.Type

type Kmsconfig added in v7.6.0

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/v7/go/gcp/kms"
"github.com/pulumi/pulumi-gcp/sdk/v7/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 added in v7.6.0

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 added in v7.6.0

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 added in v7.6.0

func (*Kmsconfig) ElementType() reflect.Type

func (*Kmsconfig) ToKmsconfigOutput added in v7.6.0

func (i *Kmsconfig) ToKmsconfigOutput() KmsconfigOutput

func (*Kmsconfig) ToKmsconfigOutputWithContext added in v7.6.0

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

type KmsconfigArgs added in v7.6.0

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 added in v7.6.0

func (KmsconfigArgs) ElementType() reflect.Type

type KmsconfigArray added in v7.6.0

type KmsconfigArray []KmsconfigInput

func (KmsconfigArray) ElementType added in v7.6.0

func (KmsconfigArray) ElementType() reflect.Type

func (KmsconfigArray) ToKmsconfigArrayOutput added in v7.6.0

func (i KmsconfigArray) ToKmsconfigArrayOutput() KmsconfigArrayOutput

func (KmsconfigArray) ToKmsconfigArrayOutputWithContext added in v7.6.0

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

type KmsconfigArrayInput added in v7.6.0

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 added in v7.6.0

type KmsconfigArrayOutput struct{ *pulumi.OutputState }

func (KmsconfigArrayOutput) ElementType added in v7.6.0

func (KmsconfigArrayOutput) ElementType() reflect.Type

func (KmsconfigArrayOutput) Index added in v7.6.0

func (KmsconfigArrayOutput) ToKmsconfigArrayOutput added in v7.6.0

func (o KmsconfigArrayOutput) ToKmsconfigArrayOutput() KmsconfigArrayOutput

func (KmsconfigArrayOutput) ToKmsconfigArrayOutputWithContext added in v7.6.0

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

type KmsconfigInput added in v7.6.0

type KmsconfigInput interface {
	pulumi.Input

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

type KmsconfigMap added in v7.6.0

type KmsconfigMap map[string]KmsconfigInput

func (KmsconfigMap) ElementType added in v7.6.0

func (KmsconfigMap) ElementType() reflect.Type

func (KmsconfigMap) ToKmsconfigMapOutput added in v7.6.0

func (i KmsconfigMap) ToKmsconfigMapOutput() KmsconfigMapOutput

func (KmsconfigMap) ToKmsconfigMapOutputWithContext added in v7.6.0

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

type KmsconfigMapInput added in v7.6.0

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 added in v7.6.0

type KmsconfigMapOutput struct{ *pulumi.OutputState }

func (KmsconfigMapOutput) ElementType added in v7.6.0

func (KmsconfigMapOutput) ElementType() reflect.Type

func (KmsconfigMapOutput) MapIndex added in v7.6.0

func (KmsconfigMapOutput) ToKmsconfigMapOutput added in v7.6.0

func (o KmsconfigMapOutput) ToKmsconfigMapOutput() KmsconfigMapOutput

func (KmsconfigMapOutput) ToKmsconfigMapOutputWithContext added in v7.6.0

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

type KmsconfigOutput added in v7.6.0

type KmsconfigOutput struct{ *pulumi.OutputState }

func (KmsconfigOutput) CryptoKeyName added in v7.6.0

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 added in v7.6.0

func (o KmsconfigOutput) Description() pulumi.StringPtrOutput

Description for the CMEK policy.

func (KmsconfigOutput) EffectiveLabels added in v7.6.0

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 added in v7.6.0

func (KmsconfigOutput) ElementType() reflect.Type

func (KmsconfigOutput) Instructions added in v7.6.0

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 added in v7.6.0

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 added in v7.6.0

func (o KmsconfigOutput) Location() pulumi.StringOutput

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

func (KmsconfigOutput) Name added in v7.6.0

Name of the CMEK policy.

***

func (KmsconfigOutput) Project added in v7.6.0

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 added in v7.6.0

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 added in v7.6.0

func (o KmsconfigOutput) ServiceAccount() pulumi.StringOutput

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

func (KmsconfigOutput) ToKmsconfigOutput added in v7.6.0

func (o KmsconfigOutput) ToKmsconfigOutput() KmsconfigOutput

func (KmsconfigOutput) ToKmsconfigOutputWithContext added in v7.6.0

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

type KmsconfigState added in v7.6.0

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 added in v7.6.0

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"`
	// 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. Usually a region name, expect for some STANDARD service level pools which require a zone name.
	Location pulumi.StringOutput `pulumi:"location"`
	// The resource name of the storage pool. Needs to be unique per location.
	//
	// ***
	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"`
	// Service level of the storage pool.
	// Possible values are: `PREMIUM`, `EXTREME`, `STANDARD`.
	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"`
}

Storage pools act as containers for volumes. All volumes in a storage pool share the following information: * Location * Service level * Virtual Private Cloud (VPC) network * Active Directory policy * LDAP use for NFS volumes, if applicable * Customer-managed encryption key (CMEK) policy

The capacity of the pool can be split up and assigned to volumes within the pool. Storage pools are a billable component of NetApp Volumes. Billing is based on the location, service level, and capacity allocated to a pool independent of consumption at the volume level.

To get more information about storagePool, see:

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

## Example Usage

### Storage Pool Create

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/compute"
"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/netapp"
"github.com/pulumi/pulumi-gcp/sdk/v7/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
	// 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. Usually a region name, expect for some STANDARD service level pools which require a zone name.
	Location pulumi.StringInput
	// The resource name of the storage pool. Needs to be unique per location.
	//
	// ***
	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
	// Service level of the storage pool.
	// Possible values are: `PREMIUM`, `EXTREME`, `STANDARD`.
	ServiceLevel pulumi.StringInput
}

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) 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. Usually a region name, expect for some STANDARD service level pools which require a zone name.

func (StoragePoolOutput) Name

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

***

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) ServiceLevel

func (o StoragePoolOutput) ServiceLevel() pulumi.StringOutput

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

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.

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
	// 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. Usually a region name, expect for some STANDARD service level pools which require a zone name.
	Location pulumi.StringPtrInput
	// The resource name of the storage pool. Needs to be unique per location.
	//
	// ***
	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
	// Service level of the storage pool.
	// Possible values are: `PREMIUM`, `EXTREME`, `STANDARD`.
	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
}

func (StoragePoolState) ElementType

func (StoragePoolState) ElementType() reflect.Type

type Volume added in v7.7.0

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"`
	// Capacity of the volume (in GiB).
	CapacityGib pulumi.StringOutput `pulumi:"capacityGib"`
	// 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.
	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"`
	// 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"`
	// 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"`
	// 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.
	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 accomodate the volume.
	StoragePool pulumi.StringOutput `pulumi:"storagePool"`
	// 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"`
}

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/v7/go/gcp/compute"
"github.com/pulumi/pulumi-gcp/sdk/v7/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 added in v7.7.0

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 added in v7.7.0

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 added in v7.7.0

func (*Volume) ElementType() reflect.Type

func (*Volume) ToVolumeOutput added in v7.7.0

func (i *Volume) ToVolumeOutput() VolumeOutput

func (*Volume) ToVolumeOutputWithContext added in v7.7.0

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

type VolumeArgs added in v7.7.0

type VolumeArgs struct {
	// 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.
	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
	// Name of the pool location. Usually a region name, expect for some STANDARD service level pools which require a zone name.
	Location pulumi.StringInput
	// 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 accomodate the volume.
	StoragePool pulumi.StringInput
	// 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 added in v7.7.0

func (VolumeArgs) ElementType() reflect.Type

type VolumeArray added in v7.7.0

type VolumeArray []VolumeInput

func (VolumeArray) ElementType added in v7.7.0

func (VolumeArray) ElementType() reflect.Type

func (VolumeArray) ToVolumeArrayOutput added in v7.7.0

func (i VolumeArray) ToVolumeArrayOutput() VolumeArrayOutput

func (VolumeArray) ToVolumeArrayOutputWithContext added in v7.7.0

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

type VolumeArrayInput added in v7.7.0

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 added in v7.7.0

type VolumeArrayOutput struct{ *pulumi.OutputState }

func (VolumeArrayOutput) ElementType added in v7.7.0

func (VolumeArrayOutput) ElementType() reflect.Type

func (VolumeArrayOutput) Index added in v7.7.0

func (VolumeArrayOutput) ToVolumeArrayOutput added in v7.7.0

func (o VolumeArrayOutput) ToVolumeArrayOutput() VolumeArrayOutput

func (VolumeArrayOutput) ToVolumeArrayOutputWithContext added in v7.7.0

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

type VolumeExportPolicy added in v7.7.0

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

type VolumeExportPolicyArgs added in v7.7.0

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

func (VolumeExportPolicyArgs) ElementType added in v7.7.0

func (VolumeExportPolicyArgs) ElementType() reflect.Type

func (VolumeExportPolicyArgs) ToVolumeExportPolicyOutput added in v7.7.0

func (i VolumeExportPolicyArgs) ToVolumeExportPolicyOutput() VolumeExportPolicyOutput

func (VolumeExportPolicyArgs) ToVolumeExportPolicyOutputWithContext added in v7.7.0

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

func (VolumeExportPolicyArgs) ToVolumeExportPolicyPtrOutput added in v7.7.0

func (i VolumeExportPolicyArgs) ToVolumeExportPolicyPtrOutput() VolumeExportPolicyPtrOutput

func (VolumeExportPolicyArgs) ToVolumeExportPolicyPtrOutputWithContext added in v7.7.0

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

type VolumeExportPolicyInput added in v7.7.0

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 added in v7.7.0

type VolumeExportPolicyOutput struct{ *pulumi.OutputState }

func (VolumeExportPolicyOutput) ElementType added in v7.7.0

func (VolumeExportPolicyOutput) ElementType() reflect.Type

func (VolumeExportPolicyOutput) Rules added in v7.7.0

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

func (VolumeExportPolicyOutput) ToVolumeExportPolicyOutput added in v7.7.0

func (o VolumeExportPolicyOutput) ToVolumeExportPolicyOutput() VolumeExportPolicyOutput

func (VolumeExportPolicyOutput) ToVolumeExportPolicyOutputWithContext added in v7.7.0

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

func (VolumeExportPolicyOutput) ToVolumeExportPolicyPtrOutput added in v7.7.0

func (o VolumeExportPolicyOutput) ToVolumeExportPolicyPtrOutput() VolumeExportPolicyPtrOutput

func (VolumeExportPolicyOutput) ToVolumeExportPolicyPtrOutputWithContext added in v7.7.0

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

type VolumeExportPolicyPtrInput added in v7.7.0

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

func VolumeExportPolicyPtr added in v7.7.0

func VolumeExportPolicyPtr(v *VolumeExportPolicyArgs) VolumeExportPolicyPtrInput

type VolumeExportPolicyPtrOutput added in v7.7.0

type VolumeExportPolicyPtrOutput struct{ *pulumi.OutputState }

func (VolumeExportPolicyPtrOutput) Elem added in v7.7.0

func (VolumeExportPolicyPtrOutput) ElementType added in v7.7.0

func (VolumeExportPolicyPtrOutput) Rules added in v7.7.0

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

func (VolumeExportPolicyPtrOutput) ToVolumeExportPolicyPtrOutput added in v7.7.0

func (o VolumeExportPolicyPtrOutput) ToVolumeExportPolicyPtrOutput() VolumeExportPolicyPtrOutput

func (VolumeExportPolicyPtrOutput) ToVolumeExportPolicyPtrOutputWithContext added in v7.7.0

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

type VolumeExportPolicyRule added in v7.7.0

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 seperated 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 added in v7.7.0

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 seperated 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 added in v7.7.0

func (VolumeExportPolicyRuleArgs) ElementType() reflect.Type

func (VolumeExportPolicyRuleArgs) ToVolumeExportPolicyRuleOutput added in v7.7.0

func (i VolumeExportPolicyRuleArgs) ToVolumeExportPolicyRuleOutput() VolumeExportPolicyRuleOutput

func (VolumeExportPolicyRuleArgs) ToVolumeExportPolicyRuleOutputWithContext added in v7.7.0

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

type VolumeExportPolicyRuleArray added in v7.7.0

type VolumeExportPolicyRuleArray []VolumeExportPolicyRuleInput

func (VolumeExportPolicyRuleArray) ElementType added in v7.7.0

func (VolumeExportPolicyRuleArray) ToVolumeExportPolicyRuleArrayOutput added in v7.7.0

func (i VolumeExportPolicyRuleArray) ToVolumeExportPolicyRuleArrayOutput() VolumeExportPolicyRuleArrayOutput

func (VolumeExportPolicyRuleArray) ToVolumeExportPolicyRuleArrayOutputWithContext added in v7.7.0

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

type VolumeExportPolicyRuleArrayInput added in v7.7.0

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 added in v7.7.0

type VolumeExportPolicyRuleArrayOutput struct{ *pulumi.OutputState }

func (VolumeExportPolicyRuleArrayOutput) ElementType added in v7.7.0

func (VolumeExportPolicyRuleArrayOutput) Index added in v7.7.0

func (VolumeExportPolicyRuleArrayOutput) ToVolumeExportPolicyRuleArrayOutput added in v7.7.0

func (o VolumeExportPolicyRuleArrayOutput) ToVolumeExportPolicyRuleArrayOutput() VolumeExportPolicyRuleArrayOutput

func (VolumeExportPolicyRuleArrayOutput) ToVolumeExportPolicyRuleArrayOutputWithContext added in v7.7.0

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

type VolumeExportPolicyRuleInput added in v7.7.0

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 added in v7.7.0

type VolumeExportPolicyRuleOutput struct{ *pulumi.OutputState }

func (VolumeExportPolicyRuleOutput) AccessType added in v7.7.0

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

func (VolumeExportPolicyRuleOutput) AllowedClients added in v7.7.0

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

func (VolumeExportPolicyRuleOutput) ElementType added in v7.7.0

func (VolumeExportPolicyRuleOutput) HasRootAccess added in v7.7.0

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 added in v7.7.0

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 added in v7.7.0

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 added in v7.7.0

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 added in v7.7.0

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 added in v7.7.0

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 added in v7.7.0

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 added in v7.7.0

Enable to apply the export rule to NFSV3 clients.

func (VolumeExportPolicyRuleOutput) Nfsv4 added in v7.7.0

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

func (VolumeExportPolicyRuleOutput) ToVolumeExportPolicyRuleOutput added in v7.7.0

func (o VolumeExportPolicyRuleOutput) ToVolumeExportPolicyRuleOutput() VolumeExportPolicyRuleOutput

func (VolumeExportPolicyRuleOutput) ToVolumeExportPolicyRuleOutputWithContext added in v7.7.0

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

type VolumeInput added in v7.7.0

type VolumeInput interface {
	pulumi.Input

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

type VolumeMap added in v7.7.0

type VolumeMap map[string]VolumeInput

func (VolumeMap) ElementType added in v7.7.0

func (VolumeMap) ElementType() reflect.Type

func (VolumeMap) ToVolumeMapOutput added in v7.7.0

func (i VolumeMap) ToVolumeMapOutput() VolumeMapOutput

func (VolumeMap) ToVolumeMapOutputWithContext added in v7.7.0

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

type VolumeMapInput added in v7.7.0

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 added in v7.7.0

type VolumeMapOutput struct{ *pulumi.OutputState }

func (VolumeMapOutput) ElementType added in v7.7.0

func (VolumeMapOutput) ElementType() reflect.Type

func (VolumeMapOutput) MapIndex added in v7.7.0

func (VolumeMapOutput) ToVolumeMapOutput added in v7.7.0

func (o VolumeMapOutput) ToVolumeMapOutput() VolumeMapOutput

func (VolumeMapOutput) ToVolumeMapOutputWithContext added in v7.7.0

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

type VolumeMountOption added in v7.7.0

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 added in v7.7.0

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 added in v7.7.0

func (VolumeMountOptionArgs) ElementType() reflect.Type

func (VolumeMountOptionArgs) ToVolumeMountOptionOutput added in v7.7.0

func (i VolumeMountOptionArgs) ToVolumeMountOptionOutput() VolumeMountOptionOutput

func (VolumeMountOptionArgs) ToVolumeMountOptionOutputWithContext added in v7.7.0

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

type VolumeMountOptionArray added in v7.7.0

type VolumeMountOptionArray []VolumeMountOptionInput

func (VolumeMountOptionArray) ElementType added in v7.7.0

func (VolumeMountOptionArray) ElementType() reflect.Type

func (VolumeMountOptionArray) ToVolumeMountOptionArrayOutput added in v7.7.0

func (i VolumeMountOptionArray) ToVolumeMountOptionArrayOutput() VolumeMountOptionArrayOutput

func (VolumeMountOptionArray) ToVolumeMountOptionArrayOutputWithContext added in v7.7.0

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

type VolumeMountOptionArrayInput added in v7.7.0

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 added in v7.7.0

type VolumeMountOptionArrayOutput struct{ *pulumi.OutputState }

func (VolumeMountOptionArrayOutput) ElementType added in v7.7.0

func (VolumeMountOptionArrayOutput) Index added in v7.7.0

func (VolumeMountOptionArrayOutput) ToVolumeMountOptionArrayOutput added in v7.7.0

func (o VolumeMountOptionArrayOutput) ToVolumeMountOptionArrayOutput() VolumeMountOptionArrayOutput

func (VolumeMountOptionArrayOutput) ToVolumeMountOptionArrayOutputWithContext added in v7.7.0

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

type VolumeMountOptionInput added in v7.7.0

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 added in v7.7.0

type VolumeMountOptionOutput struct{ *pulumi.OutputState }

func (VolumeMountOptionOutput) ElementType added in v7.7.0

func (VolumeMountOptionOutput) ElementType() reflect.Type

func (VolumeMountOptionOutput) Export added in v7.7.0

(Output) Export path of the volume.

func (VolumeMountOptionOutput) ExportFull added in v7.7.0

(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 added in v7.7.0

(Output) Human-readable mount instructions.

func (VolumeMountOptionOutput) Protocol added in v7.7.0

(Output) Protocol to mount with.

func (VolumeMountOptionOutput) ToVolumeMountOptionOutput added in v7.7.0

func (o VolumeMountOptionOutput) ToVolumeMountOptionOutput() VolumeMountOptionOutput

func (VolumeMountOptionOutput) ToVolumeMountOptionOutputWithContext added in v7.7.0

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

type VolumeOutput added in v7.7.0

type VolumeOutput struct{ *pulumi.OutputState }

func (VolumeOutput) ActiveDirectory added in v7.7.0

func (o VolumeOutput) ActiveDirectory() pulumi.StringOutput

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

func (VolumeOutput) CapacityGib added in v7.7.0

func (o VolumeOutput) CapacityGib() pulumi.StringOutput

Capacity of the volume (in GiB).

func (VolumeOutput) CreateTime added in v7.12.0

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 added in v7.8.0

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.

func (VolumeOutput) Description added in v7.7.0

func (o VolumeOutput) Description() pulumi.StringPtrOutput

An optional description of this resource.

func (VolumeOutput) EffectiveLabels added in v7.7.0

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 added in v7.7.0

func (VolumeOutput) ElementType() reflect.Type

func (VolumeOutput) EncryptionType added in v7.7.0

func (o VolumeOutput) EncryptionType() pulumi.StringOutput

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

func (VolumeOutput) ExportPolicy added in v7.7.0

func (o VolumeOutput) ExportPolicy() VolumeExportPolicyPtrOutput

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

func (VolumeOutput) HasReplication added in v7.7.0

func (o VolumeOutput) HasReplication() pulumi.BoolOutput

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

func (VolumeOutput) KerberosEnabled added in v7.7.0

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 added in v7.7.0

func (o VolumeOutput) KmsConfig() pulumi.StringOutput

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

func (VolumeOutput) Labels added in v7.7.0

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) LdapEnabled added in v7.7.0

func (o VolumeOutput) LdapEnabled() pulumi.BoolOutput

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

func (VolumeOutput) Location added in v7.7.0

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 added in v7.7.0

func (o VolumeOutput) MountOptions() VolumeMountOptionArrayOutput

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

func (VolumeOutput) Name added in v7.7.0

func (o VolumeOutput) Name() pulumi.StringOutput

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

***

func (VolumeOutput) Network added in v7.7.0

func (o VolumeOutput) Network() pulumi.StringOutput

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

func (VolumeOutput) Project added in v7.7.0

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 added in v7.7.0

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 added in v7.7.0

func (o VolumeOutput) PsaRange() pulumi.StringOutput

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

func (VolumeOutput) PulumiLabels added in v7.7.0

func (o VolumeOutput) PulumiLabels() pulumi.StringMapOutput

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

func (VolumeOutput) RestoreParameters added in v7.12.0

func (o VolumeOutput) RestoreParameters() VolumeRestoreParametersPtrOutput

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

func (VolumeOutput) RestrictedActions added in v7.7.0

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 added in v7.7.0

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 added in v7.7.0

func (o VolumeOutput) ServiceLevel() pulumi.StringOutput

Service level of the volume. Inherited from storage pool.

func (VolumeOutput) ShareName added in v7.7.0

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 added in v7.7.0

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 added in v7.7.0

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 added in v7.7.0

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 added in v7.12.0

func (o VolumeOutput) State() pulumi.StringOutput

State of the volume.

func (VolumeOutput) StateDetails added in v7.12.0

func (o VolumeOutput) StateDetails() pulumi.StringOutput

State details of the volume.

func (VolumeOutput) StoragePool added in v7.7.0

func (o VolumeOutput) StoragePool() pulumi.StringOutput

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

func (VolumeOutput) ToVolumeOutput added in v7.7.0

func (o VolumeOutput) ToVolumeOutput() VolumeOutput

func (VolumeOutput) ToVolumeOutputWithContext added in v7.7.0

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

func (VolumeOutput) UnixPermissions added in v7.7.0

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 added in v7.7.0

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.

type VolumeReplication added in v7.12.0

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"`
	// A destination volume is created as part of replication creation. The destination volume will not became under Terraform
	// management unless you import it manually. If you delete the replication, this volume will remain. Setting this parameter
	// to true will delete the *current* destination volume when destroying the replication. If you reversed the replication
	// direction, this will be your former source volume! For production use, it is recommended to keep this parameter false to
	// avoid accidental volume deletion. Handle with care. Default is false.
	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"`
	// Replication resource state is independent of mirror_state. With enough data, it can take many hours for mirror_state to
	// reach MIRRORED. If you want Terraform to wait for the mirror to finish on create/stop/resume operations, set this
	// parameter to true. Default is false.
	WaitForMirror pulumi.BoolPtrOutput `pulumi:"waitForMirror"`
}

## Example Usage

### Netapp Volume Replication Create

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/compute"
"github.com/pulumi/pulumi-gcp/sdk/v7/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),
		})
		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 added in v7.12.0

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 added in v7.12.0

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 added in v7.12.0

func (*VolumeReplication) ElementType() reflect.Type

func (*VolumeReplication) ToVolumeReplicationOutput added in v7.12.0

func (i *VolumeReplication) ToVolumeReplicationOutput() VolumeReplicationOutput

func (*VolumeReplication) ToVolumeReplicationOutputWithContext added in v7.12.0

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

type VolumeReplicationArgs added in v7.12.0

type VolumeReplicationArgs struct {
	// A destination volume is created as part of replication creation. The destination volume will not became under Terraform
	// management unless you import it manually. If you delete the replication, this volume will remain. Setting this parameter
	// to true will delete the *current* destination volume when destroying the replication. If you reversed the replication
	// direction, this will be your former source volume! For production use, it is recommended to keep this parameter false to
	// avoid accidental volume deletion. Handle with care. Default is false.
	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
	// Replication resource state is independent of mirror_state. With enough data, it can take many hours for mirror_state to
	// reach MIRRORED. If you want Terraform to wait for the mirror to finish on create/stop/resume operations, set this
	// parameter to true. Default is false.
	WaitForMirror pulumi.BoolPtrInput
}

The set of arguments for constructing a VolumeReplication resource.

func (VolumeReplicationArgs) ElementType added in v7.12.0

func (VolumeReplicationArgs) ElementType() reflect.Type

type VolumeReplicationArray added in v7.12.0

type VolumeReplicationArray []VolumeReplicationInput

func (VolumeReplicationArray) ElementType added in v7.12.0

func (VolumeReplicationArray) ElementType() reflect.Type

func (VolumeReplicationArray) ToVolumeReplicationArrayOutput added in v7.12.0

func (i VolumeReplicationArray) ToVolumeReplicationArrayOutput() VolumeReplicationArrayOutput

func (VolumeReplicationArray) ToVolumeReplicationArrayOutputWithContext added in v7.12.0

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

type VolumeReplicationArrayInput added in v7.12.0

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 added in v7.12.0

type VolumeReplicationArrayOutput struct{ *pulumi.OutputState }

func (VolumeReplicationArrayOutput) ElementType added in v7.12.0

func (VolumeReplicationArrayOutput) Index added in v7.12.0

func (VolumeReplicationArrayOutput) ToVolumeReplicationArrayOutput added in v7.12.0

func (o VolumeReplicationArrayOutput) ToVolumeReplicationArrayOutput() VolumeReplicationArrayOutput

func (VolumeReplicationArrayOutput) ToVolumeReplicationArrayOutputWithContext added in v7.12.0

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

type VolumeReplicationDestinationVolumeParameters added in v7.12.0

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 added in v7.12.0

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 added in v7.12.0

func (VolumeReplicationDestinationVolumeParametersArgs) ToVolumeReplicationDestinationVolumeParametersOutput added in v7.12.0

func (i VolumeReplicationDestinationVolumeParametersArgs) ToVolumeReplicationDestinationVolumeParametersOutput() VolumeReplicationDestinationVolumeParametersOutput

func (VolumeReplicationDestinationVolumeParametersArgs) ToVolumeReplicationDestinationVolumeParametersOutputWithContext added in v7.12.0

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

func (VolumeReplicationDestinationVolumeParametersArgs) ToVolumeReplicationDestinationVolumeParametersPtrOutput added in v7.12.0

func (i VolumeReplicationDestinationVolumeParametersArgs) ToVolumeReplicationDestinationVolumeParametersPtrOutput() VolumeReplicationDestinationVolumeParametersPtrOutput

func (VolumeReplicationDestinationVolumeParametersArgs) ToVolumeReplicationDestinationVolumeParametersPtrOutputWithContext added in v7.12.0

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

type VolumeReplicationDestinationVolumeParametersInput added in v7.12.0

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 added in v7.12.0

type VolumeReplicationDestinationVolumeParametersOutput struct{ *pulumi.OutputState }

func (VolumeReplicationDestinationVolumeParametersOutput) Description added in v7.12.0

Description for the destination volume.

func (VolumeReplicationDestinationVolumeParametersOutput) ElementType added in v7.12.0

func (VolumeReplicationDestinationVolumeParametersOutput) ShareName added in v7.12.0

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

func (VolumeReplicationDestinationVolumeParametersOutput) StoragePool added in v7.12.0

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

func (VolumeReplicationDestinationVolumeParametersOutput) ToVolumeReplicationDestinationVolumeParametersOutput added in v7.12.0

func (o VolumeReplicationDestinationVolumeParametersOutput) ToVolumeReplicationDestinationVolumeParametersOutput() VolumeReplicationDestinationVolumeParametersOutput

func (VolumeReplicationDestinationVolumeParametersOutput) ToVolumeReplicationDestinationVolumeParametersOutputWithContext added in v7.12.0

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

func (VolumeReplicationDestinationVolumeParametersOutput) ToVolumeReplicationDestinationVolumeParametersPtrOutput added in v7.12.0

func (o VolumeReplicationDestinationVolumeParametersOutput) ToVolumeReplicationDestinationVolumeParametersPtrOutput() VolumeReplicationDestinationVolumeParametersPtrOutput

func (VolumeReplicationDestinationVolumeParametersOutput) ToVolumeReplicationDestinationVolumeParametersPtrOutputWithContext added in v7.12.0

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

func (VolumeReplicationDestinationVolumeParametersOutput) VolumeId added in v7.12.0

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

type VolumeReplicationDestinationVolumeParametersPtrInput added in v7.12.0

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 added in v7.12.0

type VolumeReplicationDestinationVolumeParametersPtrOutput struct{ *pulumi.OutputState }

func (VolumeReplicationDestinationVolumeParametersPtrOutput) Description added in v7.12.0

Description for the destination volume.

func (VolumeReplicationDestinationVolumeParametersPtrOutput) Elem added in v7.12.0

func (VolumeReplicationDestinationVolumeParametersPtrOutput) ElementType added in v7.12.0

func (VolumeReplicationDestinationVolumeParametersPtrOutput) ShareName added in v7.12.0

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

func (VolumeReplicationDestinationVolumeParametersPtrOutput) StoragePool added in v7.12.0

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

func (VolumeReplicationDestinationVolumeParametersPtrOutput) ToVolumeReplicationDestinationVolumeParametersPtrOutput added in v7.12.0

func (VolumeReplicationDestinationVolumeParametersPtrOutput) ToVolumeReplicationDestinationVolumeParametersPtrOutputWithContext added in v7.12.0

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

func (VolumeReplicationDestinationVolumeParametersPtrOutput) VolumeId added in v7.12.0

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

type VolumeReplicationInput added in v7.12.0

type VolumeReplicationInput interface {
	pulumi.Input

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

type VolumeReplicationMap added in v7.12.0

type VolumeReplicationMap map[string]VolumeReplicationInput

func (VolumeReplicationMap) ElementType added in v7.12.0

func (VolumeReplicationMap) ElementType() reflect.Type

func (VolumeReplicationMap) ToVolumeReplicationMapOutput added in v7.12.0

func (i VolumeReplicationMap) ToVolumeReplicationMapOutput() VolumeReplicationMapOutput

func (VolumeReplicationMap) ToVolumeReplicationMapOutputWithContext added in v7.12.0

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

type VolumeReplicationMapInput added in v7.12.0

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 added in v7.12.0

type VolumeReplicationMapOutput struct{ *pulumi.OutputState }

func (VolumeReplicationMapOutput) ElementType added in v7.12.0

func (VolumeReplicationMapOutput) ElementType() reflect.Type

func (VolumeReplicationMapOutput) MapIndex added in v7.12.0

func (VolumeReplicationMapOutput) ToVolumeReplicationMapOutput added in v7.12.0

func (o VolumeReplicationMapOutput) ToVolumeReplicationMapOutput() VolumeReplicationMapOutput

func (VolumeReplicationMapOutput) ToVolumeReplicationMapOutputWithContext added in v7.12.0

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

type VolumeReplicationOutput added in v7.12.0

type VolumeReplicationOutput struct{ *pulumi.OutputState }

func (VolumeReplicationOutput) CreateTime added in v7.12.0

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

func (VolumeReplicationOutput) DeleteDestinationVolume added in v7.12.0

func (o VolumeReplicationOutput) DeleteDestinationVolume() pulumi.BoolPtrOutput

A destination volume is created as part of replication creation. The destination volume will not became under Terraform management unless you import it manually. If you delete the replication, this volume will remain. Setting this parameter to true will delete the *current* destination volume when destroying the replication. If you reversed the replication direction, this will be your former source volume! For production use, it is recommended to keep this parameter false to avoid accidental volume deletion. Handle with care. Default is false.

func (VolumeReplicationOutput) Description added in v7.12.0

An description of this resource.

func (VolumeReplicationOutput) DestinationVolume added in v7.12.0

func (o VolumeReplicationOutput) DestinationVolume() pulumi.StringOutput

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

func (VolumeReplicationOutput) DestinationVolumeParameters added in v7.12.0

Destination volume parameters. Structure is documented below.

func (VolumeReplicationOutput) EffectiveLabels added in v7.12.0

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 added in v7.12.0

func (VolumeReplicationOutput) ElementType() reflect.Type

func (VolumeReplicationOutput) ForceStopping added in v7.12.0

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 added in v7.12.0

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 added in v7.12.0

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 added in v7.12.0

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

func (VolumeReplicationOutput) MirrorState added in v7.12.0

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 added in v7.12.0

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

***

func (VolumeReplicationOutput) Project added in v7.12.0

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

func (VolumeReplicationOutput) PulumiLabels added in v7.12.0

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

func (VolumeReplicationOutput) ReplicationEnabled added in v7.12.0

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 added in v7.12.0

func (o VolumeReplicationOutput) ReplicationSchedule() pulumi.StringOutput

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

func (VolumeReplicationOutput) Role added in v7.12.0

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 added in v7.12.0

func (o VolumeReplicationOutput) SourceVolume() pulumi.StringOutput

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

func (VolumeReplicationOutput) State added in v7.12.0

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

func (VolumeReplicationOutput) StateDetails added in v7.12.0

func (o VolumeReplicationOutput) StateDetails() pulumi.StringOutput

State details of the replication resource.

func (VolumeReplicationOutput) ToVolumeReplicationOutput added in v7.12.0

func (o VolumeReplicationOutput) ToVolumeReplicationOutput() VolumeReplicationOutput

func (VolumeReplicationOutput) ToVolumeReplicationOutputWithContext added in v7.12.0

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

func (VolumeReplicationOutput) TransferStats added in v7.12.0

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

func (VolumeReplicationOutput) VolumeName added in v7.12.0

The name of the existing source volume.

func (VolumeReplicationOutput) WaitForMirror added in v7.12.0

func (o VolumeReplicationOutput) WaitForMirror() pulumi.BoolPtrOutput

Replication resource state is independent of mirror_state. With enough data, it can take many hours for mirror_state to reach MIRRORED. If you want Terraform to wait for the mirror to finish on create/stop/resume operations, set this parameter to true. Default is false.

type VolumeReplicationState added in v7.12.0

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
	// A destination volume is created as part of replication creation. The destination volume will not became under Terraform
	// management unless you import it manually. If you delete the replication, this volume will remain. Setting this parameter
	// to true will delete the *current* destination volume when destroying the replication. If you reversed the replication
	// direction, this will be your former source volume! For production use, it is recommended to keep this parameter false to
	// avoid accidental volume deletion. Handle with care. Default is false.
	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
	// Replication resource state is independent of mirror_state. With enough data, it can take many hours for mirror_state to
	// reach MIRRORED. If you want Terraform to wait for the mirror to finish on create/stop/resume operations, set this
	// parameter to true. Default is false.
	WaitForMirror pulumi.BoolPtrInput
}

func (VolumeReplicationState) ElementType added in v7.12.0

func (VolumeReplicationState) ElementType() reflect.Type

type VolumeReplicationTransferStat added in v7.12.0

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)
	// Total time taken so far during current transfer.
	TotalTransferDuration *string `pulumi:"totalTransferDuration"`
	// (Output)
	// Number of bytes transferred so far in current transfer.
	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 added in v7.12.0

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)
	// Total time taken so far during current transfer.
	TotalTransferDuration pulumi.StringPtrInput `pulumi:"totalTransferDuration"`
	// (Output)
	// Number of bytes transferred so far in current transfer.
	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 added in v7.12.0

func (VolumeReplicationTransferStatArgs) ToVolumeReplicationTransferStatOutput added in v7.12.0

func (i VolumeReplicationTransferStatArgs) ToVolumeReplicationTransferStatOutput() VolumeReplicationTransferStatOutput

func (VolumeReplicationTransferStatArgs) ToVolumeReplicationTransferStatOutputWithContext added in v7.12.0

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

type VolumeReplicationTransferStatArray added in v7.12.0

type VolumeReplicationTransferStatArray []VolumeReplicationTransferStatInput

func (VolumeReplicationTransferStatArray) ElementType added in v7.12.0

func (VolumeReplicationTransferStatArray) ToVolumeReplicationTransferStatArrayOutput added in v7.12.0

func (i VolumeReplicationTransferStatArray) ToVolumeReplicationTransferStatArrayOutput() VolumeReplicationTransferStatArrayOutput

func (VolumeReplicationTransferStatArray) ToVolumeReplicationTransferStatArrayOutputWithContext added in v7.12.0

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

type VolumeReplicationTransferStatArrayInput added in v7.12.0

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 added in v7.12.0

type VolumeReplicationTransferStatArrayOutput struct{ *pulumi.OutputState }

func (VolumeReplicationTransferStatArrayOutput) ElementType added in v7.12.0

func (VolumeReplicationTransferStatArrayOutput) Index added in v7.12.0

func (VolumeReplicationTransferStatArrayOutput) ToVolumeReplicationTransferStatArrayOutput added in v7.12.0

func (o VolumeReplicationTransferStatArrayOutput) ToVolumeReplicationTransferStatArrayOutput() VolumeReplicationTransferStatArrayOutput

func (VolumeReplicationTransferStatArrayOutput) ToVolumeReplicationTransferStatArrayOutputWithContext added in v7.12.0

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

type VolumeReplicationTransferStatInput added in v7.12.0

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 added in v7.12.0

type VolumeReplicationTransferStatOutput struct{ *pulumi.OutputState }

func (VolumeReplicationTransferStatOutput) ElementType added in v7.12.0

func (VolumeReplicationTransferStatOutput) LagDuration added in v7.12.0

(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 added in v7.12.0

(Output) Size of last completed transfer in bytes.

func (VolumeReplicationTransferStatOutput) LastTransferDuration added in v7.12.0

(Output) Time taken during last completed transfer.

func (VolumeReplicationTransferStatOutput) LastTransferEndTime added in v7.12.0

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

func (VolumeReplicationTransferStatOutput) LastTransferError added in v7.12.0

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

func (VolumeReplicationTransferStatOutput) ToVolumeReplicationTransferStatOutput added in v7.12.0

func (o VolumeReplicationTransferStatOutput) ToVolumeReplicationTransferStatOutput() VolumeReplicationTransferStatOutput

func (VolumeReplicationTransferStatOutput) ToVolumeReplicationTransferStatOutputWithContext added in v7.12.0

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

func (VolumeReplicationTransferStatOutput) TotalTransferDuration added in v7.12.0

(Output) Total time taken so far during current transfer.

func (VolumeReplicationTransferStatOutput) TransferBytes added in v7.12.0

(Output) Number of bytes transferred so far in current transfer.

func (VolumeReplicationTransferStatOutput) UpdateTime added in v7.12.0

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

type VolumeRestoreParameters added in v7.12.0

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 added in v7.12.0

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 added in v7.12.0

func (VolumeRestoreParametersArgs) ToVolumeRestoreParametersOutput added in v7.12.0

func (i VolumeRestoreParametersArgs) ToVolumeRestoreParametersOutput() VolumeRestoreParametersOutput

func (VolumeRestoreParametersArgs) ToVolumeRestoreParametersOutputWithContext added in v7.12.0

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

func (VolumeRestoreParametersArgs) ToVolumeRestoreParametersPtrOutput added in v7.12.0

func (i VolumeRestoreParametersArgs) ToVolumeRestoreParametersPtrOutput() VolumeRestoreParametersPtrOutput

func (VolumeRestoreParametersArgs) ToVolumeRestoreParametersPtrOutputWithContext added in v7.12.0

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

type VolumeRestoreParametersInput added in v7.12.0

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 added in v7.12.0

type VolumeRestoreParametersOutput struct{ *pulumi.OutputState }

func (VolumeRestoreParametersOutput) ElementType added in v7.12.0

func (VolumeRestoreParametersOutput) SourceBackup added in v7.12.0

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 added in v7.12.0

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 added in v7.12.0

func (o VolumeRestoreParametersOutput) ToVolumeRestoreParametersOutput() VolumeRestoreParametersOutput

func (VolumeRestoreParametersOutput) ToVolumeRestoreParametersOutputWithContext added in v7.12.0

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

func (VolumeRestoreParametersOutput) ToVolumeRestoreParametersPtrOutput added in v7.12.0

func (o VolumeRestoreParametersOutput) ToVolumeRestoreParametersPtrOutput() VolumeRestoreParametersPtrOutput

func (VolumeRestoreParametersOutput) ToVolumeRestoreParametersPtrOutputWithContext added in v7.12.0

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

type VolumeRestoreParametersPtrInput added in v7.12.0

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

func VolumeRestoreParametersPtr added in v7.12.0

func VolumeRestoreParametersPtr(v *VolumeRestoreParametersArgs) VolumeRestoreParametersPtrInput

type VolumeRestoreParametersPtrOutput added in v7.12.0

type VolumeRestoreParametersPtrOutput struct{ *pulumi.OutputState }

func (VolumeRestoreParametersPtrOutput) Elem added in v7.12.0

func (VolumeRestoreParametersPtrOutput) ElementType added in v7.12.0

func (VolumeRestoreParametersPtrOutput) SourceBackup added in v7.12.0

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 added in v7.12.0

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 added in v7.12.0

func (o VolumeRestoreParametersPtrOutput) ToVolumeRestoreParametersPtrOutput() VolumeRestoreParametersPtrOutput

func (VolumeRestoreParametersPtrOutput) ToVolumeRestoreParametersPtrOutputWithContext added in v7.12.0

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

type VolumeSnapshot added in v7.8.0

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/v7/go/gcp/compute"
"github.com/pulumi/pulumi-gcp/sdk/v7/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"),
		})
		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 added in v7.8.0

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 added in v7.8.0

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 added in v7.8.0

func (*VolumeSnapshot) ElementType() reflect.Type

func (*VolumeSnapshot) ToVolumeSnapshotOutput added in v7.8.0

func (i *VolumeSnapshot) ToVolumeSnapshotOutput() VolumeSnapshotOutput

func (*VolumeSnapshot) ToVolumeSnapshotOutputWithContext added in v7.8.0

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

type VolumeSnapshotArgs added in v7.8.0

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 added in v7.8.0

func (VolumeSnapshotArgs) ElementType() reflect.Type

type VolumeSnapshotArray added in v7.8.0

type VolumeSnapshotArray []VolumeSnapshotInput

func (VolumeSnapshotArray) ElementType added in v7.8.0

func (VolumeSnapshotArray) ElementType() reflect.Type

func (VolumeSnapshotArray) ToVolumeSnapshotArrayOutput added in v7.8.0

func (i VolumeSnapshotArray) ToVolumeSnapshotArrayOutput() VolumeSnapshotArrayOutput

func (VolumeSnapshotArray) ToVolumeSnapshotArrayOutputWithContext added in v7.8.0

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

type VolumeSnapshotArrayInput added in v7.8.0

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 added in v7.8.0

type VolumeSnapshotArrayOutput struct{ *pulumi.OutputState }

func (VolumeSnapshotArrayOutput) ElementType added in v7.8.0

func (VolumeSnapshotArrayOutput) ElementType() reflect.Type

func (VolumeSnapshotArrayOutput) Index added in v7.8.0

func (VolumeSnapshotArrayOutput) ToVolumeSnapshotArrayOutput added in v7.8.0

func (o VolumeSnapshotArrayOutput) ToVolumeSnapshotArrayOutput() VolumeSnapshotArrayOutput

func (VolumeSnapshotArrayOutput) ToVolumeSnapshotArrayOutputWithContext added in v7.8.0

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

type VolumeSnapshotInput added in v7.8.0

type VolumeSnapshotInput interface {
	pulumi.Input

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

type VolumeSnapshotMap added in v7.8.0

type VolumeSnapshotMap map[string]VolumeSnapshotInput

func (VolumeSnapshotMap) ElementType added in v7.8.0

func (VolumeSnapshotMap) ElementType() reflect.Type

func (VolumeSnapshotMap) ToVolumeSnapshotMapOutput added in v7.8.0

func (i VolumeSnapshotMap) ToVolumeSnapshotMapOutput() VolumeSnapshotMapOutput

func (VolumeSnapshotMap) ToVolumeSnapshotMapOutputWithContext added in v7.8.0

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

type VolumeSnapshotMapInput added in v7.8.0

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 added in v7.8.0

type VolumeSnapshotMapOutput struct{ *pulumi.OutputState }

func (VolumeSnapshotMapOutput) ElementType added in v7.8.0

func (VolumeSnapshotMapOutput) ElementType() reflect.Type

func (VolumeSnapshotMapOutput) MapIndex added in v7.8.0

func (VolumeSnapshotMapOutput) ToVolumeSnapshotMapOutput added in v7.8.0

func (o VolumeSnapshotMapOutput) ToVolumeSnapshotMapOutput() VolumeSnapshotMapOutput

func (VolumeSnapshotMapOutput) ToVolumeSnapshotMapOutputWithContext added in v7.8.0

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

type VolumeSnapshotOutput added in v7.8.0

type VolumeSnapshotOutput struct{ *pulumi.OutputState }

func (VolumeSnapshotOutput) Description added in v7.8.0

Description for the snapshot.

func (VolumeSnapshotOutput) EffectiveLabels added in v7.8.0

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 added in v7.8.0

func (VolumeSnapshotOutput) ElementType() reflect.Type

func (VolumeSnapshotOutput) Labels added in v7.8.0

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 added in v7.8.0

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

func (VolumeSnapshotOutput) Name added in v7.8.0

The name of the snapshot.

***

func (VolumeSnapshotOutput) Project added in v7.8.0

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

func (VolumeSnapshotOutput) PulumiLabels added in v7.8.0

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 added in v7.8.0

func (o VolumeSnapshotOutput) ToVolumeSnapshotOutput() VolumeSnapshotOutput

func (VolumeSnapshotOutput) ToVolumeSnapshotOutputWithContext added in v7.8.0

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

func (VolumeSnapshotOutput) UsedBytes added in v7.8.0

func (o VolumeSnapshotOutput) UsedBytes() pulumi.IntOutput

Storage used to store blocks unique to this snapshot.

func (VolumeSnapshotOutput) VolumeName added in v7.8.0

func (o VolumeSnapshotOutput) VolumeName() pulumi.StringOutput

The name of the volume to create the snapshot in.

type VolumeSnapshotPolicy added in v7.7.0

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 added in v7.7.0

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 added in v7.7.0

func (VolumeSnapshotPolicyArgs) ElementType() reflect.Type

func (VolumeSnapshotPolicyArgs) ToVolumeSnapshotPolicyOutput added in v7.7.0

func (i VolumeSnapshotPolicyArgs) ToVolumeSnapshotPolicyOutput() VolumeSnapshotPolicyOutput

func (VolumeSnapshotPolicyArgs) ToVolumeSnapshotPolicyOutputWithContext added in v7.7.0

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

func (VolumeSnapshotPolicyArgs) ToVolumeSnapshotPolicyPtrOutput added in v7.7.0

func (i VolumeSnapshotPolicyArgs) ToVolumeSnapshotPolicyPtrOutput() VolumeSnapshotPolicyPtrOutput

func (VolumeSnapshotPolicyArgs) ToVolumeSnapshotPolicyPtrOutputWithContext added in v7.7.0

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

type VolumeSnapshotPolicyDailySchedule added in v7.7.0

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 added in v7.7.0

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 added in v7.7.0

func (VolumeSnapshotPolicyDailyScheduleArgs) ToVolumeSnapshotPolicyDailyScheduleOutput added in v7.7.0

func (i VolumeSnapshotPolicyDailyScheduleArgs) ToVolumeSnapshotPolicyDailyScheduleOutput() VolumeSnapshotPolicyDailyScheduleOutput

func (VolumeSnapshotPolicyDailyScheduleArgs) ToVolumeSnapshotPolicyDailyScheduleOutputWithContext added in v7.7.0

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

func (VolumeSnapshotPolicyDailyScheduleArgs) ToVolumeSnapshotPolicyDailySchedulePtrOutput added in v7.7.0

func (i VolumeSnapshotPolicyDailyScheduleArgs) ToVolumeSnapshotPolicyDailySchedulePtrOutput() VolumeSnapshotPolicyDailySchedulePtrOutput

func (VolumeSnapshotPolicyDailyScheduleArgs) ToVolumeSnapshotPolicyDailySchedulePtrOutputWithContext added in v7.7.0

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

type VolumeSnapshotPolicyDailyScheduleInput added in v7.7.0

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 added in v7.7.0

type VolumeSnapshotPolicyDailyScheduleOutput struct{ *pulumi.OutputState }

func (VolumeSnapshotPolicyDailyScheduleOutput) ElementType added in v7.7.0

func (VolumeSnapshotPolicyDailyScheduleOutput) Hour added in v7.7.0

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

func (VolumeSnapshotPolicyDailyScheduleOutput) Minute added in v7.7.0

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

func (VolumeSnapshotPolicyDailyScheduleOutput) SnapshotsToKeep added in v7.7.0

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

func (VolumeSnapshotPolicyDailyScheduleOutput) ToVolumeSnapshotPolicyDailyScheduleOutput added in v7.7.0

func (o VolumeSnapshotPolicyDailyScheduleOutput) ToVolumeSnapshotPolicyDailyScheduleOutput() VolumeSnapshotPolicyDailyScheduleOutput

func (VolumeSnapshotPolicyDailyScheduleOutput) ToVolumeSnapshotPolicyDailyScheduleOutputWithContext added in v7.7.0

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

func (VolumeSnapshotPolicyDailyScheduleOutput) ToVolumeSnapshotPolicyDailySchedulePtrOutput added in v7.7.0

func (o VolumeSnapshotPolicyDailyScheduleOutput) ToVolumeSnapshotPolicyDailySchedulePtrOutput() VolumeSnapshotPolicyDailySchedulePtrOutput

func (VolumeSnapshotPolicyDailyScheduleOutput) ToVolumeSnapshotPolicyDailySchedulePtrOutputWithContext added in v7.7.0

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

type VolumeSnapshotPolicyDailySchedulePtrInput added in v7.7.0

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 added in v7.7.0

type VolumeSnapshotPolicyDailySchedulePtrOutput struct{ *pulumi.OutputState }

func (VolumeSnapshotPolicyDailySchedulePtrOutput) Elem added in v7.7.0

func (VolumeSnapshotPolicyDailySchedulePtrOutput) ElementType added in v7.7.0

func (VolumeSnapshotPolicyDailySchedulePtrOutput) Hour added in v7.7.0

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

func (VolumeSnapshotPolicyDailySchedulePtrOutput) Minute added in v7.7.0

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

func (VolumeSnapshotPolicyDailySchedulePtrOutput) SnapshotsToKeep added in v7.7.0

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

func (VolumeSnapshotPolicyDailySchedulePtrOutput) ToVolumeSnapshotPolicyDailySchedulePtrOutput added in v7.7.0

func (o VolumeSnapshotPolicyDailySchedulePtrOutput) ToVolumeSnapshotPolicyDailySchedulePtrOutput() VolumeSnapshotPolicyDailySchedulePtrOutput

func (VolumeSnapshotPolicyDailySchedulePtrOutput) ToVolumeSnapshotPolicyDailySchedulePtrOutputWithContext added in v7.7.0

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

type VolumeSnapshotPolicyHourlySchedule added in v7.7.0

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 added in v7.7.0

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 added in v7.7.0

func (VolumeSnapshotPolicyHourlyScheduleArgs) ToVolumeSnapshotPolicyHourlyScheduleOutput added in v7.7.0

func (i VolumeSnapshotPolicyHourlyScheduleArgs) ToVolumeSnapshotPolicyHourlyScheduleOutput() VolumeSnapshotPolicyHourlyScheduleOutput

func (VolumeSnapshotPolicyHourlyScheduleArgs) ToVolumeSnapshotPolicyHourlyScheduleOutputWithContext added in v7.7.0

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

func (VolumeSnapshotPolicyHourlyScheduleArgs) ToVolumeSnapshotPolicyHourlySchedulePtrOutput added in v7.7.0

func (i VolumeSnapshotPolicyHourlyScheduleArgs) ToVolumeSnapshotPolicyHourlySchedulePtrOutput() VolumeSnapshotPolicyHourlySchedulePtrOutput

func (VolumeSnapshotPolicyHourlyScheduleArgs) ToVolumeSnapshotPolicyHourlySchedulePtrOutputWithContext added in v7.7.0

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

type VolumeSnapshotPolicyHourlyScheduleInput added in v7.7.0

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 added in v7.7.0

type VolumeSnapshotPolicyHourlyScheduleOutput struct{ *pulumi.OutputState }

func (VolumeSnapshotPolicyHourlyScheduleOutput) ElementType added in v7.7.0

func (VolumeSnapshotPolicyHourlyScheduleOutput) Minute added in v7.7.0

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

func (VolumeSnapshotPolicyHourlyScheduleOutput) SnapshotsToKeep added in v7.7.0

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

func (VolumeSnapshotPolicyHourlyScheduleOutput) ToVolumeSnapshotPolicyHourlyScheduleOutput added in v7.7.0

func (o VolumeSnapshotPolicyHourlyScheduleOutput) ToVolumeSnapshotPolicyHourlyScheduleOutput() VolumeSnapshotPolicyHourlyScheduleOutput

func (VolumeSnapshotPolicyHourlyScheduleOutput) ToVolumeSnapshotPolicyHourlyScheduleOutputWithContext added in v7.7.0

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

func (VolumeSnapshotPolicyHourlyScheduleOutput) ToVolumeSnapshotPolicyHourlySchedulePtrOutput added in v7.7.0

func (o VolumeSnapshotPolicyHourlyScheduleOutput) ToVolumeSnapshotPolicyHourlySchedulePtrOutput() VolumeSnapshotPolicyHourlySchedulePtrOutput

func (VolumeSnapshotPolicyHourlyScheduleOutput) ToVolumeSnapshotPolicyHourlySchedulePtrOutputWithContext added in v7.7.0

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

type VolumeSnapshotPolicyHourlySchedulePtrInput added in v7.7.0

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 added in v7.7.0

type VolumeSnapshotPolicyHourlySchedulePtrOutput struct{ *pulumi.OutputState }

func (VolumeSnapshotPolicyHourlySchedulePtrOutput) Elem added in v7.7.0

func (VolumeSnapshotPolicyHourlySchedulePtrOutput) ElementType added in v7.7.0

func (VolumeSnapshotPolicyHourlySchedulePtrOutput) Minute added in v7.7.0

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

func (VolumeSnapshotPolicyHourlySchedulePtrOutput) SnapshotsToKeep added in v7.7.0

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

func (VolumeSnapshotPolicyHourlySchedulePtrOutput) ToVolumeSnapshotPolicyHourlySchedulePtrOutput added in v7.7.0

func (o VolumeSnapshotPolicyHourlySchedulePtrOutput) ToVolumeSnapshotPolicyHourlySchedulePtrOutput() VolumeSnapshotPolicyHourlySchedulePtrOutput

func (VolumeSnapshotPolicyHourlySchedulePtrOutput) ToVolumeSnapshotPolicyHourlySchedulePtrOutputWithContext added in v7.7.0

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

type VolumeSnapshotPolicyInput added in v7.7.0

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 added in v7.7.0

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 added in v7.7.0

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 added in v7.7.0

func (VolumeSnapshotPolicyMonthlyScheduleArgs) ToVolumeSnapshotPolicyMonthlyScheduleOutput added in v7.7.0

func (i VolumeSnapshotPolicyMonthlyScheduleArgs) ToVolumeSnapshotPolicyMonthlyScheduleOutput() VolumeSnapshotPolicyMonthlyScheduleOutput

func (VolumeSnapshotPolicyMonthlyScheduleArgs) ToVolumeSnapshotPolicyMonthlyScheduleOutputWithContext added in v7.7.0

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

func (VolumeSnapshotPolicyMonthlyScheduleArgs) ToVolumeSnapshotPolicyMonthlySchedulePtrOutput added in v7.7.0

func (i VolumeSnapshotPolicyMonthlyScheduleArgs) ToVolumeSnapshotPolicyMonthlySchedulePtrOutput() VolumeSnapshotPolicyMonthlySchedulePtrOutput

func (VolumeSnapshotPolicyMonthlyScheduleArgs) ToVolumeSnapshotPolicyMonthlySchedulePtrOutputWithContext added in v7.7.0

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

type VolumeSnapshotPolicyMonthlyScheduleInput added in v7.7.0

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 added in v7.7.0

type VolumeSnapshotPolicyMonthlyScheduleOutput struct{ *pulumi.OutputState }

func (VolumeSnapshotPolicyMonthlyScheduleOutput) DaysOfMonth added in v7.7.0

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 added in v7.7.0

func (VolumeSnapshotPolicyMonthlyScheduleOutput) Hour added in v7.7.0

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

func (VolumeSnapshotPolicyMonthlyScheduleOutput) Minute added in v7.7.0

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

func (VolumeSnapshotPolicyMonthlyScheduleOutput) SnapshotsToKeep added in v7.7.0

The maximum number of snapshots to keep for the monthly schedule

func (VolumeSnapshotPolicyMonthlyScheduleOutput) ToVolumeSnapshotPolicyMonthlyScheduleOutput added in v7.7.0

func (o VolumeSnapshotPolicyMonthlyScheduleOutput) ToVolumeSnapshotPolicyMonthlyScheduleOutput() VolumeSnapshotPolicyMonthlyScheduleOutput

func (VolumeSnapshotPolicyMonthlyScheduleOutput) ToVolumeSnapshotPolicyMonthlyScheduleOutputWithContext added in v7.7.0

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

func (VolumeSnapshotPolicyMonthlyScheduleOutput) ToVolumeSnapshotPolicyMonthlySchedulePtrOutput added in v7.7.0

func (o VolumeSnapshotPolicyMonthlyScheduleOutput) ToVolumeSnapshotPolicyMonthlySchedulePtrOutput() VolumeSnapshotPolicyMonthlySchedulePtrOutput

func (VolumeSnapshotPolicyMonthlyScheduleOutput) ToVolumeSnapshotPolicyMonthlySchedulePtrOutputWithContext added in v7.7.0

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

type VolumeSnapshotPolicyMonthlySchedulePtrInput added in v7.7.0

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 added in v7.7.0

type VolumeSnapshotPolicyMonthlySchedulePtrOutput struct{ *pulumi.OutputState }

func (VolumeSnapshotPolicyMonthlySchedulePtrOutput) DaysOfMonth added in v7.7.0

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 added in v7.7.0

func (VolumeSnapshotPolicyMonthlySchedulePtrOutput) ElementType added in v7.7.0

func (VolumeSnapshotPolicyMonthlySchedulePtrOutput) Hour added in v7.7.0

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

func (VolumeSnapshotPolicyMonthlySchedulePtrOutput) Minute added in v7.7.0

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

func (VolumeSnapshotPolicyMonthlySchedulePtrOutput) SnapshotsToKeep added in v7.7.0

The maximum number of snapshots to keep for the monthly schedule

func (VolumeSnapshotPolicyMonthlySchedulePtrOutput) ToVolumeSnapshotPolicyMonthlySchedulePtrOutput added in v7.7.0

func (o VolumeSnapshotPolicyMonthlySchedulePtrOutput) ToVolumeSnapshotPolicyMonthlySchedulePtrOutput() VolumeSnapshotPolicyMonthlySchedulePtrOutput

func (VolumeSnapshotPolicyMonthlySchedulePtrOutput) ToVolumeSnapshotPolicyMonthlySchedulePtrOutputWithContext added in v7.7.0

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

type VolumeSnapshotPolicyOutput added in v7.7.0

type VolumeSnapshotPolicyOutput struct{ *pulumi.OutputState }

func (VolumeSnapshotPolicyOutput) DailySchedule added in v7.7.0

Daily schedule policy. Structure is documented below.

func (VolumeSnapshotPolicyOutput) ElementType added in v7.7.0

func (VolumeSnapshotPolicyOutput) ElementType() reflect.Type

func (VolumeSnapshotPolicyOutput) Enabled added in v7.7.0

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 added in v7.7.0

Hourly schedule policy. Structure is documented below.

func (VolumeSnapshotPolicyOutput) MonthlySchedule added in v7.7.0

Monthly schedule policy. Structure is documented below.

func (VolumeSnapshotPolicyOutput) ToVolumeSnapshotPolicyOutput added in v7.7.0

func (o VolumeSnapshotPolicyOutput) ToVolumeSnapshotPolicyOutput() VolumeSnapshotPolicyOutput

func (VolumeSnapshotPolicyOutput) ToVolumeSnapshotPolicyOutputWithContext added in v7.7.0

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

func (VolumeSnapshotPolicyOutput) ToVolumeSnapshotPolicyPtrOutput added in v7.7.0

func (o VolumeSnapshotPolicyOutput) ToVolumeSnapshotPolicyPtrOutput() VolumeSnapshotPolicyPtrOutput

func (VolumeSnapshotPolicyOutput) ToVolumeSnapshotPolicyPtrOutputWithContext added in v7.7.0

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

func (VolumeSnapshotPolicyOutput) WeeklySchedule added in v7.7.0

Weekly schedule policy. Structure is documented below.

type VolumeSnapshotPolicyPtrInput added in v7.7.0

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

func VolumeSnapshotPolicyPtr added in v7.7.0

func VolumeSnapshotPolicyPtr(v *VolumeSnapshotPolicyArgs) VolumeSnapshotPolicyPtrInput

type VolumeSnapshotPolicyPtrOutput added in v7.7.0

type VolumeSnapshotPolicyPtrOutput struct{ *pulumi.OutputState }

func (VolumeSnapshotPolicyPtrOutput) DailySchedule added in v7.7.0

Daily schedule policy. Structure is documented below.

func (VolumeSnapshotPolicyPtrOutput) Elem added in v7.7.0

func (VolumeSnapshotPolicyPtrOutput) ElementType added in v7.7.0

func (VolumeSnapshotPolicyPtrOutput) Enabled added in v7.7.0

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 added in v7.7.0

Hourly schedule policy. Structure is documented below.

func (VolumeSnapshotPolicyPtrOutput) MonthlySchedule added in v7.7.0

Monthly schedule policy. Structure is documented below.

func (VolumeSnapshotPolicyPtrOutput) ToVolumeSnapshotPolicyPtrOutput added in v7.7.0

func (o VolumeSnapshotPolicyPtrOutput) ToVolumeSnapshotPolicyPtrOutput() VolumeSnapshotPolicyPtrOutput

func (VolumeSnapshotPolicyPtrOutput) ToVolumeSnapshotPolicyPtrOutputWithContext added in v7.7.0

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

func (VolumeSnapshotPolicyPtrOutput) WeeklySchedule added in v7.7.0

Weekly schedule policy. Structure is documented below.

type VolumeSnapshotPolicyWeeklySchedule added in v7.7.0

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 added in v7.7.0

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 added in v7.7.0

func (VolumeSnapshotPolicyWeeklyScheduleArgs) ToVolumeSnapshotPolicyWeeklyScheduleOutput added in v7.7.0

func (i VolumeSnapshotPolicyWeeklyScheduleArgs) ToVolumeSnapshotPolicyWeeklyScheduleOutput() VolumeSnapshotPolicyWeeklyScheduleOutput

func (VolumeSnapshotPolicyWeeklyScheduleArgs) ToVolumeSnapshotPolicyWeeklyScheduleOutputWithContext added in v7.7.0

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

func (VolumeSnapshotPolicyWeeklyScheduleArgs) ToVolumeSnapshotPolicyWeeklySchedulePtrOutput added in v7.7.0

func (i VolumeSnapshotPolicyWeeklyScheduleArgs) ToVolumeSnapshotPolicyWeeklySchedulePtrOutput() VolumeSnapshotPolicyWeeklySchedulePtrOutput

func (VolumeSnapshotPolicyWeeklyScheduleArgs) ToVolumeSnapshotPolicyWeeklySchedulePtrOutputWithContext added in v7.7.0

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

type VolumeSnapshotPolicyWeeklyScheduleInput added in v7.7.0

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 added in v7.7.0

type VolumeSnapshotPolicyWeeklyScheduleOutput struct{ *pulumi.OutputState }

func (VolumeSnapshotPolicyWeeklyScheduleOutput) Day added in v7.7.0

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 added in v7.7.0

func (VolumeSnapshotPolicyWeeklyScheduleOutput) Hour added in v7.7.0

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

func (VolumeSnapshotPolicyWeeklyScheduleOutput) Minute added in v7.7.0

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

func (VolumeSnapshotPolicyWeeklyScheduleOutput) SnapshotsToKeep added in v7.7.0

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

func (VolumeSnapshotPolicyWeeklyScheduleOutput) ToVolumeSnapshotPolicyWeeklyScheduleOutput added in v7.7.0

func (o VolumeSnapshotPolicyWeeklyScheduleOutput) ToVolumeSnapshotPolicyWeeklyScheduleOutput() VolumeSnapshotPolicyWeeklyScheduleOutput

func (VolumeSnapshotPolicyWeeklyScheduleOutput) ToVolumeSnapshotPolicyWeeklyScheduleOutputWithContext added in v7.7.0

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

func (VolumeSnapshotPolicyWeeklyScheduleOutput) ToVolumeSnapshotPolicyWeeklySchedulePtrOutput added in v7.7.0

func (o VolumeSnapshotPolicyWeeklyScheduleOutput) ToVolumeSnapshotPolicyWeeklySchedulePtrOutput() VolumeSnapshotPolicyWeeklySchedulePtrOutput

func (VolumeSnapshotPolicyWeeklyScheduleOutput) ToVolumeSnapshotPolicyWeeklySchedulePtrOutputWithContext added in v7.7.0

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

type VolumeSnapshotPolicyWeeklySchedulePtrInput added in v7.7.0

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 added in v7.7.0

type VolumeSnapshotPolicyWeeklySchedulePtrOutput struct{ *pulumi.OutputState }

func (VolumeSnapshotPolicyWeeklySchedulePtrOutput) Day added in v7.7.0

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 added in v7.7.0

func (VolumeSnapshotPolicyWeeklySchedulePtrOutput) ElementType added in v7.7.0

func (VolumeSnapshotPolicyWeeklySchedulePtrOutput) Hour added in v7.7.0

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

func (VolumeSnapshotPolicyWeeklySchedulePtrOutput) Minute added in v7.7.0

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

func (VolumeSnapshotPolicyWeeklySchedulePtrOutput) SnapshotsToKeep added in v7.7.0

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

func (VolumeSnapshotPolicyWeeklySchedulePtrOutput) ToVolumeSnapshotPolicyWeeklySchedulePtrOutput added in v7.7.0

func (o VolumeSnapshotPolicyWeeklySchedulePtrOutput) ToVolumeSnapshotPolicyWeeklySchedulePtrOutput() VolumeSnapshotPolicyWeeklySchedulePtrOutput

func (VolumeSnapshotPolicyWeeklySchedulePtrOutput) ToVolumeSnapshotPolicyWeeklySchedulePtrOutputWithContext added in v7.7.0

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

type VolumeSnapshotState added in v7.8.0

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 added in v7.8.0

func (VolumeSnapshotState) ElementType() reflect.Type

type VolumeState added in v7.7.0

type VolumeState struct {
	// Reports the resource name of the Active Directory policy being used. Inherited from storage pool.
	ActiveDirectory pulumi.StringPtrInput
	// Capacity of the volume (in GiB).
	CapacityGib 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.
	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
	// 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
	// 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
	// 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.
	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 accomodate the volume.
	StoragePool pulumi.StringPtrInput
	// 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
}

func (VolumeState) ElementType added in v7.7.0

func (VolumeState) ElementType() reflect.Type

Jump to

Keyboard shortcuts

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