All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.pulumi.azure.netapp.kotlin.VolumeGroupSapHana.kt Maven / Gradle / Ivy

@file:Suppress("NAME_SHADOWING", "DEPRECATION")

package com.pulumi.azure.netapp.kotlin

import com.pulumi.azure.netapp.kotlin.outputs.VolumeGroupSapHanaVolume
import com.pulumi.azure.netapp.kotlin.outputs.VolumeGroupSapHanaVolume.Companion.toKotlin
import com.pulumi.core.Output
import com.pulumi.kotlin.KotlinCustomResource
import com.pulumi.kotlin.PulumiTagMarker
import com.pulumi.kotlin.ResourceMapper
import com.pulumi.kotlin.options.CustomResourceOptions
import com.pulumi.kotlin.options.CustomResourceOptionsBuilder
import com.pulumi.resources.Resource
import kotlin.Boolean
import kotlin.String
import kotlin.Suppress
import kotlin.Unit
import kotlin.collections.List

/**
 * Builder for [VolumeGroupSapHana].
 */
@PulumiTagMarker
public class VolumeGroupSapHanaResourceBuilder internal constructor() {
    public var name: String? = null

    public var args: VolumeGroupSapHanaArgs = VolumeGroupSapHanaArgs()

    public var opts: CustomResourceOptions = CustomResourceOptions()

    /**
     * @param name The _unique_ name of the resulting resource.
     */
    public fun name(`value`: String) {
        this.name = value
    }

    /**
     * @param block The arguments to use to populate this resource's properties.
     */
    public suspend fun args(block: suspend VolumeGroupSapHanaArgsBuilder.() -> Unit) {
        val builder = VolumeGroupSapHanaArgsBuilder()
        block(builder)
        this.args = builder.build()
    }

    /**
     * @param block A bag of options that control this resource's behavior.
     */
    public suspend fun opts(block: suspend CustomResourceOptionsBuilder.() -> Unit) {
        this.opts = com.pulumi.kotlin.options.CustomResourceOptions.opts(block)
    }

    internal fun build(): VolumeGroupSapHana {
        val builtJavaResource = com.pulumi.azure.netapp.VolumeGroupSapHana(
            this.name,
            this.args.toJava(),
            this.opts.toJava(),
        )
        return VolumeGroupSapHana(builtJavaResource)
    }
}

