import * as pulumi from "@pulumi/pulumi";
/**
 * Manages an Azure VMware Solution Private Cloud Netapp File Attachment.
 *
 * ## Example Usage
 *
 * > **Note:** For Azure VMware Solution Private Cloud, normal `pulumi up` could ignore this note. Please disable correlation request id for continuous operations in one build (like acctest). The continuous operations like `update` or `delete` could not be triggered when it shares the same `correlation-id` with its previous operation.
 *
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as azure from "@pulumi/azure";
 *
 * const example = new azure.core.ResourceGroup("example", {
 *     name: "example-resources",
 *     location: "West Europe",
 * });
 * const test = new azure.network.PublicIp("test", {
 *     name: "example-public-ip",
 *     location: testAzurermResourceGroup.location,
 *     resourceGroupName: testAzurermResourceGroup.name,
 *     allocationMethod: "Static",
 *     sku: "Standard",
 * });
 * const testVirtualNetwork = new azure.network.VirtualNetwork("test", {
 *     name: "example-VirtualNetwork",
 *     location: testAzurermResourceGroup.location,
 *     resourceGroupName: testAzurermResourceGroup.name,
 *     addressSpaces: ["10.88.0.0/16"],
 * });
 * const netappSubnet = new azure.network.Subnet("netappSubnet", {
 *     name: "example-Subnet",
 *     resourceGroupName: testAzurermResourceGroup.name,
 *     virtualNetworkName: testVirtualNetwork.name,
 *     addressPrefixes: ["10.88.2.0/24"],
 *     delegations: [{
 *         name: "testdelegation",
 *         serviceDelegation: {
 *             name: "Microsoft.Netapp/volumes",
 *             actions: [
 *                 "Microsoft.Network/networkinterfaces/*",
 *                 "Microsoft.Network/virtualNetworks/subnets/join/action",
 *             ],
 *         },
 *     }],
 * });
 * const gatewaySubnet = new azure.network.Subnet("gatewaySubnet", {
 *     name: "GatewaySubnet",
 *     resourceGroupName: testAzurermResourceGroup.name,
 *     virtualNetworkName: testVirtualNetwork.name,
 *     addressPrefixes: ["10.88.1.0/24"],
 * });
 * const testVirtualNetworkGateway = new azure.network.VirtualNetworkGateway("test", {
 *     name: "example-vnet-gateway",
 *     location: testAzurermResourceGroup.location,
 *     resourceGroupName: testAzurermResourceGroup.name,
 *     type: "ExpressRoute",
 *     sku: "Standard",
 *     ipConfigurations: [{
 *         name: "vnetGatewayConfig",
 *         publicIpAddressId: test.id,
 *         subnetId: gatewaySubnet.id,
 *     }],
 * });
 * const testAccount = new azure.netapp.Account("test", {
 *     name: "example-NetAppAccount",
 *     location: testAzurermResourceGroup.location,
 *     resourceGroupName: testAzurermResourceGroup.name,
 * });
 * const testPool = new azure.netapp.Pool("test", {
 *     name: "example-NetAppPool",
 *     location: testAzurermResourceGroup.location,
 *     resourceGroupName: testAzurermResourceGroup.name,
 *     accountName: testAccount.name,
 *     serviceLevel: "Standard",
 *     sizeInTb: 4,
 * });
 * const testVolume = new azure.netapp.Volume("test", {
 *     name: "example-NetAppVolume",
 *     location: testAzurermResourceGroup.location,
 *     resourceGroupName: testAzurermResourceGroup.name,
 *     accountName: testAccount.name,
 *     poolName: testPool.name,
 *     volumePath: "my-unique-file-path-%d",
 *     serviceLevel: "Standard",
 *     subnetId: netappSubnet.id,
 *     protocols: ["NFSv3"],
 *     storageQuotaInGb: 100,
 *     azureVmwareDataStoreEnabled: true,
 *     exportPolicyRules: [{
 *         ruleIndex: 1,
 *         allowedClients: ["0.0.0.0/0"],
 *         protocolsEnabled: "NFSv3",
 *         unixReadOnly: false,
 *         unixReadWrite: true,
 *         rootAccessEnabled: true,
 *     }],
 * });
 * const testPrivateCloud = new azure.avs.PrivateCloud("test", {
 *     name: "example-PC",
 *     resourceGroupName: testAzurermResourceGroup.name,
 *     location: testAzurermResourceGroup.location,
 *     skuName: "av36",
 *     managementCluster: {
 *         size: 3,
 *     },
 *     networkSubnetCidr: "192.168.48.0/22",
 * });
 * const testCluster = new azure.avs.Cluster("test", {
 *     name: "example-vm-cluster",
 *     vmwareCloudId: testPrivateCloud.id,
 *     clusterNodeCount: 3,
 *     skuName: "av36",
 * });
 * const testExpressRouteAuthorization = new azure.avs.ExpressRouteAuthorization("test", {
 *     name: "example-VmwareAuthorization",
 *     privateCloudId: testPrivateCloud.id,
 * });
 * const testVirtualNetworkGatewayConnection = new azure.network.VirtualNetworkGatewayConnection("test", {
 *     name: "example-vnetgwconn",
 *     location: testAzurermResourceGroup.location,
 *     resourceGroupName: testAzurermResourceGroup.name,
 *     type: "ExpressRoute",
 *     virtualNetworkGatewayId: testVirtualNetworkGateway.id,
 *     expressRouteCircuitId: testPrivateCloud.circuits.apply(circuits => circuits[0].expressRouteId),
 *     authorizationKey: testExpressRouteAuthorization.expressRouteAuthorizationKey,
 * });
 * const testNetappVolumeAttachment = new azure.avs.NetappVolumeAttachment("test", {
 *     name: "example-vmwareattachment",
 *     netappVolumeId: testVolume.id,
 *     vmwareClusterId: testCluster.id,
 * }, {
 *     dependsOn: [testVirtualNetworkGatewayConnection],
 * });
 * ```
 *
 * ## API Providers
 *
 * <!-- This section is generated, changes will be overwritten -->
 * This resource uses the following Azure API Providers:
 *
 * * `Microsoft.AVS` - 2022-05-01
 *
 * ## Import
 *
 * Azure VMware Solution Private Cloud Netapp File Volume Attachments can be imported using the `resource id`, e.g.
 *
 * ```sh
 * $ pulumi import azure:avs/netappVolumeAttachment:NetappVolumeAttachment example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.AVS/privateClouds/privateCloud1/clusters/Cluster1/dataStores/datastore1
 * ```
 */
