import * as pulumi from "@pulumi/pulumi";
import * as inputs from "../types/input";
import * as outputs from "../types/output";
/**
 * Manages a NetApp Volume.
 *
 * !> **Note:** This resource uses a feature to prevent deletion called `preventVolumeDestruction`, defaulting to `true`. It is intentionally set to `true` to prevent the possibility of accidental data loss. The example in this page shows all possible protection options you can apply, it is using same values as the defaults.
 *
 * ## Import
 *
 * NetApp Volumes can be imported using the `resource id`, e.g.
 *
 * ```sh
 * $ pulumi import azure:netapp/volume:Volume example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.NetApp/netAppAccounts/account1/capacityPools/pool1/volumes/volume1
 * ```
 */
export declare class Volume extends pulumi.CustomResource {
    /**
     * Get an existing Volume resource's state with the given name, ID, and optional extra
     * properties used to qualify the lookup.
     *
     * @param name The _unique_ name of the resulting resource.
     * @param id The _unique_ provider ID of the resource to lookup.
     * @param state Any extra arguments used during the lookup.
     * @param opts Optional settings to control the behavior of the CustomResource.
     */
    static get(name: string, id: pulumi.Input<pulumi.ID>, state?: VolumeState, opts?: pulumi.CustomResourceOptions): Volume;
    /**
     * Returns true if the given object is an instance of Volume.  This is designed to work even
     * when multiple copies of the Pulumi SDK have been loaded into the same process.
     */
    static isInstance(obj: any): obj is Volume;
    /**
     * While auto splitting the short term clone volume, if the parent pool does not have enough space to accommodate the volume after split, it will be automatically resized, which will lead to increased billing. To accept capacity pool size auto grow and create a short term clone volume, set the property as `Accepted`. If `Declined`, the short term clone volume creation operation will fail. This property can only be used in conjunction with `createFromSnapshotResourceId`. Changing this forces a new resource to be created.
     *
     * > **Note:** Short-term clones are not supported on large volumes or volumes enabled for cool access. Short-term clones automatically convert to regular volumes after 32 days. For more information, please refer to [Create a short-term clone volume in Azure NetApp Files](https://learn.microsoft.com/en-us/azure/azure-netapp-files/create-short-term-clone)
     */
    readonly acceptGrowCapacityPoolForShortTermCloneSplit: pulumi.Output<string | undefined>;
    /**
     * The name of the NetApp account in which the NetApp Pool should be created. Changing this forces a new resource to be created.
     */
    readonly accountName: pulumi.Output<string>;
    /**
     * Is the NetApp Volume enabled for Azure VMware Solution (AVS) datastore purpose. Defaults to `false`. Changing this forces a new resource to be created.
     */
    readonly azureVmwareDataStoreEnabled: pulumi.Output<boolean | undefined>;
    /**
     * A `coolAccess` block as defined below.
     */
    readonly coolAccess: pulumi.Output<outputs.netapp.VolumeCoolAccess | undefined>;
    /**
     * Creates volume from snapshot. Following properties must be the same as the original volume where the snapshot was taken from: `protocols`, `subnetId`, `location`, `serviceLevel`, `resourceGroupName` and `accountName`. Changing this forces a new resource to be created.
     */
    readonly createFromSnapshotResourceId: pulumi.Output<string | undefined>;
    /**
     * A `dataProtectionAdvancedRansomware` block as defined below.
     */
    readonly dataProtectionAdvancedRansomware: pulumi.Output<outputs.netapp.VolumeDataProtectionAdvancedRansomware | undefined>;
    /**
     * A `dataProtectionBackupPolicy` block as defined below.
     */
    readonly dataProtectionBackupPolicy: pulumi.Output<outputs.netapp.VolumeDataProtectionBackupPolicy | undefined>;
    /**
     * A `dataProtectionReplication` block as defined below. Changing this forces a new resource to be created.
     */
    readonly dataProtectionReplication: pulumi.Output<outputs.netapp.VolumeDataProtectionReplication | undefined>;
    /**
     * A `dataProtectionSnapshotPolicy` block as defined below.
     */
    readonly dataProtectionSnapshotPolicy: pulumi.Output<outputs.netapp.VolumeDataProtectionSnapshotPolicy | undefined>;
    /**
     * The encryption key source, it can be `Microsoft.NetApp` for platform managed keys or `Microsoft.KeyVault` for customer-managed keys. This is required with `keyVaultPrivateEndpointId`. Changing this forces a new resource to be created.
     */
    readonly encryptionKeySource: pulumi.Output<string>;
    /**
     * One or more `exportPolicyRule` block defined below.
     */
    readonly exportPolicyRules: pulumi.Output<outputs.netapp.VolumeExportPolicyRule[] | undefined>;
    /**
     * Enable to allow Kerberos secured volumes. Requires appropriate export rules. Changing this forces a new resource to be created.
     *
     * > **Note:** `kerberosEnabled` requires that the parent `azure.netapp.Account` has a *valid* AD connection defined. If the configuration is invalid, the volume will still be created but in a failed state. This requires manually deleting the volume and recreating it again via Terraform once the AD configuration has been corrected.
     */
    readonly kerberosEnabled: pulumi.Output<boolean | undefined>;
    /**
     * The Private Endpoint ID for Key Vault, which is required when using customer-managed keys. This is required with `encryptionKeySource`. Changing this forces a new resource to be created.
     */
    readonly keyVaultPrivateEndpointId: pulumi.Output<string>;
    /**
     * A boolean specifying if the volume is a large volume. Defaults to `false`.
     *
     * > **Note:** Large volumes must be at least 50 TiB in size and can be up to 1,024 TiB (1 PiB). For more information, please refer to [Requirements and considerations for large volumes](https://learn.microsoft.com/en-us/azure/azure-netapp-files/large-volumes-requirements-considerations)
     */
    readonly largeVolumeEnabled: pulumi.Output<boolean | undefined>;
    /**
     * Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.
     */
    readonly location: pulumi.Output<string>;
    /**
     * A list of IPv4 Addresses which should be used to mount the volume.
     */
    readonly mountIpAddresses: pulumi.Output<string[]>;
    /**
     * The name of the NetApp Volume. Changing this forces a new resource to be created.
     */
    readonly name: pulumi.Output<string>;
    /**
     * Indicates which network feature to use, accepted values are `Basic` or `Standard`, it defaults to `Basic` if not defined. This is a feature in public preview and for more information about it and how to register, please refer to [Configure network features for an Azure NetApp Files volume](https://docs.microsoft.com/en-us/azure/azure-netapp-files/configure-network-features).
     */
    readonly networkFeatures: pulumi.Output<string>;
    /**
     * The name of the NetApp pool in which the NetApp Volume should be created.
     */
    readonly poolName: pulumi.Output<string>;
    /**
     * The target volume protocol expressed as a list. Supported single value include `CIFS`, `NFSv3`, or `NFSv4.1`. If argument is not defined it will default to `NFSv3`. Protocol conversion between `NFSv3` and `NFSv4.1` and vice-versa is supported without recreating the volume, however export policy rules must be updated accordingly to avoid configuration drift (e.g., when converting from `NFSv3` to `NFSv4.1`, set `nfsv3Enabled = false` and `nfsv41Enabled = true` in export policy rules). Dual protocol scenario is supported for CIFS and NFSv3, for more information, please refer to [Create a dual-protocol volume for Azure NetApp Files](https://docs.microsoft.com/azure/azure-netapp-files/create-volumes-dual-protocol) document.
     *
     * > **Note:** When converting protocols, ensure that export policy rules are updated to match the new protocol to avoid configuration drift. For example, when changing from NFSv3 to NFSv4.1, update the `protocol` field in export policy rules accordingly.
     */
    readonly protocols: pulumi.Output<string[]>;
    /**
     * The name of the resource group where the NetApp Volume should be created. Changing this forces a new resource to be created.
     */
    readonly resourceGroupName: pulumi.Output<string>;
    /**
     * Volume security style, accepted values are `unix` or `ntfs`. If not provided, single-protocol volume is created defaulting to `unix` if it is `NFSv3` or `NFSv4.1` volume, if `CIFS`, it will default to `ntfs`. In a dual-protocol volume, if not provided, its value will be `ntfs`. Changing this forces a new resource to be created.
     */
    readonly securityStyle: pulumi.Output<string>;
    /**
     * The target performance of the file system. Possible values are `Premium`, `Standard`, `Ultra` and `Flexible`.
     *
     * > **Note:** When updating `serviceLevel` by migrating it to another Capacity Pool, both `serviceLevel` and `poolName` must be changed, otherwise the volume will be recreated with the specified `serviceLevel`.
     *
     * > **Note:** After updating `serviceLevel` the `id` for the volume will change to include the new Capacity Pool so any resources referencing the Volume will be silently removed from state. They will still exist in Azure but need to reimported into Terraform.
     */
    readonly serviceLevel: pulumi.Output<string>;
    /**
     * Enable SMB encryption. Changing this forces a new resource to be created.
     */
    readonly smb3ProtocolEncryptionEnabled: pulumi.Output<boolean | undefined>;
    /**
     * Limits enumeration of files and folders (that is, listing the contents) in SMB only to users with allowed access on the share. For instance, if a user doesn't have access to read a file or folder in a share with access-based enumeration enabled, then the file or folder doesn't show up in directory listings. Defaults to `false`. For more information, please refer to [Understand NAS share permissions in Azure NetApp Files](https://learn.microsoft.com/en-us/azure/azure-netapp-files/network-attached-storage-permissions#:~:text=security%20for%20administrators.-,Access%2Dbased%20enumeration,in%20an%20Azure%20NetApp%20Files%20SMB%20volume.%20Only%20contosoadmin%20has%20access.,-In%20the%20below)
     */
    readonly smbAccessBasedEnumerationEnabled: pulumi.Output<boolean | undefined>;
    /**
     * Enable SMB Continuous Availability. Changing this forces a new resource to be created.
     */
    readonly smbContinuousAvailabilityEnabled: pulumi.Output<boolean | undefined>;
    /**
     * Limits clients from browsing for an SMB share by hiding the share from view in Windows Explorer or when listing shares in "net view." Only end users that know the absolute paths to the share are able to find the share. Defaults to `false`. For more information, please refer to [Understand NAS share permissions in Azure NetApp Files](https://learn.microsoft.com/en-us/azure/azure-netapp-files/network-attached-storage-permissions#:~:text=Non%2Dbrowsable%20shares,find%20the%20share.)
     */
    readonly smbNonBrowsableEnabled: pulumi.Output<boolean | undefined>;
    /**
     * Specifies whether the .snapshot (NFS clients) or ~snapshot (SMB clients) path of a volume is visible. Defaults to `true`.
     */
    readonly snapshotDirectoryVisible: pulumi.Output<boolean | undefined>;
    /**
     * The maximum Storage Quota allowed for a file system in Gigabytes.
     */
    readonly storageQuotaInGb: pulumi.Output<number>;
    /**
     * The ID of the Subnet the NetApp Volume resides in, which must have the `Microsoft.NetApp/volumes` delegation. Changing this forces a new resource to be created.
     */
    readonly subnetId: pulumi.Output<string>;
    /**
     * A mapping of tags to assign to the resource.
     *
     * > **Note:** It is highly recommended to use the **lifecycle** property as noted in the example since it will prevent an accidental deletion of the volume if the `protocols` argument changes to a different protocol type.
     */
    readonly tags: pulumi.Output<{
        [key: string]: string;
    } | undefined>;
    /**
     * Throughput of this volume in Mibps.
     */
    readonly throughputInMibps: pulumi.Output<number>;
    /**
     * A unique file path for the volume. Used when creating mount targets. Changing this forces a new resource to be created.
     */
    readonly volumePath: pulumi.Output<string>;
    /**
     * Specifies the Availability Zone in which the Volume should be located. Possible values are `1`, `2` and `3`. Changing this forces a new resource to be created. This feature is currently in preview, for more information on how to enable it, please refer to [Manage availability zone volume placement for Azure NetApp Files](https://learn.microsoft.com/en-us/azure/azure-netapp-files/manage-availability-zone-volume-placement#register-the-feature).
     */
    readonly zone: pulumi.Output<string | undefined>;
    /**
     * Create a Volume resource with the given unique name, arguments, and options.
     *
     * @param name The _unique_ name of the resource.
     * @param args The arguments to use to populate this resource's properties.
     * @param opts A bag of options that control this resource's behavior.
     */
    constructor(name: string, args: VolumeArgs, opts?: pulumi.CustomResourceOptions);
}
/**
 * Input properties used for looking up and filtering Volume resources.
 */