/**
 * ## Example Usage
 * 
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as azure from "@pulumi/azure";
 * import * as random from "@pulumi/random";
 * const example = new random.RandomString("example", {
 *     length: 12,
 *     special: true,
 * });
 * const adminUsername = "exampleadmin";
 * const adminPassword = example.result;
 * const exampleResourceGroup = new azure.core.ResourceGroup("example", {
 *     name: `${prefix}-resources`,
 *     location: location,
 * });
 * const exampleVirtualNetwork = new azure.network.VirtualNetwork("example", {
 *     name: `${prefix}-vnet`,
 *     location: exampleResourceGroup.location,
 *     resourceGroupName: exampleResourceGroup.name,
 *     addressSpaces: ["10.6.0.0/16"],
 * });
 * const exampleSubnet = new azure.network.Subnet("example", {
 *     name: `${prefix}-delegated-subnet`,
 *     resourceGroupName: exampleResourceGroup.name,
 *     virtualNetworkName: exampleVirtualNetwork.name,
 *     addressPrefixes: ["10.6.2.0/24"],
 *     delegations: [{
 *         name: "testdelegation",
 *         serviceDelegation: {
 *             name: "Microsoft.Netapp/volumes",
 *             actions: [
 *                 "Microsoft.Network/networkinterfaces/*",
 *                 "Microsoft.Network/virtualNetworks/subnets/join/action",
 *             ],
 *         },
 *     }],
 * });
 * const example1 = new azure.network.Subnet("example1", {
 *     name: `${prefix}-hosts-subnet`,
 *     resourceGroupName: exampleResourceGroup.name,
 *     virtualNetworkName: exampleVirtualNetwork.name,
 *     addressPrefixes: ["10.6.1.0/24"],
 * });
 * const examplePlacementGroup = new azure.proximity.PlacementGroup("example", {
 *     name: `${prefix}-ppg`,
 *     location: exampleResourceGroup.location,
 *     resourceGroupName: exampleResourceGroup.name,
 * });
 * const exampleAvailabilitySet = new azure.compute.AvailabilitySet("example", {
 *     name: `${prefix}-avset`,
 *     location: exampleResourceGroup.location,
 *     resourceGroupName: exampleResourceGroup.name,
 *     proximityPlacementGroupId: examplePlacementGroup.id,
 * });
 * const exampleNetworkInterface = new azure.network.NetworkInterface("example", {
 *     name: `${prefix}-nic`,
 *     resourceGroupName: exampleResourceGroup.name,
 *     location: exampleResourceGroup.location,
 *     ipConfigurations: [{
 *         name: "internal",
 *         subnetId: example1.id,
 *         privateIpAddressAllocation: "Dynamic",
 *     }],
 * });
 * const exampleLinuxVirtualMachine = new azure.compute.LinuxVirtualMachine("example", {
 *     name: `${prefix}-vm`,
 *     resourceGroupName: exampleResourceGroup.name,
 *     location: exampleResourceGroup.location,
 *     size: "Standard_M8ms",
 *     adminUsername: adminUsername,
 *     adminPassword: adminPassword,
 *     disablePasswordAuthentication: false,
 *     proximityPlacementGroupId: examplePlacementGroup.id,
 *     availabilitySetId: exampleAvailabilitySet.id,
 *     networkInterfaceIds: [exampleNetworkInterface.id],
 *     sourceImageReference: {
 *         publisher: "Canonical",
 *         offer: "0001-com-ubuntu-server-jammy",
 *         sku: "22_04-lts",
 *         version: "latest",
 *     },
 *     osDisk: {
 *         storageAccountType: "Standard_LRS",
 *         caching: "ReadWrite",
 *     },
 * });
 * const exampleAccount = new azure.netapp.Account("example", {
 *     name: `${prefix}-netapp-account`,
 *     location: exampleResourceGroup.location,
 *     resourceGroupName: exampleResourceGroup.name,
 * }, {
 *     dependsOn: [
 *         exampleSubnet,
 *         example1,
 *     ],
 * });
 * const examplePool = new azure.netapp.Pool("example", {
 *     name: `${prefix}-netapp-pool`,
 *     location: exampleResourceGroup.location,
 *     resourceGroupName: exampleResourceGroup.name,
 *     accountName: exampleAccount.name,
 *     serviceLevel: "Standard",
 *     sizeInTb: 8,
 *     qosType: "Manual",
 * });
 * const exampleVolumeGroupSapHana = new azure.netapp.VolumeGroupSapHana("example", {
 *     name: `${prefix}-netapp-volumegroup`,
 *     location: exampleResourceGroup.location,
 *     resourceGroupName: exampleResourceGroup.name,
 *     accountName: exampleAccount.name,
 *     groupDescription: "Test volume group",
 *     applicationIdentifier: "TST",
 *     volumes: [
 *         {
 *             name: `${prefix}-netapp-volume-1`,
 *             volumePath: "my-unique-file-path-1",
 *             serviceLevel: "Standard",
 *             capacityPoolId: examplePool.id,
 *             subnetId: exampleSubnet.id,
 *             proximityPlacementGroupId: examplePlacementGroup.id,
 *             volumeSpecName: "data",
 *             storageQuotaInGb: 1024,
 *             throughputInMibps: 24,
 *             protocols: "NFSv4.1",
 *             securityStyle: "unix",
 *             snapshotDirectoryVisible: false,
 *             exportPolicyRules: [{
 *                 ruleIndex: 1,
 *                 allowedClients: "0.0.0.0/0",
 *                 nfsv3Enabled: false,
 *                 nfsv41Enabled: true,
 *                 unixReadOnly: false,
 *                 unixReadWrite: true,
 *                 rootAccessEnabled: false,
 *             }],
 *             tags: {
 *                 foo: "bar",
 *             },
 *         },
 *         {
 *             name: `${prefix}-netapp-volume-2`,
 *             volumePath: "my-unique-file-path-2",
 *             serviceLevel: "Standard",
 *             capacityPoolId: examplePool.id,
 *             subnetId: exampleSubnet.id,
 *             proximityPlacementGroupId: examplePlacementGroup.id,
 *             volumeSpecName: "log",
 *             storageQuotaInGb: 1024,
 *             throughputInMibps: 24,
 *             protocols: "NFSv4.1",
 *             securityStyle: "unix",
 *             snapshotDirectoryVisible: false,
 *             exportPolicyRules: [{
 *                 ruleIndex: 1,
 *                 allowedClients: "0.0.0.0/0",
 *                 nfsv3Enabled: false,
 *                 nfsv41Enabled: true,
 *                 unixReadOnly: false,
 *                 unixReadWrite: true,
 *                 rootAccessEnabled: false,
 *             }],
 *             tags: {
 *                 foo: "bar",
 *             },
 *         },
 *         {
 *             name: `${prefix}-netapp-volume-3`,
 *             volumePath: "my-unique-file-path-3",
 *             serviceLevel: "Standard",
 *             capacityPoolId: examplePool.id,
 *             subnetId: exampleSubnet.id,
 *             proximityPlacementGroupId: examplePlacementGroup.id,
 *             volumeSpecName: "shared",
 *             storageQuotaInGb: 1024,
 *             throughputInMibps: 24,
 *             protocols: "NFSv4.1",
 *             securityStyle: "unix",
 *             snapshotDirectoryVisible: false,
 *             exportPolicyRules: [{
 *                 ruleIndex: 1,
 *                 allowedClients: "0.0.0.0/0",
 *                 nfsv3Enabled: false,
 *                 nfsv41Enabled: true,
 *                 unixReadOnly: false,
 *                 unixReadWrite: true,
 *                 rootAccessEnabled: false,
 *             }],
 *         },
 *     ],
 * }, {
 *     dependsOn: [
 *         exampleLinuxVirtualMachine,
 *         examplePlacementGroup,
 *     ],
 * });
 * ```
 * ```python
 * import pulumi
 * import pulumi_azure as azure
 * import pulumi_random as random
 * example = random.RandomString("example",
 *     length=12,
 *     special=True)
 * admin_username = "exampleadmin"
 * admin_password = example.result
 * example_resource_group = azure.core.ResourceGroup("example",
 *     name=f"{prefix}-resources",
 *     location=location)
 * example_virtual_network = azure.network.VirtualNetwork("example",
 *     name=f"{prefix}-vnet",
 *     location=example_resource_group.location,
 *     resource_group_name=example_resource_group.name,
 *     address_spaces=["10.6.0.0/16"])
 * example_subnet = azure.network.Subnet("example",
 *     name=f"{prefix}-delegated-subnet",
 *     resource_group_name=example_resource_group.name,
 *     virtual_network_name=example_virtual_network.name,
 *     address_prefixes=["10.6.2.0/24"],
 *     delegations=[{
 *         "name": "testdelegation",
 *         "service_delegation": {
 *             "name": "Microsoft.Netapp/volumes",
 *             "actions": [
 *                 "Microsoft.Network/networkinterfaces/*",
 *                 "Microsoft.Network/virtualNetworks/subnets/join/action",
 *             ],
 *         },
 *     }])
 * example1 = azure.network.Subnet("example1",
 *     name=f"{prefix}-hosts-subnet",
 *     resource_group_name=example_resource_group.name,
 *     virtual_network_name=example_virtual_network.name,
 *     address_prefixes=["10.6.1.0/24"])
 * example_placement_group = azure.proximity.PlacementGroup("example",
 *     name=f"{prefix}-ppg",
 *     location=example_resource_group.location,
 *     resource_group_name=example_resource_group.name)
 * example_availability_set = azure.compute.AvailabilitySet("example",
 *     name=f"{prefix}-avset",
 *     location=example_resource_group.location,
 *     resource_group_name=example_resource_group.name,
 *     proximity_placement_group_id=example_placement_group.id)
 * example_network_interface = azure.network.NetworkInterface("example",
 *     name=f"{prefix}-nic",
 *     resource_group_name=example_resource_group.name,
 *     location=example_resource_group.location,
 *     ip_configurations=[{
 *         "name": "internal",
 *         "subnet_id": example1.id,
 *         "private_ip_address_allocation": "Dynamic",
 *     }])
 * example_linux_virtual_machine = azure.compute.LinuxVirtualMachine("example",
 *     name=f"{prefix}-vm",
 *     resource_group_name=example_resource_group.name,
 *     location=example_resource_group.location,
 *     size="Standard_M8ms",
 *     admin_username=admin_username,
 *     admin_password=admin_password,
 *     disable_password_authentication=False,
 *     proximity_placement_group_id=example_placement_group.id,
 *     availability_set_id=example_availability_set.id,
 *     network_interface_ids=[example_network_interface.id],
 *     source_image_reference={
 *         "publisher": "Canonical",
 *         "offer": "0001-com-ubuntu-server-jammy",
 *         "sku": "22_04-lts",
 *         "version": "latest",
 *     },
 *     os_disk={
 *         "storage_account_type": "Standard_LRS",
 *         "caching": "ReadWrite",
 *     })
 * example_account = azure.netapp.Account("example",
 *     name=f"{prefix}-netapp-account",
 *     location=example_resource_group.location,
 *     resource_group_name=example_resource_group.name,
 *     opts = pulumi.ResourceOptions(depends_on=[
 *             example_subnet,
 *             example1,
 *         ]))
 * example_pool = azure.netapp.Pool("example",
 *     name=f"{prefix}-netapp-pool",
 *     location=example_resource_group.location,
 *     resource_group_name=example_resource_group.name,
 *     account_name=example_account.name,
 *     service_level="Standard",
 *     size_in_tb=8,
 *     qos_type="Manual")
 * example_volume_group_sap_hana = azure.netapp.VolumeGroupSapHana("example",
 *     name=f"{prefix}-netapp-volumegroup",
 *     location=example_resource_group.location,
 *     resource_group_name=example_resource_group.name,
 *     account_name=example_account.name,
 *     group_description="Test volume group",
 *     application_identifier="TST",
 *     volumes=[
 *         {
 *             "name": f"{prefix}-netapp-volume-1",
 *             "volume_path": "my-unique-file-path-1",
 *             "service_level": "Standard",
 *             "capacity_pool_id": example_pool.id,
 *             "subnet_id": example_subnet.id,
 *             "proximity_placement_group_id": example_placement_group.id,
 *             "volume_spec_name": "data",
 *             "storage_quota_in_gb": 1024,
 *             "throughput_in_mibps": 24,
 *             "protocols": "NFSv4.1",
 *             "security_style": "unix",
 *             "snapshot_directory_visible": False,
 *             "export_policy_rules": [{
 *                 "rule_index": 1,
 *                 "allowed_clients": "0.0.0.0/0",
 *                 "nfsv3_enabled": False,
 *                 "nfsv41_enabled": True,
 *                 "unix_read_only": False,
 *                 "unix_read_write": True,
 *                 "root_access_enabled": False,
 *             }],
 *             "tags": {
 *                 "foo": "bar",
 *             },
 *         },
 *         {
 *             "name": f"{prefix}-netapp-volume-2",
 *             "volume_path": "my-unique-file-path-2",
 *             "service_level": "Standard",
 *             "capacity_pool_id": example_pool.id,
 *             "subnet_id": example_subnet.id,
 *             "proximity_placement_group_id": example_placement_group.id,
 *             "volume_spec_name": "log",
 *             "storage_quota_in_gb": 1024,
 *             "throughput_in_mibps": 24,
 *             "protocols": "NFSv4.1",
 *             "security_style": "unix",
 *             "snapshot_directory_visible": False,
 *             "export_policy_rules": [{
 *                 "rule_index": 1,
 *                 "allowed_clients": "0.0.0.0/0",
 *                 "nfsv3_enabled": False,
 *                 "nfsv41_enabled": True,
 *                 "unix_read_only": False,
 *                 "unix_read_write": True,
 *                 "root_access_enabled": False,
 *             }],
 *             "tags": {
 *                 "foo": "bar",
 *             },
 *         },
 *         {
 *             "name": f"{prefix}-netapp-volume-3",
 *             "volume_path": "my-unique-file-path-3",
 *             "service_level": "Standard",
 *             "capacity_pool_id": example_pool.id,
 *             "subnet_id": example_subnet.id,
 *             "proximity_placement_group_id": example_placement_group.id,
 *             "volume_spec_name": "shared",
 *             "storage_quota_in_gb": 1024,
 *             "throughput_in_mibps": 24,
 *             "protocols": "NFSv4.1",
 *             "security_style": "unix",
 *             "snapshot_directory_visible": False,
 *             "export_policy_rules": [{
 *                 "rule_index": 1,
 *                 "allowed_clients": "0.0.0.0/0",
 *                 "nfsv3_enabled": False,
 *                 "nfsv41_enabled": True,
 *                 "unix_read_only": False,
 *                 "unix_read_write": True,
 *                 "root_access_enabled": False,
 *             }],
 *         },
 *     ],
 *     opts = pulumi.ResourceOptions(depends_on=[
 *             example_linux_virtual_machine,
 *             example_placement_group,
 *         ]))
 * ```
 * ```csharp
 * using System.Collections.Generic;
 * using System.Linq;
 * using Pulumi;
 * using Azure = Pulumi.Azure;
 * using Random = Pulumi.Random;
 * return await Deployment.RunAsync(() =>
 * {
 *     var example = new Random.RandomString("example", new()
 *     {
 *         Length = 12,
 *         Special = true,
 *     });
 *     var adminUsername = "exampleadmin";
 *     var adminPassword = example.Result;
 *     var exampleResourceGroup = new Azure.Core.ResourceGroup("example", new()
 *     {
 *         Name = $"{prefix}-resources",
 *         Location = location,
 *     });
 *     var exampleVirtualNetwork = new Azure.Network.VirtualNetwork("example", new()
 *     {
 *         Name = $"{prefix}-vnet",
 *         Location = exampleResourceGroup.Location,
 *         ResourceGroupName = exampleResourceGroup.Name,
 *         AddressSpaces = new[]
 *         {
 *             "10.6.0.0/16",
 *         },
 *     });
 *     var exampleSubnet = new Azure.Network.Subnet("example", new()
 *     {
 *         Name = $"{prefix}-delegated-subnet",
 *         ResourceGroupName = exampleResourceGroup.Name,
 *         VirtualNetworkName = exampleVirtualNetwork.Name,
 *         AddressPrefixes = new[]
 *         {
 *             "10.6.2.0/24",
 *         },
 *         Delegations = new[]
 *         {
 *             new Azure.Network.Inputs.SubnetDelegationArgs
 *             {
 *                 Name = "testdelegation",
 *                 ServiceDelegation = new Azure.Network.Inputs.SubnetDelegationServiceDelegationArgs
 *                 {
 *                     Name = "Microsoft.Netapp/volumes",
 *                     Actions = new[]
 *                     {
 *                         "Microsoft.Network/networkinterfaces/*",
 *                         "Microsoft.Network/virtualNetworks/subnets/join/action",
 *                     },
 *                 },
 *             },
 *         },
 *     });
 *     var example1 = new Azure.Network.Subnet("example1", new()
 *     {
 *         Name = $"{prefix}-hosts-subnet",
 *         ResourceGroupName = exampleResourceGroup.Name,
 *         VirtualNetworkName = exampleVirtualNetwork.Name,
 *         AddressPrefixes = new[]
 *         {
 *             "10.6.1.0/24",
 *         },
 *     });
 *     var examplePlacementGroup = new Azure.Proximity.PlacementGroup("example", new()
 *     {
 *         Name = $"{prefix}-ppg",
 *         Location = exampleResourceGroup.Location,
 *         ResourceGroupName = exampleResourceGroup.Name,
 *     });
 *     var exampleAvailabilitySet = new Azure.Compute.AvailabilitySet("example", new()
 *     {
 *         Name = $"{prefix}-avset",
 *         Location = exampleResourceGroup.Location,
 *         ResourceGroupName = exampleResourceGroup.Name,
 *         ProximityPlacementGroupId = examplePlacementGroup.Id,
 *     });
 *     var exampleNetworkInterface = new Azure.Network.NetworkInterface("example", new()
 *     {
 *         Name = $"{prefix}-nic",
 *         ResourceGroupName = exampleResourceGroup.Name,
 *         Location = exampleResourceGroup.Location,
 *         IpConfigurations = new[]
 *         {
 *             new Azure.Network.Inputs.NetworkInterfaceIpConfigurationArgs
 *             {
 *                 Name = "internal",
 *                 SubnetId = example1.Id,
 *                 PrivateIpAddressAllocation = "Dynamic",
 *             },
 *         },
 *     });
 *     var exampleLinuxVirtualMachine = new Azure.Compute.LinuxVirtualMachine("example", new()
 *     {
 *         Name = $"{prefix}-vm",
 *         ResourceGroupName = exampleResourceGroup.Name,
 *         Location = exampleResourceGroup.Location,
 *         Size = "Standard_M8ms",
 *         AdminUsername = adminUsername,
 *         AdminPassword = adminPassword,
 *         DisablePasswordAuthentication = false,
 *         ProximityPlacementGroupId = examplePlacementGroup.Id,
 *         AvailabilitySetId = exampleAvailabilitySet.Id,
 *         NetworkInterfaceIds = new[]
 *         {
 *             exampleNetworkInterface.Id,
 *         },
 *         SourceImageReference = new Azure.Compute.Inputs.LinuxVirtualMachineSourceImageReferenceArgs
 *         {
 *             Publisher = "Canonical",
 *             Offer = "0001-com-ubuntu-server-jammy",
 *             Sku = "22_04-lts",
 *             Version = "latest",
 *         },
 *         OsDisk = new Azure.Compute.Inputs.LinuxVirtualMachineOsDiskArgs
 *         {
 *             StorageAccountType = "Standard_LRS",
 *             Caching = "ReadWrite",
 *         },
 *     });
 *     var exampleAccount = new Azure.NetApp.Account("example", new()
 *     {
 *         Name = $"{prefix}-netapp-account",
 *         Location = exampleResourceGroup.Location,
 *         ResourceGroupName = exampleResourceGroup.Name,
 *     }, new CustomResourceOptions
 *     {
 *         DependsOn =
 *         {
 *             exampleSubnet,
 *             example1,
 *         },
 *     });
 *     var examplePool = new Azure.NetApp.Pool("example", new()
 *     {
 *         Name = $"{prefix}-netapp-pool",
 *         Location = exampleResourceGroup.Location,
 *         ResourceGroupName = exampleResourceGroup.Name,
 *         AccountName = exampleAccount.Name,
 *         ServiceLevel = "Standard",
 *         SizeInTb = 8,
 *         QosType = "Manual",
 *     });
 *     var exampleVolumeGroupSapHana = new Azure.NetApp.VolumeGroupSapHana("example", new()
 *     {
 *         Name = $"{prefix}-netapp-volumegroup",
 *         Location = exampleResourceGroup.Location,
 *         ResourceGroupName = exampleResourceGroup.Name,
 *         AccountName = exampleAccount.Name,
 *         GroupDescription = "Test volume group",
 *         ApplicationIdentifier = "TST",
 *         Volumes = new[]
 *         {
 *             new Azure.NetApp.Inputs.VolumeGroupSapHanaVolumeArgs
 *             {
 *                 Name = $"{prefix}-netapp-volume-1",
 *                 VolumePath = "my-unique-file-path-1",
 *                 ServiceLevel = "Standard",
 *                 CapacityPoolId = examplePool.Id,
 *                 SubnetId = exampleSubnet.Id,
 *                 ProximityPlacementGroupId = examplePlacementGroup.Id,
 *                 VolumeSpecName = "data",
 *                 StorageQuotaInGb = 1024,
 *                 ThroughputInMibps = 24,
 *                 Protocols = "NFSv4.1",
 *                 SecurityStyle = "unix",
 *                 SnapshotDirectoryVisible = false,
 *                 ExportPolicyRules = new[]
 *                 {
 *                     new Azure.NetApp.Inputs.VolumeGroupSapHanaVolumeExportPolicyRuleArgs
 *                     {
 *                         RuleIndex = 1,
 *                         AllowedClients = "0.0.0.0/0",
 *                         Nfsv3Enabled = false,
 *                         Nfsv41Enabled = true,
 *                         UnixReadOnly = false,
 *                         UnixReadWrite = true,
 *                         RootAccessEnabled = false,
 *                     },
 *                 },
 *                 Tags =
 *                 {
 *                     { "foo", "bar" },
 *                 },
 *             },
 *             new Azure.NetApp.Inputs.VolumeGroupSapHanaVolumeArgs
 *             {
 *                 Name = $"{prefix}-netapp-volume-2",
 *                 VolumePath = "my-unique-file-path-2",
 *                 ServiceLevel = "Standard",
 *                 CapacityPoolId = examplePool.Id,
 *                 SubnetId = exampleSubnet.Id,
 *                 ProximityPlacementGroupId = examplePlacementGroup.Id,
 *                 VolumeSpecName = "log",
 *                 StorageQuotaInGb = 1024,
 *                 ThroughputInMibps = 24,
 *                 Protocols = "NFSv4.1",
 *                 SecurityStyle = "unix",
 *                 SnapshotDirectoryVisible = false,
 *                 ExportPolicyRules = new[]
 *                 {
 *                     new Azure.NetApp.Inputs.VolumeGroupSapHanaVolumeExportPolicyRuleArgs
 *                     {
 *                         RuleIndex = 1,
 *                         AllowedClients = "0.0.0.0/0",
 *                         Nfsv3Enabled = false,
 *                         Nfsv41Enabled = true,
 *                         UnixReadOnly = false,
 *                         UnixReadWrite = true,
 *                         RootAccessEnabled = false,
 *                     },
 *                 },
 *                 Tags =
 *                 {
 *                     { "foo", "bar" },
 *                 },
 *             },
 *             new Azure.NetApp.Inputs.VolumeGroupSapHanaVolumeArgs
 *             {
 *                 Name = $"{prefix}-netapp-volume-3",
 *                 VolumePath = "my-unique-file-path-3",
 *                 ServiceLevel = "Standard",
 *                 CapacityPoolId = examplePool.Id,
 *                 SubnetId = exampleSubnet.Id,
 *                 ProximityPlacementGroupId = examplePlacementGroup.Id,
 *                 VolumeSpecName = "shared",
 *                 StorageQuotaInGb = 1024,
 *                 ThroughputInMibps = 24,
 *                 Protocols = "NFSv4.1",
 *                 SecurityStyle = "unix",
 *                 SnapshotDirectoryVisible = false,
 *                 ExportPolicyRules = new[]
 *                 {
 *                     new Azure.NetApp.Inputs.VolumeGroupSapHanaVolumeExportPolicyRuleArgs
 *                     {
 *                         RuleIndex = 1,
 *                         AllowedClients = "0.0.0.0/0",
 *                         Nfsv3Enabled = false,
 *                         Nfsv41Enabled = true,
 *                         UnixReadOnly = false,
 *                         UnixReadWrite = true,
 *                         RootAccessEnabled = false,
 *                     },
 *                 },
 *             },
 *         },
 *     }, new CustomResourceOptions
 *     {
 *         DependsOn =
 *         {
 *             exampleLinuxVirtualMachine,
 *             examplePlacementGroup,
 *         },
 *     });
 * });
 * ```
 * ```go
 * package main
 * import (
 * 	"fmt"
 * 	"github.com/pulumi/pulumi-azure/sdk/v5/go/azure/compute"
 * 	"github.com/pulumi/pulumi-azure/sdk/v5/go/azure/core"
 * 	"github.com/pulumi/pulumi-azure/sdk/v5/go/azure/netapp"
 * 	"github.com/pulumi/pulumi-azure/sdk/v5/go/azure/network"
 * 	"github.com/pulumi/pulumi-azure/sdk/v5/go/azure/proximity"
 * 	"github.com/pulumi/pulumi-random/sdk/v4/go/random"
 * 	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
 * )
 * func main() {
 * 	pulumi.Run(func(ctx *pulumi.Context) error {
 * 		example, err := random.NewRandomString(ctx, "example", &random.RandomStringArgs{
 * 			Length:  pulumi.Int(12),
 * 			Special: pulumi.Bool(true),
 * 		})
 * 		if err != nil {
 * 			return err
 * 		}
 * 		adminUsername := "exampleadmin"
 * 		adminPassword := example.Result
 * 		exampleResourceGroup, err := core.NewResourceGroup(ctx, "example", &core.ResourceGroupArgs{
 * 			Name:     pulumi.Sprintf("%v-resources", prefix),
 * 			Location: pulumi.Any(location),
 * 		})
 * 		if err != nil {
 * 			return err
 * 		}
 * 		exampleVirtualNetwork, err := network.NewVirtualNetwork(ctx, "example", &network.VirtualNetworkArgs{
 * 			Name:              pulumi.Sprintf("%v-vnet", prefix),
 * 			Location:          exampleResourceGroup.Location,
 * 			ResourceGroupName: exampleResourceGroup.Name,
 * 			AddressSpaces: pulumi.StringArray{
 * 				pulumi.String("10.6.0.0/16"),
 * 			},
 * 		})
 * 		if err != nil {
 * 			return err
 * 		}
 * 		exampleSubnet, err := network.NewSubnet(ctx, "example", &network.SubnetArgs{
 * 			Name:               pulumi.Sprintf("%v-delegated-subnet", prefix),
 * 			ResourceGroupName:  exampleResourceGroup.Name,
 * 			VirtualNetworkName: exampleVirtualNetwork.Name,
 * 			AddressPrefixes: pulumi.StringArray{
 * 				pulumi.String("10.6.2.0/24"),
 * 			},
 * 			Delegations: network.SubnetDelegationArray{
 * 				&network.SubnetDelegationArgs{
 * 					Name: pulumi.String("testdelegation"),
 * 					ServiceDelegation: &network.SubnetDelegationServiceDelegationArgs{
 * 						Name: pulumi.String("Microsoft.Netapp/volumes"),
 * 						Actions: pulumi.StringArray{
 * 							pulumi.String("Microsoft.Network/networkinterfaces/*"),
 * 							pulumi.String("Microsoft.Network/virtualNetworks/subnets/join/action"),
 * 						},
 * 					},
 * 				},
 * 			},
 * 		})
 * 		if err != nil {
 * 			return err
 * 		}
 * 		example1, err := network.NewSubnet(ctx, "example1", &network.SubnetArgs{
 * 			Name:               pulumi.Sprintf("%v-hosts-subnet", prefix),
 * 			ResourceGroupName:  exampleResourceGroup.Name,
 * 			VirtualNetworkName: exampleVirtualNetwork.Name,
 * 			AddressPrefixes: pulumi.StringArray{
 * 				pulumi.String("10.6.1.0/24"),
 * 			},
 * 		})
 * 		if err != nil {
 * 			return err
 * 		}
 * 		examplePlacementGroup, err := proximity.NewPlacementGroup(ctx, "example", &proximity.PlacementGroupArgs{
 * 			Name:              pulumi.Sprintf("%v-ppg", prefix),
 * 			Location:          exampleResourceGroup.Location,
 * 			ResourceGroupName: exampleResourceGroup.Name,
 * 		})
 * 		if err != nil {
 * 			return err
 * 		}
 * 		exampleAvailabilitySet, err := compute.NewAvailabilitySet(ctx, "example", &compute.AvailabilitySetArgs{
 * 			Name:                      pulumi.Sprintf("%v-avset", prefix),
 * 			Location:                  exampleResourceGroup.Location,
 * 			ResourceGroupName:         exampleResourceGroup.Name,
 * 			ProximityPlacementGroupId: examplePlacementGroup.ID(),
 * 		})
 * 		if err != nil {
 * 			return err
 * 		}
 * 		exampleNetworkInterface, err := network.NewNetworkInterface(ctx, "example", &network.NetworkInterfaceArgs{
 * 			Name:              pulumi.Sprintf("%v-nic", prefix),
 * 			ResourceGroupName: exampleResourceGroup.Name,
 * 			Location:          exampleResourceGroup.Location,
 * 			IpConfigurations: network.NetworkInterfaceIpConfigurationArray{
 * 				&network.NetworkInterfaceIpConfigurationArgs{
 * 					Name:                       pulumi.String("internal"),
 * 					SubnetId:                   example1.ID(),
 * 					PrivateIpAddressAllocation: pulumi.String("Dynamic"),
 * 				},
 * 			},
 * 		})
 * 		if err != nil {
 * 			return err
 * 		}
 * 		exampleLinuxVirtualMachine, err := compute.NewLinuxVirtualMachine(ctx, "example", &compute.LinuxVirtualMachineArgs{
 * 			Name:                          pulumi.Sprintf("%v-vm", prefix),
 * 			ResourceGroupName:             exampleResourceGroup.Name,
 * 			Location:                      exampleResourceGroup.Location,
 * 			Size:                          pulumi.String("Standard_M8ms"),
 * 			AdminUsername:                 pulumi.String(adminUsername),
 * 			AdminPassword:                 pulumi.String(adminPassword),
 * 			DisablePasswordAuthentication: pulumi.Bool(false),
 * 			ProximityPlacementGroupId:     examplePlacementGroup.ID(),
 * 			AvailabilitySetId:             exampleAvailabilitySet.ID(),
 * 			NetworkInterfaceIds: pulumi.StringArray{
 * 				exampleNetworkInterface.ID(),
 * 			},
 * 			SourceImageReference: &compute.LinuxVirtualMachineSourceImageReferenceArgs{
 * 				Publisher: pulumi.String("Canonical"),
 * 				Offer:     pulumi.String("0001-com-ubuntu-server-jammy"),
 * 				Sku:       pulumi.String("22_04-lts"),
 * 				Version:   pulumi.String("latest"),
 * 			},
 * 			OsDisk: &compute.LinuxVirtualMachineOsDiskArgs{
 * 				StorageAccountType: pulumi.String("Standard_LRS"),
 * 				Caching:            pulumi.String("ReadWrite"),
 * 			},
 * 		})
 * 		if err != nil {
 * 			return err
 * 		}
 * 		exampleAccount, err := netapp.NewAccount(ctx, "example", &netapp.AccountArgs{
 * 			Name:              pulumi.Sprintf("%v-netapp-account", prefix),
 * 			Location:          exampleResourceGroup.Location,
 * 			ResourceGroupName: exampleResourceGroup.Name,
 * 		}, pulumi.DependsOn([]pulumi.Resource{
 * 			exampleSubnet,
 * 			example1,
 * 		}))
 * 		if err != nil {
 * 			return err
 * 		}
 * 		examplePool, err := netapp.NewPool(ctx, "example", &netapp.PoolArgs{
 * 			Name:              pulumi.Sprintf("%v-netapp-pool", prefix),
 * 			Location:          exampleResourceGroup.Location,
 * 			ResourceGroupName: exampleResourceGroup.Name,
 * 			AccountName:       exampleAccount.Name,
 * 			ServiceLevel:      pulumi.String("Standard"),
 * 			SizeInTb:          pulumi.Int(8),
 * 			QosType:           pulumi.String("Manual"),
 * 		})
 * 		if err != nil {
 * 			return err
 * 		}
 * 		_, err = netapp.NewVolumeGroupSapHana(ctx, "example", &netapp.VolumeGroupSapHanaArgs{
 * 			Name:                  pulumi.Sprintf("%v-netapp-volumegroup", prefix),
 * 			Location:              exampleResourceGroup.Location,
 * 			ResourceGroupName:     exampleResourceGroup.Name,
 * 			AccountName:           exampleAccount.Name,
 * 			GroupDescription:      pulumi.String("Test volume group"),
 * 			ApplicationIdentifier: pulumi.String("TST"),
 * 			Volumes: netapp.VolumeGroupSapHanaVolumeArray{
 * 				&netapp.VolumeGroupSapHanaVolumeArgs{
 * 					Name:                      pulumi.Sprintf("%v-netapp-volume-1", prefix),
 * 					VolumePath:                pulumi.String("my-unique-file-path-1"),
 * 					ServiceLevel:              pulumi.String("Standard"),
 * 					CapacityPoolId:            examplePool.ID(),
 * 					SubnetId:                  exampleSubnet.ID(),
 * 					ProximityPlacementGroupId: examplePlacementGroup.ID(),
 * 					VolumeSpecName:            pulumi.String("data"),
 * 					StorageQuotaInGb:          pulumi.Int(1024),
 * 					ThroughputInMibps:         pulumi.Float64(24),
 * 					Protocols:                 pulumi.String("NFSv4.1"),
 * 					SecurityStyle:             pulumi.String("unix"),
 * 					SnapshotDirectoryVisible:  pulumi.Bool(false),
 * 					ExportPolicyRules: netapp.VolumeGroupSapHanaVolumeExportPolicyRuleArray{
 * 						&netapp.VolumeGroupSapHanaVolumeExportPolicyRuleArgs{
 * 							RuleIndex:         pulumi.Int(1),
 * 							AllowedClients:    pulumi.String("0.0.0.0/0"),
 * 							Nfsv3Enabled:      pulumi.Bool(false),
 * 							Nfsv41Enabled:     pulumi.Bool(true),
 * 							UnixReadOnly:      pulumi.Bool(false),
 * 							UnixReadWrite:     pulumi.Bool(true),
 * 							RootAccessEnabled: pulumi.Bool(false),
 * 						},
 * 					},
 * 					Tags: pulumi.StringMap{
 * 						"foo": pulumi.String("bar"),
 * 					},
 * 				},
 * 				&netapp.VolumeGroupSapHanaVolumeArgs{
 * 					Name:                      pulumi.Sprintf("%v-netapp-volume-2", prefix),
 * 					VolumePath:                pulumi.String("my-unique-file-path-2"),
 * 					ServiceLevel:              pulumi.String("Standard"),
 * 					CapacityPoolId:            examplePool.ID(),
 * 					SubnetId:                  exampleSubnet.ID(),
 * 					ProximityPlacementGroupId: examplePlacementGroup.ID(),
 * 					VolumeSpecName:            pulumi.String("log"),
 * 					StorageQuotaInGb:          pulumi.Int(1024),
 * 					ThroughputInMibps:         pulumi.Float64(24),
 * 					Protocols:                 pulumi.String("NFSv4.1"),
 * 					SecurityStyle:             pulumi.String("unix"),
 * 					SnapshotDirectoryVisible:  pulumi.Bool(false),
 * 					ExportPolicyRules: netapp.VolumeGroupSapHanaVolumeExportPolicyRuleArray{
 * 						&netapp.VolumeGroupSapHanaVolumeExportPolicyRuleArgs{
 * 							RuleIndex:         pulumi.Int(1),
 * 							AllowedClients:    pulumi.String("0.0.0.0/0"),
 * 							Nfsv3Enabled:      pulumi.Bool(false),
 * 							Nfsv41Enabled:     pulumi.Bool(true),
 * 							UnixReadOnly:      pulumi.Bool(false),
 * 							UnixReadWrite:     pulumi.Bool(true),
 * 							RootAccessEnabled: pulumi.Bool(false),
 * 						},
 * 					},
 * 					Tags: pulumi.StringMap{
 * 						"foo": pulumi.String("bar"),
 * 					},
 * 				},
 * 				&netapp.VolumeGroupSapHanaVolumeArgs{
 * 					Name:                      pulumi.Sprintf("%v-netapp-volume-3", prefix),
 * 					VolumePath:                pulumi.String("my-unique-file-path-3"),
 * 					ServiceLevel:              pulumi.String("Standard"),
 * 					CapacityPoolId:            examplePool.ID(),
 * 					SubnetId:                  exampleSubnet.ID(),
 * 					ProximityPlacementGroupId: examplePlacementGroup.ID(),
 * 					VolumeSpecName:            pulumi.String("shared"),
 * 					StorageQuotaInGb:          pulumi.Int(1024),
 * 					ThroughputInMibps:         pulumi.Float64(24),
 * 					Protocols:                 pulumi.String("NFSv4.1"),
 * 					SecurityStyle:             pulumi.String("unix"),
 * 					SnapshotDirectoryVisible:  pulumi.Bool(false),
 * 					ExportPolicyRules: netapp.VolumeGroupSapHanaVolumeExportPolicyRuleArray{
 * 						&netapp.VolumeGroupSapHanaVolumeExportPolicyRuleArgs{
 * 							RuleIndex:         pulumi.Int(1),
 * 							AllowedClients:    pulumi.String("0.0.0.0/0"),
 * 							Nfsv3Enabled:      pulumi.Bool(false),
 * 							Nfsv41Enabled:     pulumi.Bool(true),
 * 							UnixReadOnly:      pulumi.Bool(false),
 * 							UnixReadWrite:     pulumi.Bool(true),
 * 							RootAccessEnabled: pulumi.Bool(false),
 * 						},
 * 					},
 * 				},
 * 			},
 * 		}, pulumi.DependsOn([]pulumi.Resource{
 * 			exampleLinuxVirtualMachine,
 * 			examplePlacementGroup,
 * 		}))
 * 		if err != nil {
 * 			return err
 * 		}
 * 		return nil
 * 	})
 * }
 * ```
 * ```java
 * package generated_program;
 * import com.pulumi.Context;
 * import com.pulumi.Pulumi;
 * import com.pulumi.core.Output;
 * import com.pulumi.random.RandomString;
 * import com.pulumi.random.RandomStringArgs;
 * import com.pulumi.azure.core.ResourceGroup;
 * import com.pulumi.azure.core.ResourceGroupArgs;
 * import com.pulumi.azure.network.VirtualNetwork;
 * import com.pulumi.azure.network.VirtualNetworkArgs;
 * import com.pulumi.azure.network.Subnet;
 * import com.pulumi.azure.network.SubnetArgs;
 * import com.pulumi.azure.network.inputs.SubnetDelegationArgs;
 * import com.pulumi.azure.network.inputs.SubnetDelegationServiceDelegationArgs;
 * import com.pulumi.azure.proximity.PlacementGroup;
 * import com.pulumi.azure.proximity.PlacementGroupArgs;
 * import com.pulumi.azure.compute.AvailabilitySet;
 * import com.pulumi.azure.compute.AvailabilitySetArgs;
 * import com.pulumi.azure.network.NetworkInterface;
 * import com.pulumi.azure.network.NetworkInterfaceArgs;
 * import com.pulumi.azure.network.inputs.NetworkInterfaceIpConfigurationArgs;
 * import com.pulumi.azure.compute.LinuxVirtualMachine;
 * import com.pulumi.azure.compute.LinuxVirtualMachineArgs;
 * import com.pulumi.azure.compute.inputs.LinuxVirtualMachineSourceImageReferenceArgs;
 * import com.pulumi.azure.compute.inputs.LinuxVirtualMachineOsDiskArgs;
 * import com.pulumi.azure.netapp.Account;
 * import com.pulumi.azure.netapp.AccountArgs;
 * import com.pulumi.azure.netapp.Pool;
 * import com.pulumi.azure.netapp.PoolArgs;
 * import com.pulumi.azure.netapp.VolumeGroupSapHana;
 * import com.pulumi.azure.netapp.VolumeGroupSapHanaArgs;
 * import com.pulumi.azure.netapp.inputs.VolumeGroupSapHanaVolumeArgs;
 * import com.pulumi.resources.CustomResourceOptions;
 * import java.util.List;
 * import java.util.ArrayList;
 * import java.util.Map;
 * import java.io.File;
 * import java.nio.file.Files;
 * import java.nio.file.Paths;
 * public class App {
 *     public static void main(String[] args) {
 *         Pulumi.run(App::stack);
 *     }
 *     public static void stack(Context ctx) {
 *         var example = new RandomString("example", RandomStringArgs.builder()
 *             .length(12)
 *             .special(true)
 *             .build());
 *         final var adminUsername = "exampleadmin";
 *         final var adminPassword = example.result();
 *         var exampleResourceGroup = new ResourceGroup("exampleResourceGroup", ResourceGroupArgs.builder()
 *             .name(String.format("%s-resources", prefix))
 *             .location(location)
 *             .build());
 *         var exampleVirtualNetwork = new VirtualNetwork("exampleVirtualNetwork", VirtualNetworkArgs.builder()
 *             .name(String.format("%s-vnet", prefix))
 *             .location(exampleResourceGroup.location())
 *             .resourceGroupName(exampleResourceGroup.name())
 *             .addressSpaces("10.6.0.0/16")
 *             .build());
 *         var exampleSubnet = new Subnet("exampleSubnet", SubnetArgs.builder()
 *             .name(String.format("%s-delegated-subnet", prefix))
 *             .resourceGroupName(exampleResourceGroup.name())
 *             .virtualNetworkName(exampleVirtualNetwork.name())
 *             .addressPrefixes("10.6.2.0/24")
 *             .delegations(SubnetDelegationArgs.builder()
 *                 .name("testdelegation")
 *                 .serviceDelegation(SubnetDelegationServiceDelegationArgs.builder()
 *                     .name("Microsoft.Netapp/volumes")
 *                     .actions(
 *                         "Microsoft.Network/networkinterfaces/*",
 *                         "Microsoft.Network/virtualNetworks/subnets/join/action")
 *                     .build())
 *                 .build())
 *             .build());
 *         var example1 = new Subnet("example1", SubnetArgs.builder()
 *             .name(String.format("%s-hosts-subnet", prefix))
 *             .resourceGroupName(exampleResourceGroup.name())
 *             .virtualNetworkName(exampleVirtualNetwork.name())
 *             .addressPrefixes("10.6.1.0/24")
 *             .build());
 *         var examplePlacementGroup = new PlacementGroup("examplePlacementGroup", PlacementGroupArgs.builder()
 *             .name(String.format("%s-ppg", prefix))
 *             .location(exampleResourceGroup.location())
 *             .resourceGroupName(exampleResourceGroup.name())
 *             .build());
 *         var exampleAvailabilitySet = new AvailabilitySet("exampleAvailabilitySet", AvailabilitySetArgs.builder()
 *             .name(String.format("%s-avset", prefix))
 *             .location(exampleResourceGroup.location())
 *             .resourceGroupName(exampleResourceGroup.name())
 *             .proximityPlacementGroupId(examplePlacementGroup.id())
 *             .build());
 *         var exampleNetworkInterface = new NetworkInterface("exampleNetworkInterface", NetworkInterfaceArgs.builder()
 *             .name(String.format("%s-nic", prefix))
 *             .resourceGroupName(exampleResourceGroup.name())
 *             .location(exampleResourceGroup.location())
 *             .ipConfigurations(NetworkInterfaceIpConfigurationArgs.builder()
 *                 .name("internal")
 *                 .subnetId(example1.id())
 *                 .privateIpAddressAllocation("Dynamic")
 *                 .build())
 *             .build());
 *         var exampleLinuxVirtualMachine = new LinuxVirtualMachine("exampleLinuxVirtualMachine", LinuxVirtualMachineArgs.builder()
 *             .name(String.format("%s-vm", prefix))
 *             .resourceGroupName(exampleResourceGroup.name())
 *             .location(exampleResourceGroup.location())
 *             .size("Standard_M8ms")
 *             .adminUsername(adminUsername)
 *             .adminPassword(adminPassword)
 *             .disablePasswordAuthentication(false)
 *             .proximityPlacementGroupId(examplePlacementGroup.id())
 *             .availabilitySetId(exampleAvailabilitySet.id())
 *             .networkInterfaceIds(exampleNetworkInterface.id())
 *             .sourceImageReference(LinuxVirtualMachineSourceImageReferenceArgs.builder()
 *                 .publisher("Canonical")
 *                 .offer("0001-com-ubuntu-server-jammy")
 *                 .sku("22_04-lts")
 *                 .version("latest")
 *                 .build())
 *             .osDisk(LinuxVirtualMachineOsDiskArgs.builder()
 *                 .storageAccountType("Standard_LRS")
 *                 .caching("ReadWrite")
 *                 .build())
 *             .build());
 *         var exampleAccount = new Account("exampleAccount", AccountArgs.builder()
 *             .name(String.format("%s-netapp-account", prefix))
 *             .location(exampleResourceGroup.location())
 *             .resourceGroupName(exampleResourceGroup.name())
 *             .build(), CustomResourceOptions.builder()
 *                 .dependsOn(
 *                     exampleSubnet,
 *                     example1)
 *                 .build());
 *         var examplePool = new Pool("examplePool", PoolArgs.builder()
 *             .name(String.format("%s-netapp-pool", prefix))
 *             .location(exampleResourceGroup.location())
 *             .resourceGroupName(exampleResourceGroup.name())
 *             .accountName(exampleAccount.name())
 *             .serviceLevel("Standard")
 *             .sizeInTb(8)
 *             .qosType("Manual")
 *             .build());
 *         var exampleVolumeGroupSapHana = new VolumeGroupSapHana("exampleVolumeGroupSapHana", VolumeGroupSapHanaArgs.builder()
 *             .name(String.format("%s-netapp-volumegroup", prefix))
 *             .location(exampleResourceGroup.location())
 *             .resourceGroupName(exampleResourceGroup.name())
 *             .accountName(exampleAccount.name())
 *             .groupDescription("Test volume group")
 *             .applicationIdentifier("TST")
 *             .volumes(
 *                 VolumeGroupSapHanaVolumeArgs.builder()
 *                     .name(String.format("%s-netapp-volume-1", prefix))
 *                     .volumePath("my-unique-file-path-1")
 *                     .serviceLevel("Standard")
 *                     .capacityPoolId(examplePool.id())
 *                     .subnetId(exampleSubnet.id())
 *                     .proximityPlacementGroupId(examplePlacementGroup.id())
 *                     .volumeSpecName("data")
 *                     .storageQuotaInGb(1024)
 *                     .throughputInMibps(24)
 *                     .protocols("NFSv4.1")
 *                     .securityStyle("unix")
 *                     .snapshotDirectoryVisible(false)
 *                     .exportPolicyRules(VolumeGroupSapHanaVolumeExportPolicyRuleArgs.builder()
 *                         .ruleIndex(1)
 *                         .allowedClients("0.0.0.0/0")
 *                         .nfsv3Enabled(false)
 *                         .nfsv41Enabled(true)
 *                         .unixReadOnly(false)
 *                         .unixReadWrite(true)
 *                         .rootAccessEnabled(false)
 *                         .build())
 *                     .tags(Map.of("foo", "bar"))
 *                     .build(),
 *                 VolumeGroupSapHanaVolumeArgs.builder()
 *                     .name(String.format("%s-netapp-volume-2", prefix))
 *                     .volumePath("my-unique-file-path-2")
 *                     .serviceLevel("Standard")
 *                     .capacityPoolId(examplePool.id())
 *                     .subnetId(exampleSubnet.id())
 *                     .proximityPlacementGroupId(examplePlacementGroup.id())
 *                     .volumeSpecName("log")
 *                     .storageQuotaInGb(1024)
 *                     .throughputInMibps(24)
 *                     .protocols("NFSv4.1")
 *                     .securityStyle("unix")
 *                     .snapshotDirectoryVisible(false)
 *                     .exportPolicyRules(VolumeGroupSapHanaVolumeExportPolicyRuleArgs.builder()
 *                         .ruleIndex(1)
 *                         .allowedClients("0.0.0.0/0")
 *                         .nfsv3Enabled(false)
 *                         .nfsv41Enabled(true)
 *                         .unixReadOnly(false)
 *                         .unixReadWrite(true)
 *                         .rootAccessEnabled(false)
 *                         .build())
 *                     .tags(Map.of("foo", "bar"))
 *                     .build(),
 *                 VolumeGroupSapHanaVolumeArgs.builder()
 *                     .name(String.format("%s-netapp-volume-3", prefix))
 *                     .volumePath("my-unique-file-path-3")
 *                     .serviceLevel("Standard")
 *                     .capacityPoolId(examplePool.id())
 *                     .subnetId(exampleSubnet.id())
 *                     .proximityPlacementGroupId(examplePlacementGroup.id())
 *                     .volumeSpecName("shared")
 *                     .storageQuotaInGb(1024)
 *                     .throughputInMibps(24)
 *                     .protocols("NFSv4.1")
 *                     .securityStyle("unix")
 *                     .snapshotDirectoryVisible(false)
 *                     .exportPolicyRules(VolumeGroupSapHanaVolumeExportPolicyRuleArgs.builder()
 *                         .ruleIndex(1)
 *                         .allowedClients("0.0.0.0/0")
 *                         .nfsv3Enabled(false)
 *                         .nfsv41Enabled(true)
 *                         .unixReadOnly(false)
 *                         .unixReadWrite(true)
 *                         .rootAccessEnabled(false)
 *                         .build())
 *                     .build())
 *             .build(), CustomResourceOptions.builder()
 *                 .dependsOn(
 *                     exampleLinuxVirtualMachine,
 *                     examplePlacementGroup)
 *                 .build());
 *     }
 * }
 * ```
 * ```yaml
 * resources:
 *   example:
 *     type: random:RandomString
 *     properties:
 *       length: 12
 *       special: true
 *   exampleResourceGroup:
 *     type: azure:core:ResourceGroup
 *     name: example
 *     properties:
 *       name: ${prefix}-resources
 *       location: ${location}
 *   exampleVirtualNetwork:
 *     type: azure:network:VirtualNetwork
 *     name: example
 *     properties:
 *       name: ${prefix}-vnet
 *       location: ${exampleResourceGroup.location}
 *       resourceGroupName: ${exampleResourceGroup.name}
 *       addressSpaces:
 *         - 10.6.0.0/16
 *   exampleSubnet:
 *     type: azure:network:Subnet
 *     name: example
 *     properties:
 *       name: ${prefix}-delegated-subnet
 *       resourceGroupName: ${exampleResourceGroup.name}
 *       virtualNetworkName: ${exampleVirtualNetwork.name}
 *       addressPrefixes:
 *         - 10.6.2.0/24
 *       delegations:
 *         - name: testdelegation
 *           serviceDelegation:
 *             name: Microsoft.Netapp/volumes
 *             actions:
 *               - Microsoft.Network/networkinterfaces/*
 *               - Microsoft.Network/virtualNetworks/subnets/join/action
 *   example1:
 *     type: azure:network:Subnet
 *     properties:
 *       name: ${prefix}-hosts-subnet
 *       resourceGroupName: ${exampleResourceGroup.name}
 *       virtualNetworkName: ${exampleVirtualNetwork.name}
 *       addressPrefixes:
 *         - 10.6.1.0/24
 *   examplePlacementGroup:
 *     type: azure:proximity:PlacementGroup
 *     name: example
 *     properties:
 *       name: ${prefix}-ppg
 *       location: ${exampleResourceGroup.location}
 *       resourceGroupName: ${exampleResourceGroup.name}
 *   exampleAvailabilitySet:
 *     type: azure:compute:AvailabilitySet
 *     name: example
 *     properties:
 *       name: ${prefix}-avset
 *       location: ${exampleResourceGroup.location}
 *       resourceGroupName: ${exampleResourceGroup.name}
 *       proximityPlacementGroupId: ${examplePlacementGroup.id}
 *   exampleNetworkInterface:
 *     type: azure:network:NetworkInterface
 *     name: example
 *     properties:
 *       name: ${prefix}-nic
 *       resourceGroupName: ${exampleResourceGroup.name}
 *       location: ${exampleResourceGroup.location}
 *       ipConfigurations:
 *         - name: internal
 *           subnetId: ${example1.id}
 *           privateIpAddressAllocation: Dynamic
 *   exampleLinuxVirtualMachine:
 *     type: azure:compute:LinuxVirtualMachine
 *     name: example
 *     properties:
 *       name: ${prefix}-vm
 *       resourceGroupName: ${exampleResourceGroup.name}
 *       location: ${exampleResourceGroup.location}
 *       size: Standard_M8ms
 *       adminUsername: ${adminUsername}
 *       adminPassword: ${adminPassword}
 *       disablePasswordAuthentication: false
 *       proximityPlacementGroupId: ${examplePlacementGroup.id}
 *       availabilitySetId: ${exampleAvailabilitySet.id}
 *       networkInterfaceIds:
 *         - ${exampleNetworkInterface.id}
 *       sourceImageReference:
 *         publisher: Canonical
 *         offer: 0001-com-ubuntu-server-jammy
 *         sku: 22_04-lts
 *         version: latest
 *       osDisk:
 *         storageAccountType: Standard_LRS
 *         caching: ReadWrite
 *   exampleAccount:
 *     type: azure:netapp:Account
 *     name: example
 *     properties:
 *       name: ${prefix}-netapp-account
 *       location: ${exampleResourceGroup.location}
 *       resourceGroupName: ${exampleResourceGroup.name}
 *     options:
 *       dependson:
 *         - ${exampleSubnet}
 *         - ${example1}
 *   examplePool:
 *     type: azure:netapp:Pool
 *     name: example
 *     properties:
 *       name: ${prefix}-netapp-pool
 *       location: ${exampleResourceGroup.location}
 *       resourceGroupName: ${exampleResourceGroup.name}
 *       accountName: ${exampleAccount.name}
 *       serviceLevel: Standard
 *       sizeInTb: 8
 *       qosType: Manual
 *   exampleVolumeGroupSapHana:
 *     type: azure:netapp:VolumeGroupSapHana
 *     name: example
 *     properties:
 *       name: ${prefix}-netapp-volumegroup
 *       location: ${exampleResourceGroup.location}
 *       resourceGroupName: ${exampleResourceGroup.name}
 *       accountName: ${exampleAccount.name}
 *       groupDescription: Test volume group
 *       applicationIdentifier: TST
 *       volumes:
 *         - name: ${prefix}-netapp-volume-1
 *           volumePath: my-unique-file-path-1
 *           serviceLevel: Standard
 *           capacityPoolId: ${examplePool.id}
 *           subnetId: ${exampleSubnet.id}
 *           proximityPlacementGroupId: ${examplePlacementGroup.id}
 *           volumeSpecName: data
 *           storageQuotaInGb: 1024
 *           throughputInMibps: 24
 *           protocols: NFSv4.1
 *           securityStyle: unix
 *           snapshotDirectoryVisible: false
 *           exportPolicyRules:
 *             - ruleIndex: 1
 *               allowedClients: 0.0.0.0/0
 *               nfsv3Enabled: false
 *               nfsv41Enabled: true
 *               unixReadOnly: false
 *               unixReadWrite: true
 *               rootAccessEnabled: false
 *           tags:
 *             foo: bar
 *         - name: ${prefix}-netapp-volume-2
 *           volumePath: my-unique-file-path-2
 *           serviceLevel: Standard
 *           capacityPoolId: ${examplePool.id}
 *           subnetId: ${exampleSubnet.id}
 *           proximityPlacementGroupId: ${examplePlacementGroup.id}
 *           volumeSpecName: log
 *           storageQuotaInGb: 1024
 *           throughputInMibps: 24
 *           protocols: NFSv4.1
 *           securityStyle: unix
 *           snapshotDirectoryVisible: false
 *           exportPolicyRules:
 *             - ruleIndex: 1
 *               allowedClients: 0.0.0.0/0
 *               nfsv3Enabled: false
 *               nfsv41Enabled: true
 *               unixReadOnly: false
 *               unixReadWrite: true
 *               rootAccessEnabled: false
 *           tags:
 *             foo: bar
 *         - name: ${prefix}-netapp-volume-3
 *           volumePath: my-unique-file-path-3
 *           serviceLevel: Standard
 *           capacityPoolId: ${examplePool.id}
 *           subnetId: ${exampleSubnet.id}
 *           proximityPlacementGroupId: ${examplePlacementGroup.id}
 *           volumeSpecName: shared
 *           storageQuotaInGb: 1024
 *           throughputInMibps: 24
 *           protocols: NFSv4.1
 *           securityStyle: unix
 *           snapshotDirectoryVisible: false
 *           exportPolicyRules:
 *             - ruleIndex: 1
 *               allowedClients: 0.0.0.0/0
 *               nfsv3Enabled: false
 *               nfsv41Enabled: true
 *               unixReadOnly: false
 *               unixReadWrite: true
 *               rootAccessEnabled: false
 *     options:
 *       dependson:
 *         - ${exampleLinuxVirtualMachine}
 *         - ${examplePlacementGroup}
 * variables:
 *   adminUsername: exampleadmin
 *   adminPassword: ${example.result}
 * ```
 * 
 * ## Import
 * Application Volume Groups can be imported using the `resource id`, e.g.
 * ```sh
 * $ pulumi import azure:netapp/volumeGroupSapHana:VolumeGroupSapHana example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/mytest-rg/providers/Microsoft.NetApp/netAppAccounts/netapp-account-test/volumeGroups/netapp-volumegroup-test
 * ```
 * */*/*/*/*/*/
 */