export declare class NetappVolumeAttachment extends pulumi.CustomResource {
    /**
     * Get an existing NetappVolumeAttachment 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?: NetappVolumeAttachmentState, opts?: pulumi.CustomResourceOptions): NetappVolumeAttachment;
    /**
     * Returns true if the given object is an instance of NetappVolumeAttachment.  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 NetappVolumeAttachment;
    /**
     * The name which should be used for this Azure VMware Solution Private Cloud Netapp File Volume Attachment. Changing this forces a new Azure VMware Solution Private Cloud Netapp File Volume Attachment to be created.
     */
    readonly name: pulumi.Output<string>;
    /**
     * The netapp file volume for this Azure VMware Solution Private Cloud Netapp File Volume Attachment to connect to. Changing this forces a new Azure VMware Solution Private Cloud Netapp File Volume Attachment to be created.
     */
    readonly netappVolumeId: pulumi.Output<string>;
    /**
     * The vmware cluster for this Azure VMware Solution Private Cloud Netapp File Volume Attachment to associated to. Changing this forces a new Azure VMware Solution Private Cloud Netapp File Volume Attachment to be created.
     *
     * > **Note:** please follow the prerequisites mentioned in this [article](https://learn.microsoft.com/en-us/azure/azure-vmware/attach-azure-netapp-files-to-azure-vmware-solution-hosts?tabs=azure-portal#prerequisites) before associating the netapp file volume to the Azure VMware Solution hosts.
     */
    readonly vmwareClusterId: pulumi.Output<string>;
    /**
     * Create a NetappVolumeAttachment 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: NetappVolumeAttachmentArgs, opts?: pulumi.CustomResourceOptions);
}
/**
 * Input properties used for looking up and filtering NetappVolumeAttachment resources.
 */
export interface NetappVolumeAttachmentState {
    /**
     * The name which should be used for this Azure VMware Solution Private Cloud Netapp File Volume Attachment. Changing this forces a new Azure VMware Solution Private Cloud Netapp File Volume Attachment to be created.
     */
    name?: pulumi.Input<string | undefined>;
    /**
     * The netapp file volume for this Azure VMware Solution Private Cloud Netapp File Volume Attachment to connect to. Changing this forces a new Azure VMware Solution Private Cloud Netapp File Volume Attachment to be created.
     */
    netappVolumeId?: pulumi.Input<string | undefined>;
    /**
     * The vmware cluster for this Azure VMware Solution Private Cloud Netapp File Volume Attachment to associated to. Changing this forces a new Azure VMware Solution Private Cloud Netapp File Volume Attachment to be created.
     *
     * > **Note:** please follow the prerequisites mentioned in this [article](https://learn.microsoft.com/en-us/azure/azure-vmware/attach-azure-netapp-files-to-azure-vmware-solution-hosts?tabs=azure-portal#prerequisites) before associating the netapp file volume to the Azure VMware Solution hosts.
     */
    vmwareClusterId?: pulumi.Input<string | undefined>;
}
/**
 * The set of arguments for constructing a NetappVolumeAttachment resource.
 */
export interface NetappVolumeAttachmentArgs {
    /**
     * The name which should be used for this Azure VMware Solution Private Cloud Netapp File Volume Attachment. Changing this forces a new Azure VMware Solution Private Cloud Netapp File Volume Attachment to be created.
     */
    name?: pulumi.Input<string | undefined>;
    /**
     * The netapp file volume for this Azure VMware Solution Private Cloud Netapp File Volume Attachment to connect to. Changing this forces a new Azure VMware Solution Private Cloud Netapp File Volume Attachment to be created.
     */
    netappVolumeId: pulumi.Input<string>;
    /**
     * The vmware cluster for this Azure VMware Solution Private Cloud Netapp File Volume Attachment to associated to. Changing this forces a new Azure VMware Solution Private Cloud Netapp File Volume Attachment to be created.
     *
     * > **Note:** please follow the prerequisites mentioned in this [article](https://learn.microsoft.com/en-us/azure/azure-vmware/attach-azure-netapp-files-to-azure-vmware-solution-hosts?tabs=azure-portal#prerequisites) before associating the netapp file volume to the Azure VMware Solution hosts.
     */
    vmwareClusterId: pulumi.Input<string>;
}
//# sourceMappingURL=netappVolumeAttachment.d.ts.map