export interface VolumeState {
    /**
     * While auto splitting the short term clone volume, if the parent pool does not have enough space to accommodate the volume after split, it will be automatically resized, which will lead to increased billing. To accept capacity pool size auto grow and create a short term clone volume, set the property as `Accepted`. If `Declined`, the short term clone volume creation operation will fail. This property can only be used in conjunction with `createFromSnapshotResourceId`. Changing this forces a new resource to be created.
     *
     * > **Note:** Short-term clones are not supported on large volumes or volumes enabled for cool access. Short-term clones automatically convert to regular volumes after 32 days. For more information, please refer to [Create a short-term clone volume in Azure NetApp Files](https://learn.microsoft.com/en-us/azure/azure-netapp-files/create-short-term-clone)
     */
    acceptGrowCapacityPoolForShortTermCloneSplit?: pulumi.Input<string | undefined>;
    /**
     * The name of the NetApp account in which the NetApp Pool should be created. Changing this forces a new resource to be created.
     */
    accountName?: pulumi.Input<string | undefined>;
    /**
     * Is the NetApp Volume enabled for Azure VMware Solution (AVS) datastore purpose. Defaults to `false`. Changing this forces a new resource to be created.
     */
    azureVmwareDataStoreEnabled?: pulumi.Input<boolean | undefined>;
    /**
     * A `coolAccess` block as defined below.
     */
    coolAccess?: pulumi.Input<inputs.netapp.VolumeCoolAccess | undefined>;
    /**
     * Creates volume from snapshot. Following properties must be the same as the original volume where the snapshot was taken from: `protocols`, `subnetId`, `location`, `serviceLevel`, `resourceGroupName` and `accountName`. Changing this forces a new resource to be created.
     */
    createFromSnapshotResourceId?: pulumi.Input<string | undefined>;
    /**
     * A `dataProtectionAdvancedRansomware` block as defined below.
     */
    dataProtectionAdvancedRansomware?: pulumi.Input<inputs.netapp.VolumeDataProtectionAdvancedRansomware | undefined>;
    /**
     * A `dataProtectionBackupPolicy` block as defined below.
     */
    dataProtectionBackupPolicy?: pulumi.Input<inputs.netapp.VolumeDataProtectionBackupPolicy | undefined>;
    /**
     * A `dataProtectionReplication` block as defined below. Changing this forces a new resource to be created.
     */
    dataProtectionReplication?: pulumi.Input<inputs.netapp.VolumeDataProtectionReplication | undefined>;
    /**
     * A `dataProtectionSnapshotPolicy` block as defined below.
     */
    dataProtectionSnapshotPolicy?: pulumi.Input<inputs.netapp.VolumeDataProtectionSnapshotPolicy | undefined>;
    /**
     * The encryption key source, it can be `Microsoft.NetApp` for platform managed keys or `Microsoft.KeyVault` for customer-managed keys. This is required with `keyVaultPrivateEndpointId`. Changing this forces a new resource to be created.
     */
    encryptionKeySource?: pulumi.Input<string | undefined>;
    /**
     * One or more `exportPolicyRule` block defined below.
     */
    exportPolicyRules?: pulumi.Input<pulumi.Input<inputs.netapp.VolumeExportPolicyRule>[] | undefined>;
    /**
     * Enable to allow Kerberos secured volumes. Requires appropriate export rules. Changing this forces a new resource to be created.
     *
     * > **Note:** `kerberosEnabled` requires that the parent `azure.netapp.Account` has a *valid* AD connection defined. If the configuration is invalid, the volume will still be created but in a failed state. This requires manually deleting the volume and recreating it again via Terraform once the AD configuration has been corrected.
     */
    kerberosEnabled?: pulumi.Input<boolean | undefined>;
    /**
     * The Private Endpoint ID for Key Vault, which is required when using customer-managed keys. This is required with `encryptionKeySource`. Changing this forces a new resource to be created.
     */
    keyVaultPrivateEndpointId?: pulumi.Input<string | undefined>;
    /**
     * A boolean specifying if the volume is a large volume. Defaults to `false`.
     *
     * > **Note:** Large volumes must be at least 50 TiB in size and can be up to 1,024 TiB (1 PiB). For more information, please refer to [Requirements and considerations for large volumes](https://learn.microsoft.com/en-us/azure/azure-netapp-files/large-volumes-requirements-considerations)
     */
    largeVolumeEnabled?: pulumi.Input<boolean | undefined>;
    /**
     * Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.
     */
    location?: pulumi.Input<string | undefined>;
    /**
     * A list of IPv4 Addresses which should be used to mount the volume.
     */
    mountIpAddresses?: pulumi.Input<pulumi.Input<string>[] | undefined>;
    /**
     * The name of the NetApp Volume. Changing this forces a new resource to be created.
     */
    name?: pulumi.Input<string | undefined>;
    /**
     * Indicates which network feature to use, accepted values are `Basic` or `Standard`, it defaults to `Basic` if not defined. This is a feature in public preview and for more information about it and how to register, please refer to [Configure network features for an Azure NetApp Files volume](https://docs.microsoft.com/en-us/azure/azure-netapp-files/configure-network-features).
     */
    networkFeatures?: pulumi.Input<string | undefined>;
    /**
     * The name of the NetApp pool in which the NetApp Volume should be created.
     */
    poolName?: pulumi.Input<string | undefined>;
    /**
     * The target volume protocol expressed as a list. Supported single value include `CIFS`, `NFSv3`, or `NFSv4.1`. If argument is not defined it will default to `NFSv3`. Protocol conversion between `NFSv3` and `NFSv4.1` and vice-versa is supported without recreating the volume, however export policy rules must be updated accordingly to avoid configuration drift (e.g., when converting from `NFSv3` to `NFSv4.1`, set `nfsv3Enabled = false` and `nfsv41Enabled = true` in export policy rules). Dual protocol scenario is supported for CIFS and NFSv3, for more information, please refer to [Create a dual-protocol volume for Azure NetApp Files](https://docs.microsoft.com/azure/azure-netapp-files/create-volumes-dual-protocol) document.
     *
     * > **Note:** When converting protocols, ensure that export policy rules are updated to match the new protocol to avoid configuration drift. For example, when changing from NFSv3 to NFSv4.1, update the `protocol` field in export policy rules accordingly.
     */
    protocols?: pulumi.Input<pulumi.Input<string>[] | undefined>;
    /**
     * The name of the resource group where the NetApp Volume should be created. Changing this forces a new resource to be created.
     */
    resourceGroupName?: pulumi.Input<string | undefined>;
    /**
     * Volume security style, accepted values are `unix` or `ntfs`. If not provided, single-protocol volume is created defaulting to `unix` if it is `NFSv3` or `NFSv4.1` volume, if `CIFS`, it will default to `ntfs`. In a dual-protocol volume, if not provided, its value will be `ntfs`. Changing this forces a new resource to be created.
     */
    securityStyle?: pulumi.Input<string | undefined>;
    /**
     * The target performance of the file system. Possible values are `Premium`, `Standard`, `Ultra` and `Flexible`.
     *
     * > **Note:** When updating `serviceLevel` by migrating it to another Capacity Pool, both `serviceLevel` and `poolName` must be changed, otherwise the volume will be recreated with the specified `serviceLevel`.
     *
     * > **Note:** After updating `serviceLevel` the `id` for the volume will change to include the new Capacity Pool so any resources referencing the Volume will be silently removed from state. They will still exist in Azure but need to reimported into Terraform.
     */
    serviceLevel?: pulumi.Input<string | undefined>;
    /**
     * Enable SMB encryption. Changing this forces a new resource to be created.
     */
    smb3ProtocolEncryptionEnabled?: pulumi.Input<boolean | undefined>;
    /**
     * Limits enumeration of files and folders (that is, listing the contents) in SMB only to users with allowed access on the share. For instance, if a user doesn't have access to read a file or folder in a share with access-based enumeration enabled, then the file or folder doesn't show up in directory listings. Defaults to `false`. For more information, please refer to [Understand NAS share permissions in Azure NetApp Files](https://learn.microsoft.com/en-us/azure/azure-netapp-files/network-attached-storage-permissions#:~:text=security%20for%20administrators.-,Access%2Dbased%20enumeration,in%20an%20Azure%20NetApp%20Files%20SMB%20volume.%20Only%20contosoadmin%20has%20access.,-In%20the%20below)
     */
    smbAccessBasedEnumerationEnabled?: pulumi.Input<boolean | undefined>;
    /**
     * Enable SMB Continuous Availability. Changing this forces a new resource to be created.
     */
    smbContinuousAvailabilityEnabled?: pulumi.Input<boolean | undefined>;
    /**
     * Limits clients from browsing for an SMB share by hiding the share from view in Windows Explorer or when listing shares in "net view." Only end users that know the absolute paths to the share are able to find the share. Defaults to `false`. For more information, please refer to [Understand NAS share permissions in Azure NetApp Files](https://learn.microsoft.com/en-us/azure/azure-netapp-files/network-attached-storage-permissions#:~:text=Non%2Dbrowsable%20shares,find%20the%20share.)
     */
    smbNonBrowsableEnabled?: pulumi.Input<boolean | undefined>;
    /**
     * Specifies whether the .snapshot (NFS clients) or ~snapshot (SMB clients) path of a volume is visible. Defaults to `true`.
     */
    snapshotDirectoryVisible?: pulumi.Input<boolean | undefined>;
    /**
     * The maximum Storage Quota allowed for a file system in Gigabytes.
     */
    storageQuotaInGb?: pulumi.Input<number | undefined>;
    /**
     * The ID of the Subnet the NetApp Volume resides in, which must have the `Microsoft.NetApp/volumes` delegation. Changing this forces a new resource to be created.
     */
    subnetId?: pulumi.Input<string | undefined>;
    /**
     * A mapping of tags to assign to the resource.
     *
     * > **Note:** It is highly recommended to use the **lifecycle** property as noted in the example since it will prevent an accidental deletion of the volume if the `protocols` argument changes to a different protocol type.
     */
    tags?: pulumi.Input<{
        [key: string]: pulumi.Input<string>;
    } | undefined>;
    /**
     * Throughput of this volume in Mibps.
     */
    throughputInMibps?: pulumi.Input<number | undefined>;
    /**
     * A unique file path for the volume. Used when creating mount targets. Changing this forces a new resource to be created.
     */
    volumePath?: pulumi.Input<string | undefined>;
    /**
     * Specifies the Availability Zone in which the Volume should be located. Possible values are `1`, `2` and `3`. Changing this forces a new resource to be created. This feature is currently in preview, for more information on how to enable it, please refer to [Manage availability zone volume placement for Azure NetApp Files](https://learn.microsoft.com/en-us/azure/azure-netapp-files/manage-availability-zone-volume-placement#register-the-feature).
     */
    zone?: pulumi.Input<string | undefined>;
}
/**
 * The set of arguments for constructing a Volume resource.
 */