public class VolumeGroupSapHana internal constructor(
    override val javaResource: com.pulumi.azure.netapp.VolumeGroupSapHana,
) : KotlinCustomResource(javaResource, VolumeGroupSapHanaMapper) {
    /**
     * Name of the account where the application volume group belong to. Changing this forces a new Application Volume Group to be created and data will be lost.
     */
    public val accountName: Output
        get() = javaResource.accountName().applyValue({ args0 -> args0 })

    /**
     * The SAP System ID, maximum 3 characters, e.g. `SH9`. Changing this forces a new Application Volume Group to be created and data will be lost.
     */
    public val applicationIdentifier: Output
        get() = javaResource.applicationIdentifier().applyValue({ args0 -> args0 })

    /**
     * Volume group description. Changing this forces a new Application Volume Group to be created and data will be lost.
     */
    public val groupDescription: Output
        get() = javaResource.groupDescription().applyValue({ args0 -> args0 })

    /**
     * The Azure Region where the Application Volume Group should exist. Changing this forces a new Application Volume Group to be created and data will be lost.
     */
    public val location: Output
        get() = javaResource.location().applyValue({ args0 -> args0 })

    /**
     * The name which should be used for this Application Volume Group. Changing this forces a new Application Volume Group to be created and data will be lost.
     */
    public val name: Output
        get() = javaResource.name().applyValue({ args0 -> args0 })

    /**
     * The name of the Resource Group where the Application Volume Group should exist. Changing this forces a new Application Volume Group to be created and data will be lost.
     */
    public val resourceGroupName: Output
        get() = javaResource.resourceGroupName().applyValue({ args0 -> args0 })

    /**
     * One or more `volume` blocks as defined below.
     */
    public val volumes: Output>
        get() = javaResource.volumes().applyValue({ args0 ->
            args0.map({ args0 ->
                args0.let({ args0 ->
                    toKotlin(args0)
                })
            })
        })
}

public object VolumeGroupSapHanaMapper : ResourceMapper {
    override fun supportsMappingOfType(javaResource: Resource): Boolean =
        com.pulumi.azure.netapp.VolumeGroupSapHana::class == javaResource::class

    override fun map(javaResource: Resource): VolumeGroupSapHana = VolumeGroupSapHana(
        javaResource as
            com.pulumi.azure.netapp.VolumeGroupSapHana,
    )
}

/**
 * @see [VolumeGroupSapHana].
 * @param name The _unique_ name of the resulting resource.
 * @param block Builder for [VolumeGroupSapHana].
 */
public suspend fun volumeGroupSapHana(
    name: String,
    block: suspend VolumeGroupSapHanaResourceBuilder.() -> Unit,
): VolumeGroupSapHana {
    val builder = VolumeGroupSapHanaResourceBuilder()
    builder.name(name)
    block(builder)
    return builder.build()
}

/**
 * @see [VolumeGroupSapHana].
 * @param name The _unique_ name of the resulting resource.
 */
public fun volumeGroupSapHana(name: String): VolumeGroupSapHana {
    val builder = VolumeGroupSapHanaResourceBuilder()
    builder.name(name)
    return builder.build()
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy