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 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, 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; /** * 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; /** * 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; /** * 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; /** * 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; /** * 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; } /** * 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; /** * 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; /** * 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; }