export interface VolumeArgs {
    /**
     * While auto splitting the short term clone volume, if the parent pool does not have enough space to accommodate the volume after split, it will be automatically resized, which will lead to increased billing. To accept capacity pool size auto grow and create a short term clone volume, set the property as `Accepted`. If `Declined`, the short term clone volume creation operation will fail. This property can only be used in conjunction with `createFromSnapshotResourceId`. Changing this forces a new resource to be created.
     *
     * > **Note:** Short-term clones are not supported on large volumes or volumes enabled for cool access. Short-term clones automatically convert to regular volumes after 32 days. For more information, please refer to [Create a short-term clone volume in Azure NetApp Files](https://learn.microsoft.com/en-us/azure/azure-netapp-files/create-short-term-clone)
     */
    acceptGrowCapacityPoolForShortTermCloneSplit?: pulumi.Input<string | undefined>;
    /**
     * The name of the NetApp account in which the NetApp Pool should be created. Changing this forces a new resource to be created.
     */
    accountName: pulumi.Input<string>;
    /**
     * Is the NetApp Volume enabled for Azure VMware Solution (AVS) datastore purpose. Defaults to `false`. Changing this forces a new resource to be created.
     */
    azureVmwareDataStoreEnabled?: pulumi.Input<boolean | undefined>;
    /**
     * A `coolAccess` block as defined below.
     */
    coolAccess?: pulumi.Input<inputs.netapp.VolumeCoolAccess | undefined>;
    /**
     * Creates volume from snapshot. Following properties must be the same as the original volume where the snapshot was taken from: `protocols`, `subnetId`, `location`, `serviceLevel`, `resourceGroupName` and `accountName`. Changing this forces a new resource to be created.
     */
    createFromSnapshotResourceId?: pulumi.Input<string | undefined>;
    /**
     * A `dataProtectionAdvancedRansomware` block as defined below.
     */
    dataProtectionAdvancedRansomware?: pulumi.Input<inputs.netapp.VolumeDataProtectionAdvancedRansomware | undefined>;
    /**
     * A `dataProtectionBackupPolicy` block as defined below.
     */
    dataProtectionBackupPolicy?: pulumi.Input<inputs.netapp.VolumeDataProtectionBackupPolicy | undefined>;
    /**
     * A `dataProtectionReplication` block as defined below. Changing this forces a new resource to be created.
     */
    dataProtectionReplication?: pulumi.Input<inputs.netapp.VolumeDataProtectionReplication | undefined>;
    /**
     * A `dataProtectionSnapshotPolicy` block as defined below.
     */
    dataProtectionSnapshotPolicy?: pulumi.Input<inputs.netapp.VolumeDataProtectionSnapshotPolicy | undefined>;
    /**
     * The encryption key source, it can be `Microsoft.NetApp` for platform managed keys or `Microsoft.KeyVault` for customer-managed keys. This is required with `keyVaultPrivateEndpointId`. Changing this forces a new resource to be created.
     */
    encryptionKeySource?: pulumi.Input<string | undefined>;
    /**
     * One or more `exportPolicyRule` block defined below.
     */
    exportPolicyRules?: pulumi.Input<pulumi.Input<inputs.netapp.VolumeExportPolicyRule>[] | undefined>;
    /**
     * Enable to allow Kerberos secured volumes. Requires appropriate export rules. Changing this forces a new resource to be created.
     *
     * > **Note:** `kerberosEnabled` requires that the parent `azure.netapp.Account` has a *valid* AD connection defined. If the configuration is invalid, the volume will still be created but in a failed state. This requires manually deleting the volume and recreating it again via Terraform once the AD configuration has been corrected.
     */
    kerberosEnabled?: pulumi.Input<boolean | undefined>;
    /**
     * The Private Endpoint ID for Key Vault, which is required when using customer-managed keys. This is required with `encryptionKeySource`. Changing this forces a new resource to be created.
     */
    keyVaultPrivateEndpointId?: pulumi.Input<string | undefined>;
    /**
     * A boolean specifying if the volume is a large volume. Defaults to `false`.
     *
     * > **Note:** Large volumes must be at least 50 TiB in size and can be up to 1,024 TiB (1 PiB). For more information, please refer to [Requirements and considerations for large volumes](https://learn.microsoft.com/en-us/azure/azure-netapp-files/large-volumes-requirements-considerations)
     */
    largeVolumeEnabled?: pulumi.Input<boolean | undefined>;
    /**
     * Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.
     */
    location?: pulumi.Input<string | undefined>;
    /**
     * The name of the NetApp Volume. Changing this forces a new resource to be created.
     */
    name?: pulumi.Input<string | undefined>;
    /**
     * Indicates which network feature to use, accepted values are `Basic` or `Standard`, it defaults to `Basic` if not defined. This is a feature in public preview and for more information about it and how to register, please refer to [Configure network features for an Azure NetApp Files volume](https://docs.microsoft.com/en-us/azure/azure-netapp-files/configure-network-features).
     */
    networkFeatures?: pulumi.Input<string | undefined>;
    /**
     * The name of the NetApp pool in which the NetApp Volume should be created.
     */
    poolName: pulumi.Input<string>;
    /**
     * The target volume protocol expressed as a list. Supported single value include `CIFS`, `NFSv3`, or `NFSv4.1`. If argument is not defined it will default to `NFSv3`. Protocol conversion between `NFSv3` and `NFSv4.1` and vice-versa is supported without recreating the volume, however export policy rules must be updated accordingly to avoid configuration drift (e.g., when converting from `NFSv3` to `NFSv4.1`, set `nfsv3Enabled = false` and `nfsv41Enabled = true` in export policy rules). Dual protocol scenario is supported for CIFS and NFSv3, for more information, please refer to [Create a dual-protocol volume for Azure NetApp Files](https://docs.microsoft.com/azure/azure-netapp-files/create-volumes-dual-protocol) document.
     *
     * > **Note:** When converting protocols, ensure that export policy rules are updated to match the new protocol to avoid configuration drift. For example, when changing from NFSv3 to NFSv4.1, update the `protocol` field in export policy rules accordingly.
     */
    protocols?: pulumi.Input<pulumi.Input<string>[] | undefined>;
    /**
     * The name of the resource group where the NetApp Volume should be created. Changing this forces a new resource to be created.
     */
    resourceGroupName: pulumi.Input<string>;
    /**
     * Volume security style, accepted values are `unix` or `ntfs`. If not provided, single-protocol volume is created defaulting to `unix` if it is `NFSv3` or `NFSv4.1` volume, if `CIFS`, it will default to `ntfs`. In a dual-protocol volume, if not provided, its value will be `ntfs`. Changing this forces a new resource to be created.
     */
    securityStyle?: pulumi.Input<string | undefined>;
    /**
     * The target performance of the file system. Possible values are `Premium`, `Standard`, `Ultra` and `Flexible`.
     *
     * > **Note:** When updating `serviceLevel` by migrating it to another Capacity Pool, both `serviceLevel` and `poolName` must be changed, otherwise the volume will be recreated with the specified `serviceLevel`.
     *
     * > **Note:** After updating `serviceLevel` the `id` for the volume will change to include the new Capacity Pool so any resources referencing the Volume will be silently removed from state. They will still exist in Azure but need to reimported into Terraform.
     */
    serviceLevel: pulumi.Input<string>;
    /**
     * Enable SMB encryption. Changing this forces a new resource to be created.
     */
    smb3ProtocolEncryptionEnabled?: pulumi.Input<boolean | undefined>;
    /**
     * Limits enumeration of files and folders (that is, listing the contents) in SMB only to users with allowed access on the share. For instance, if a user doesn't have access to read a file or folder in a share with access-based enumeration enabled, then the file or folder doesn't show up in directory listings. Defaults to `false`. For more information, please refer to [Understand NAS share permissions in Azure NetApp Files](https://learn.microsoft.com/en-us/azure/azure-netapp-files/network-attached-storage-permissions#:~:text=security%20for%20administrators.-,Access%2Dbased%20enumeration,in%20an%20Azure%20NetApp%20Files%20SMB%20volume.%20Only%20contosoadmin%20has%20access.,-In%20the%20below)
     */
    smbAccessBasedEnumerationEnabled?: pulumi.Input<boolean | undefined>;
    /**
     * Enable SMB Continuous Availability. Changing this forces a new resource to be created.
     */
    smbContinuousAvailabilityEnabled?: pulumi.Input<boolean | undefined>;
    /**
     * Limits clients from browsing for an SMB share by hiding the share from view in Windows Explorer or when listing shares in "net view." Only end users that know the absolute paths to the share are able to find the share. Defaults to `false`. For more information, please refer to [Understand NAS share permissions in Azure NetApp Files](https://learn.microsoft.com/en-us/azure/azure-netapp-files/network-attached-storage-permissions#:~:text=Non%2Dbrowsable%20shares,find%20the%20share.)
     */
    smbNonBrowsableEnabled?: pulumi.Input<boolean | undefined>;
    /**
     * Specifies whether the .snapshot (NFS clients) or ~snapshot (SMB clients) path of a volume is visible. Defaults to `true`.
     */
    snapshotDirectoryVisible?: pulumi.Input<boolean | undefined>;
    /**
     * The maximum Storage Quota allowed for a file system in Gigabytes.
     */
    storageQuotaInGb: pulumi.Input<number>;
    /**
     * The ID of the Subnet the NetApp Volume resides in, which must have the `Microsoft.NetApp/volumes` delegation. Changing this forces a new resource to be created.
     */
    subnetId: pulumi.Input<string>;
    /**
     * A mapping of tags to assign to the resource.
     *
     * > **Note:** It is highly recommended to use the **lifecycle** property as noted in the example since it will prevent an accidental deletion of the volume if the `protocols` argument changes to a different protocol type.
     */
    tags?: pulumi.Input<{
        [key: string]: pulumi.Input<string>;
    } | undefined>;
    /**
     * Throughput of this volume in Mibps.
     */
    throughputInMibps?: pulumi.Input<number | undefined>;
    /**
     * A unique file path for the volume. Used when creating mount targets. Changing this forces a new resource to be created.
     */
    volumePath: pulumi.Input<string>;
    /**
     * Specifies the Availability Zone in which the Volume should be located. Possible values are `1`, `2` and `3`. Changing this forces a new resource to be created. This feature is currently in preview, for more information on how to enable it, please refer to [Manage availability zone volume placement for Azure NetApp Files](https://learn.microsoft.com/en-us/azure/azure-netapp-files/manage-availability-zone-volume-placement#register-the-feature).
     */
    zone?: pulumi.Input<string | undefined>;
}
//# sourceMappingURL=volume.d.ts.map