We recommend using Azure Native.
azure.netapp.VolumeGroupSapHana
Explore with Pulumi AI
Example Usage
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.88.0.0/16"],
});
const exampleSubnet = new azure.network.Subnet("example", {
    name: `${prefix}-delegated-subnet`,
    resourceGroupName: exampleResourceGroup.name,
    virtualNetworkName: exampleVirtualNetwork.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 example1 = new azure.network.Subnet("example1", {
    name: `${prefix}-hosts-subnet`,
    resourceGroupName: exampleResourceGroup.name,
    virtualNetworkName: exampleVirtualNetwork.name,
    addressPrefixes: ["10.88.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,
    ],
});
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.88.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.88.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.88.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,
        ]))
package main
import (
	"fmt"
	"github.com/pulumi/pulumi-azure/sdk/v6/go/azure/compute"
	"github.com/pulumi/pulumi-azure/sdk/v6/go/azure/core"
	"github.com/pulumi/pulumi-azure/sdk/v6/go/azure/netapp"
	"github.com/pulumi/pulumi-azure/sdk/v6/go/azure/network"
	"github.com/pulumi/pulumi-azure/sdk/v6/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.88.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.88.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.88.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
	})
}
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.88.0.0/16",
        },
    });
    var exampleSubnet = new Azure.Network.Subnet("example", new()
    {
        Name = $"{prefix}-delegated-subnet",
        ResourceGroupName = exampleResourceGroup.Name,
        VirtualNetworkName = exampleVirtualNetwork.Name,
        AddressPrefixes = new[]
        {
            "10.88.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.88.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,
        },
    });
});
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.88.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.88.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.88.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());
    }
}
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.88.0.0/16
  exampleSubnet:
    type: azure:network:Subnet
    name: example
    properties:
      name: ${prefix}-delegated-subnet
      resourceGroupName: ${exampleResourceGroup.name}
      virtualNetworkName: ${exampleVirtualNetwork.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
  example1:
    type: azure:network:Subnet
    properties:
      name: ${prefix}-hosts-subnet
      resourceGroupName: ${exampleResourceGroup.name}
      virtualNetworkName: ${exampleVirtualNetwork.name}
      addressPrefixes:
        - 10.88.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}
Create VolumeGroupSapHana Resource
Resources are created with functions called constructors. To learn more about declaring and configuring resources, see Resources.
Constructor syntax
new VolumeGroupSapHana(name: string, args: VolumeGroupSapHanaArgs, opts?: CustomResourceOptions);@overload
def VolumeGroupSapHana(resource_name: str,
                       args: VolumeGroupSapHanaArgs,
                       opts: Optional[ResourceOptions] = None)
@overload
def VolumeGroupSapHana(resource_name: str,
                       opts: Optional[ResourceOptions] = None,
                       account_name: Optional[str] = None,
                       application_identifier: Optional[str] = None,
                       group_description: Optional[str] = None,
                       resource_group_name: Optional[str] = None,
                       volumes: Optional[Sequence[VolumeGroupSapHanaVolumeArgs]] = None,
                       location: Optional[str] = None,
                       name: Optional[str] = None)func NewVolumeGroupSapHana(ctx *Context, name string, args VolumeGroupSapHanaArgs, opts ...ResourceOption) (*VolumeGroupSapHana, error)public VolumeGroupSapHana(string name, VolumeGroupSapHanaArgs args, CustomResourceOptions? opts = null)
public VolumeGroupSapHana(String name, VolumeGroupSapHanaArgs args)
public VolumeGroupSapHana(String name, VolumeGroupSapHanaArgs args, CustomResourceOptions options)
type: azure:netapp:VolumeGroupSapHana
properties: # The arguments to resource properties.
options: # Bag of options to control resource's behavior.
Parameters
- name string
- The unique name of the resource.
- args VolumeGroupSapHanaArgs
- The arguments to resource properties.
- opts CustomResourceOptions
- Bag of options to control resource's behavior.
- resource_name str
- The unique name of the resource.
- args VolumeGroupSapHanaArgs
- The arguments to resource properties.
- opts ResourceOptions
- Bag of options to control resource's behavior.
- ctx Context
- Context object for the current deployment.
- name string
- The unique name of the resource.
- args VolumeGroupSapHanaArgs
- The arguments to resource properties.
- opts ResourceOption
- Bag of options to control resource's behavior.
- name string
- The unique name of the resource.
- args VolumeGroupSapHanaArgs
- The arguments to resource properties.
- opts CustomResourceOptions
- Bag of options to control resource's behavior.
- name String
- The unique name of the resource.
- args VolumeGroupSapHanaArgs
- The arguments to resource properties.
- options CustomResourceOptions
- Bag of options to control resource's behavior.
Constructor example
The following reference example uses placeholder values for all input properties.
var volumeGroupSapHanaResource = new Azure.NetApp.VolumeGroupSapHana("volumeGroupSapHanaResource", new()
{
    AccountName = "string",
    ApplicationIdentifier = "string",
    GroupDescription = "string",
    ResourceGroupName = "string",
    Volumes = new[]
    {
        new Azure.NetApp.Inputs.VolumeGroupSapHanaVolumeArgs
        {
            StorageQuotaInGb = 0,
            VolumeSpecName = "string",
            VolumePath = "string",
            ExportPolicyRules = new[]
            {
                new Azure.NetApp.Inputs.VolumeGroupSapHanaVolumeExportPolicyRuleArgs
                {
                    AllowedClients = "string",
                    Nfsv3Enabled = false,
                    Nfsv41Enabled = false,
                    RuleIndex = 0,
                    RootAccessEnabled = false,
                    UnixReadOnly = false,
                    UnixReadWrite = false,
                },
            },
            CapacityPoolId = "string",
            ThroughputInMibps = 0,
            Name = "string",
            Protocols = "string",
            SubnetId = "string",
            SecurityStyle = "string",
            ServiceLevel = "string",
            SnapshotDirectoryVisible = false,
            Id = "string",
            ProximityPlacementGroupId = "string",
            Tags = 
            {
                { "string", "string" },
            },
            MountIpAddresses = new[]
            {
                "string",
            },
            DataProtectionSnapshotPolicy = new Azure.NetApp.Inputs.VolumeGroupSapHanaVolumeDataProtectionSnapshotPolicyArgs
            {
                SnapshotPolicyId = "string",
            },
            DataProtectionReplication = new Azure.NetApp.Inputs.VolumeGroupSapHanaVolumeDataProtectionReplicationArgs
            {
                RemoteVolumeLocation = "string",
                RemoteVolumeResourceId = "string",
                ReplicationFrequency = "string",
                EndpointType = "string",
            },
        },
    },
    Location = "string",
    Name = "string",
});
example, err := netapp.NewVolumeGroupSapHana(ctx, "volumeGroupSapHanaResource", &netapp.VolumeGroupSapHanaArgs{
	AccountName:           pulumi.String("string"),
	ApplicationIdentifier: pulumi.String("string"),
	GroupDescription:      pulumi.String("string"),
	ResourceGroupName:     pulumi.String("string"),
	Volumes: netapp.VolumeGroupSapHanaVolumeArray{
		&netapp.VolumeGroupSapHanaVolumeArgs{
			StorageQuotaInGb: pulumi.Int(0),
			VolumeSpecName:   pulumi.String("string"),
			VolumePath:       pulumi.String("string"),
			ExportPolicyRules: netapp.VolumeGroupSapHanaVolumeExportPolicyRuleArray{
				&netapp.VolumeGroupSapHanaVolumeExportPolicyRuleArgs{
					AllowedClients:    pulumi.String("string"),
					Nfsv3Enabled:      pulumi.Bool(false),
					Nfsv41Enabled:     pulumi.Bool(false),
					RuleIndex:         pulumi.Int(0),
					RootAccessEnabled: pulumi.Bool(false),
					UnixReadOnly:      pulumi.Bool(false),
					UnixReadWrite:     pulumi.Bool(false),
				},
			},
			CapacityPoolId:            pulumi.String("string"),
			ThroughputInMibps:         pulumi.Float64(0),
			Name:                      pulumi.String("string"),
			Protocols:                 pulumi.String("string"),
			SubnetId:                  pulumi.String("string"),
			SecurityStyle:             pulumi.String("string"),
			ServiceLevel:              pulumi.String("string"),
			SnapshotDirectoryVisible:  pulumi.Bool(false),
			Id:                        pulumi.String("string"),
			ProximityPlacementGroupId: pulumi.String("string"),
			Tags: pulumi.StringMap{
				"string": pulumi.String("string"),
			},
			MountIpAddresses: pulumi.StringArray{
				pulumi.String("string"),
			},
			DataProtectionSnapshotPolicy: &netapp.VolumeGroupSapHanaVolumeDataProtectionSnapshotPolicyArgs{
				SnapshotPolicyId: pulumi.String("string"),
			},
			DataProtectionReplication: &netapp.VolumeGroupSapHanaVolumeDataProtectionReplicationArgs{
				RemoteVolumeLocation:   pulumi.String("string"),
				RemoteVolumeResourceId: pulumi.String("string"),
				ReplicationFrequency:   pulumi.String("string"),
				EndpointType:           pulumi.String("string"),
			},
		},
	},
	Location: pulumi.String("string"),
	Name:     pulumi.String("string"),
})
var volumeGroupSapHanaResource = new VolumeGroupSapHana("volumeGroupSapHanaResource", VolumeGroupSapHanaArgs.builder()
    .accountName("string")
    .applicationIdentifier("string")
    .groupDescription("string")
    .resourceGroupName("string")
    .volumes(VolumeGroupSapHanaVolumeArgs.builder()
        .storageQuotaInGb(0)
        .volumeSpecName("string")
        .volumePath("string")
        .exportPolicyRules(VolumeGroupSapHanaVolumeExportPolicyRuleArgs.builder()
            .allowedClients("string")
            .nfsv3Enabled(false)
            .nfsv41Enabled(false)
            .ruleIndex(0)
            .rootAccessEnabled(false)
            .unixReadOnly(false)
            .unixReadWrite(false)
            .build())
        .capacityPoolId("string")
        .throughputInMibps(0)
        .name("string")
        .protocols("string")
        .subnetId("string")
        .securityStyle("string")
        .serviceLevel("string")
        .snapshotDirectoryVisible(false)
        .id("string")
        .proximityPlacementGroupId("string")
        .tags(Map.of("string", "string"))
        .mountIpAddresses("string")
        .dataProtectionSnapshotPolicy(VolumeGroupSapHanaVolumeDataProtectionSnapshotPolicyArgs.builder()
            .snapshotPolicyId("string")
            .build())
        .dataProtectionReplication(VolumeGroupSapHanaVolumeDataProtectionReplicationArgs.builder()
            .remoteVolumeLocation("string")
            .remoteVolumeResourceId("string")
            .replicationFrequency("string")
            .endpointType("string")
            .build())
        .build())
    .location("string")
    .name("string")
    .build());
volume_group_sap_hana_resource = azure.netapp.VolumeGroupSapHana("volumeGroupSapHanaResource",
    account_name="string",
    application_identifier="string",
    group_description="string",
    resource_group_name="string",
    volumes=[{
        "storage_quota_in_gb": 0,
        "volume_spec_name": "string",
        "volume_path": "string",
        "export_policy_rules": [{
            "allowed_clients": "string",
            "nfsv3_enabled": False,
            "nfsv41_enabled": False,
            "rule_index": 0,
            "root_access_enabled": False,
            "unix_read_only": False,
            "unix_read_write": False,
        }],
        "capacity_pool_id": "string",
        "throughput_in_mibps": 0,
        "name": "string",
        "protocols": "string",
        "subnet_id": "string",
        "security_style": "string",
        "service_level": "string",
        "snapshot_directory_visible": False,
        "id": "string",
        "proximity_placement_group_id": "string",
        "tags": {
            "string": "string",
        },
        "mount_ip_addresses": ["string"],
        "data_protection_snapshot_policy": {
            "snapshot_policy_id": "string",
        },
        "data_protection_replication": {
            "remote_volume_location": "string",
            "remote_volume_resource_id": "string",
            "replication_frequency": "string",
            "endpoint_type": "string",
        },
    }],
    location="string",
    name="string")
const volumeGroupSapHanaResource = new azure.netapp.VolumeGroupSapHana("volumeGroupSapHanaResource", {
    accountName: "string",
    applicationIdentifier: "string",
    groupDescription: "string",
    resourceGroupName: "string",
    volumes: [{
        storageQuotaInGb: 0,
        volumeSpecName: "string",
        volumePath: "string",
        exportPolicyRules: [{
            allowedClients: "string",
            nfsv3Enabled: false,
            nfsv41Enabled: false,
            ruleIndex: 0,
            rootAccessEnabled: false,
            unixReadOnly: false,
            unixReadWrite: false,
        }],
        capacityPoolId: "string",
        throughputInMibps: 0,
        name: "string",
        protocols: "string",
        subnetId: "string",
        securityStyle: "string",
        serviceLevel: "string",
        snapshotDirectoryVisible: false,
        id: "string",
        proximityPlacementGroupId: "string",
        tags: {
            string: "string",
        },
        mountIpAddresses: ["string"],
        dataProtectionSnapshotPolicy: {
            snapshotPolicyId: "string",
        },
        dataProtectionReplication: {
            remoteVolumeLocation: "string",
            remoteVolumeResourceId: "string",
            replicationFrequency: "string",
            endpointType: "string",
        },
    }],
    location: "string",
    name: "string",
});
type: azure:netapp:VolumeGroupSapHana
properties:
    accountName: string
    applicationIdentifier: string
    groupDescription: string
    location: string
    name: string
    resourceGroupName: string
    volumes:
        - capacityPoolId: string
          dataProtectionReplication:
            endpointType: string
            remoteVolumeLocation: string
            remoteVolumeResourceId: string
            replicationFrequency: string
          dataProtectionSnapshotPolicy:
            snapshotPolicyId: string
          exportPolicyRules:
            - allowedClients: string
              nfsv3Enabled: false
              nfsv41Enabled: false
              rootAccessEnabled: false
              ruleIndex: 0
              unixReadOnly: false
              unixReadWrite: false
          id: string
          mountIpAddresses:
            - string
          name: string
          protocols: string
          proximityPlacementGroupId: string
          securityStyle: string
          serviceLevel: string
          snapshotDirectoryVisible: false
          storageQuotaInGb: 0
          subnetId: string
          tags:
            string: string
          throughputInMibps: 0
          volumePath: string
          volumeSpecName: string
VolumeGroupSapHana Resource Properties
To learn more about resource properties and how to use them, see Inputs and Outputs in the Architecture and Concepts docs.
Inputs
In Python, inputs that are objects can be passed either as argument classes or as dictionary literals.
The VolumeGroupSapHana resource accepts the following input properties:
- AccountName string
- 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.
- ApplicationIdentifier string
- 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.
- GroupDescription string
- Volume group description. Changing this forces a new Application Volume Group to be created and data will be lost.
- ResourceGroup stringName 
- 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.
- Volumes
List<VolumeGroup Sap Hana Volume> 
- One or more volumeblocks as defined below.
- Location string
- 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.
- Name string
- 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.
- AccountName string
- 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.
- ApplicationIdentifier string
- 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.
- GroupDescription string
- Volume group description. Changing this forces a new Application Volume Group to be created and data will be lost.
- ResourceGroup stringName 
- 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.
- Volumes
[]VolumeGroup Sap Hana Volume Args 
- One or more volumeblocks as defined below.
- Location string
- 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.
- Name string
- 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.
- accountName String
- 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.
- applicationIdentifier String
- 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.
- groupDescription String
- Volume group description. Changing this forces a new Application Volume Group to be created and data will be lost.
- resourceGroup StringName 
- 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.
- volumes
List<VolumeGroup Sap Hana Volume> 
- One or more volumeblocks as defined below.
- location String
- 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.
- name String
- 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.
- accountName string
- 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.
- applicationIdentifier string
- 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.
- groupDescription string
- Volume group description. Changing this forces a new Application Volume Group to be created and data will be lost.
- resourceGroup stringName 
- 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.
- volumes
VolumeGroup Sap Hana Volume[] 
- One or more volumeblocks as defined below.
- location string
- 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.
- name string
- 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.
- account_name str
- 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.
- application_identifier str
- 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.
- group_description str
- Volume group description. Changing this forces a new Application Volume Group to be created and data will be lost.
- resource_group_ strname 
- 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.
- volumes
Sequence[VolumeGroup Sap Hana Volume Args] 
- One or more volumeblocks as defined below.
- location str
- 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.
- name str
- 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.
- accountName String
- 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.
- applicationIdentifier String
- 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.
- groupDescription String
- Volume group description. Changing this forces a new Application Volume Group to be created and data will be lost.
- resourceGroup StringName 
- 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.
- volumes List<Property Map>
- One or more volumeblocks as defined below.
- location String
- 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.
- name String
- 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.
Outputs
All input properties are implicitly available as output properties. Additionally, the VolumeGroupSapHana resource produces the following output properties:
- Id string
- The provider-assigned unique ID for this managed resource.
- Id string
- The provider-assigned unique ID for this managed resource.
- id String
- The provider-assigned unique ID for this managed resource.
- id string
- The provider-assigned unique ID for this managed resource.
- id str
- The provider-assigned unique ID for this managed resource.
- id String
- The provider-assigned unique ID for this managed resource.
Look up Existing VolumeGroupSapHana Resource
Get an existing VolumeGroupSapHana resource’s state with the given name, ID, and optional extra properties used to qualify the lookup.
public static get(name: string, id: Input<ID>, state?: VolumeGroupSapHanaState, opts?: CustomResourceOptions): VolumeGroupSapHana@staticmethod
def get(resource_name: str,
        id: str,
        opts: Optional[ResourceOptions] = None,
        account_name: Optional[str] = None,
        application_identifier: Optional[str] = None,
        group_description: Optional[str] = None,
        location: Optional[str] = None,
        name: Optional[str] = None,
        resource_group_name: Optional[str] = None,
        volumes: Optional[Sequence[VolumeGroupSapHanaVolumeArgs]] = None) -> VolumeGroupSapHanafunc GetVolumeGroupSapHana(ctx *Context, name string, id IDInput, state *VolumeGroupSapHanaState, opts ...ResourceOption) (*VolumeGroupSapHana, error)public static VolumeGroupSapHana Get(string name, Input<string> id, VolumeGroupSapHanaState? state, CustomResourceOptions? opts = null)public static VolumeGroupSapHana get(String name, Output<String> id, VolumeGroupSapHanaState state, CustomResourceOptions options)resources:  _:    type: azure:netapp:VolumeGroupSapHana    get:      id: ${id}- name
- The unique name of the resulting resource.
- id
- The unique provider ID of the resource to lookup.
- state
- Any extra arguments used during the lookup.
- opts
- A bag of options that control this resource's behavior.
- resource_name
- The unique name of the resulting resource.
- id
- The unique provider ID of the resource to lookup.
- name
- The unique name of the resulting resource.
- id
- The unique provider ID of the resource to lookup.
- state
- Any extra arguments used during the lookup.
- opts
- A bag of options that control this resource's behavior.
- name
- The unique name of the resulting resource.
- id
- The unique provider ID of the resource to lookup.
- state
- Any extra arguments used during the lookup.
- opts
- A bag of options that control this resource's behavior.
- name
- The unique name of the resulting resource.
- id
- The unique provider ID of the resource to lookup.
- state
- Any extra arguments used during the lookup.
- opts
- A bag of options that control this resource's behavior.
- AccountName string
- 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.
- ApplicationIdentifier string
- 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.
- GroupDescription string
- Volume group description. Changing this forces a new Application Volume Group to be created and data will be lost.
- Location string
- 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.
- Name string
- 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.
- ResourceGroup stringName 
- 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.
- Volumes
List<VolumeGroup Sap Hana Volume> 
- One or more volumeblocks as defined below.
- AccountName string
- 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.
- ApplicationIdentifier string
- 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.
- GroupDescription string
- Volume group description. Changing this forces a new Application Volume Group to be created and data will be lost.
- Location string
- 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.
- Name string
- 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.
- ResourceGroup stringName 
- 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.
- Volumes
[]VolumeGroup Sap Hana Volume Args 
- One or more volumeblocks as defined below.
- accountName String
- 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.
- applicationIdentifier String
- 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.
- groupDescription String
- Volume group description. Changing this forces a new Application Volume Group to be created and data will be lost.
- location String
- 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.
- name String
- 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.
- resourceGroup StringName 
- 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.
- volumes
List<VolumeGroup Sap Hana Volume> 
- One or more volumeblocks as defined below.
- accountName string
- 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.
- applicationIdentifier string
- 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.
- groupDescription string
- Volume group description. Changing this forces a new Application Volume Group to be created and data will be lost.
- location string
- 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.
- name string
- 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.
- resourceGroup stringName 
- 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.
- volumes
VolumeGroup Sap Hana Volume[] 
- One or more volumeblocks as defined below.
- account_name str
- 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.
- application_identifier str
- 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.
- group_description str
- Volume group description. Changing this forces a new Application Volume Group to be created and data will be lost.
- location str
- 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.
- name str
- 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.
- resource_group_ strname 
- 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.
- volumes
Sequence[VolumeGroup Sap Hana Volume Args] 
- One or more volumeblocks as defined below.
- accountName String
- 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.
- applicationIdentifier String
- 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.
- groupDescription String
- Volume group description. Changing this forces a new Application Volume Group to be created and data will be lost.
- location String
- 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.
- name String
- 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.
- resourceGroup StringName 
- 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.
- volumes List<Property Map>
- One or more volumeblocks as defined below.
Supporting Types
VolumeGroupSapHanaVolume, VolumeGroupSapHanaVolumeArgs          
- CapacityPool stringId 
- The ID of the Capacity Pool. Changing this forces a new Application Volume Group to be created and data will be lost.
- ExportPolicy List<VolumeRules Group Sap Hana Volume Export Policy Rule> 
- One or more export_policy_ruleblocks as defined below.
- Name string
- The name which should be used for this volume. Changing this forces a new Application Volume Group to be created and data will be lost.
- Protocols string
- The target volume protocol expressed as a list. Changing this forces a new Application Volume Group to be created and data will be lost. Supported values for Application Volume Group include NFSv3orNFSv4.1, multi-protocol is not supported and there are certain rules on which protocol is supporteed per volume spec, please check Configure application volume groups for the SAP HANA REST API document for details.
- SecurityStyle string
- Volume security style. Possible values are ntfsandunix. Changing this forces a new Application Volume Group to be created and data will be lost.
- ServiceLevel string
- Volume security style. Possible values are Premium,StandardandUltra. Changing this forces a new Application Volume Group to be created and data will be lost.
- SnapshotDirectory boolVisible 
- Specifies whether the .snapshot (NFS clients) path of a volume is visible. Changing this forces a new Application Volume Group to be created and data will be lost.
- StorageQuota intIn Gb 
- The maximum Storage Quota allowed for a file system in Gigabytes.
- SubnetId string
- The ID of the Subnet the NetApp Volume resides in, which must have the Microsoft.NetApp/volumesdelegation. Changing this forces a new Application Volume Group to be created and data will be lost.
- ThroughputIn doubleMibps 
- Throughput of this volume in Mibps.
- VolumePath string
- A unique file path for the volume. Changing this forces a new Application Volume Group to be created and data will be lost.
- VolumeSpec stringName 
- Volume specification name. Possible values are data,log,shared,data-backupandlog-backup. Changing this forces a new Application Volume Group to be created and data will be lost.
- DataProtection VolumeReplication Group Sap Hana Volume Data Protection Replication 
- A data_protection_replicationblock as defined below. Changing this forces a new Application Volume Group to be created and data will be lost.
- DataProtection VolumeSnapshot Policy Group Sap Hana Volume Data Protection Snapshot Policy 
- A data_protection_snapshot_policyblock as defined below.
- Id string
- The ID of the Application Volume Group.
- MountIp List<string>Addresses 
- ProximityPlacement stringGroup Id 
- The ID of the proximity placement group. Changing this forces a new Application Volume Group to be created and data will be lost. For SAP-HANA application, it is required to have PPG enabled so Azure NetApp Files can pin the volumes next to your compute resources, please check Requirements and considerations for application volume group for SAP HANA for details and other requirements.
- Dictionary<string, string>
- A mapping of tags which should be assigned to the Application Volume Group.
- CapacityPool stringId 
- The ID of the Capacity Pool. Changing this forces a new Application Volume Group to be created and data will be lost.
- ExportPolicy []VolumeRules Group Sap Hana Volume Export Policy Rule 
- One or more export_policy_ruleblocks as defined below.
- Name string
- The name which should be used for this volume. Changing this forces a new Application Volume Group to be created and data will be lost.
- Protocols string
- The target volume protocol expressed as a list. Changing this forces a new Application Volume Group to be created and data will be lost. Supported values for Application Volume Group include NFSv3orNFSv4.1, multi-protocol is not supported and there are certain rules on which protocol is supporteed per volume spec, please check Configure application volume groups for the SAP HANA REST API document for details.
- SecurityStyle string
- Volume security style. Possible values are ntfsandunix. Changing this forces a new Application Volume Group to be created and data will be lost.
- ServiceLevel string
- Volume security style. Possible values are Premium,StandardandUltra. Changing this forces a new Application Volume Group to be created and data will be lost.
- SnapshotDirectory boolVisible 
- Specifies whether the .snapshot (NFS clients) path of a volume is visible. Changing this forces a new Application Volume Group to be created and data will be lost.
- StorageQuota intIn Gb 
- The maximum Storage Quota allowed for a file system in Gigabytes.
- SubnetId string
- The ID of the Subnet the NetApp Volume resides in, which must have the Microsoft.NetApp/volumesdelegation. Changing this forces a new Application Volume Group to be created and data will be lost.
- ThroughputIn float64Mibps 
- Throughput of this volume in Mibps.
- VolumePath string
- A unique file path for the volume. Changing this forces a new Application Volume Group to be created and data will be lost.
- VolumeSpec stringName 
- Volume specification name. Possible values are data,log,shared,data-backupandlog-backup. Changing this forces a new Application Volume Group to be created and data will be lost.
- DataProtection VolumeReplication Group Sap Hana Volume Data Protection Replication 
- A data_protection_replicationblock as defined below. Changing this forces a new Application Volume Group to be created and data will be lost.
- DataProtection VolumeSnapshot Policy Group Sap Hana Volume Data Protection Snapshot Policy 
- A data_protection_snapshot_policyblock as defined below.
- Id string
- The ID of the Application Volume Group.
- MountIp []stringAddresses 
- ProximityPlacement stringGroup Id 
- The ID of the proximity placement group. Changing this forces a new Application Volume Group to be created and data will be lost. For SAP-HANA application, it is required to have PPG enabled so Azure NetApp Files can pin the volumes next to your compute resources, please check Requirements and considerations for application volume group for SAP HANA for details and other requirements.
- map[string]string
- A mapping of tags which should be assigned to the Application Volume Group.
- capacityPool StringId 
- The ID of the Capacity Pool. Changing this forces a new Application Volume Group to be created and data will be lost.
- exportPolicy List<VolumeRules Group Sap Hana Volume Export Policy Rule> 
- One or more export_policy_ruleblocks as defined below.
- name String
- The name which should be used for this volume. Changing this forces a new Application Volume Group to be created and data will be lost.
- protocols String
- The target volume protocol expressed as a list. Changing this forces a new Application Volume Group to be created and data will be lost. Supported values for Application Volume Group include NFSv3orNFSv4.1, multi-protocol is not supported and there are certain rules on which protocol is supporteed per volume spec, please check Configure application volume groups for the SAP HANA REST API document for details.
- securityStyle String
- Volume security style. Possible values are ntfsandunix. Changing this forces a new Application Volume Group to be created and data will be lost.
- serviceLevel String
- Volume security style. Possible values are Premium,StandardandUltra. Changing this forces a new Application Volume Group to be created and data will be lost.
- snapshotDirectory BooleanVisible 
- Specifies whether the .snapshot (NFS clients) path of a volume is visible. Changing this forces a new Application Volume Group to be created and data will be lost.
- storageQuota IntegerIn Gb 
- The maximum Storage Quota allowed for a file system in Gigabytes.
- subnetId String
- The ID of the Subnet the NetApp Volume resides in, which must have the Microsoft.NetApp/volumesdelegation. Changing this forces a new Application Volume Group to be created and data will be lost.
- throughputIn DoubleMibps 
- Throughput of this volume in Mibps.
- volumePath String
- A unique file path for the volume. Changing this forces a new Application Volume Group to be created and data will be lost.
- volumeSpec StringName 
- Volume specification name. Possible values are data,log,shared,data-backupandlog-backup. Changing this forces a new Application Volume Group to be created and data will be lost.
- dataProtection VolumeReplication Group Sap Hana Volume Data Protection Replication 
- A data_protection_replicationblock as defined below. Changing this forces a new Application Volume Group to be created and data will be lost.
- dataProtection VolumeSnapshot Policy Group Sap Hana Volume Data Protection Snapshot Policy 
- A data_protection_snapshot_policyblock as defined below.
- id String
- The ID of the Application Volume Group.
- mountIp List<String>Addresses 
- proximityPlacement StringGroup Id 
- The ID of the proximity placement group. Changing this forces a new Application Volume Group to be created and data will be lost. For SAP-HANA application, it is required to have PPG enabled so Azure NetApp Files can pin the volumes next to your compute resources, please check Requirements and considerations for application volume group for SAP HANA for details and other requirements.
- Map<String,String>
- A mapping of tags which should be assigned to the Application Volume Group.
- capacityPool stringId 
- The ID of the Capacity Pool. Changing this forces a new Application Volume Group to be created and data will be lost.
- exportPolicy VolumeRules Group Sap Hana Volume Export Policy Rule[] 
- One or more export_policy_ruleblocks as defined below.
- name string
- The name which should be used for this volume. Changing this forces a new Application Volume Group to be created and data will be lost.
- protocols string
- The target volume protocol expressed as a list. Changing this forces a new Application Volume Group to be created and data will be lost. Supported values for Application Volume Group include NFSv3orNFSv4.1, multi-protocol is not supported and there are certain rules on which protocol is supporteed per volume spec, please check Configure application volume groups for the SAP HANA REST API document for details.
- securityStyle string
- Volume security style. Possible values are ntfsandunix. Changing this forces a new Application Volume Group to be created and data will be lost.
- serviceLevel string
- Volume security style. Possible values are Premium,StandardandUltra. Changing this forces a new Application Volume Group to be created and data will be lost.
- snapshotDirectory booleanVisible 
- Specifies whether the .snapshot (NFS clients) path of a volume is visible. Changing this forces a new Application Volume Group to be created and data will be lost.
- storageQuota numberIn Gb 
- The maximum Storage Quota allowed for a file system in Gigabytes.
- subnetId string
- The ID of the Subnet the NetApp Volume resides in, which must have the Microsoft.NetApp/volumesdelegation. Changing this forces a new Application Volume Group to be created and data will be lost.
- throughputIn numberMibps 
- Throughput of this volume in Mibps.
- volumePath string
- A unique file path for the volume. Changing this forces a new Application Volume Group to be created and data will be lost.
- volumeSpec stringName 
- Volume specification name. Possible values are data,log,shared,data-backupandlog-backup. Changing this forces a new Application Volume Group to be created and data will be lost.
- dataProtection VolumeReplication Group Sap Hana Volume Data Protection Replication 
- A data_protection_replicationblock as defined below. Changing this forces a new Application Volume Group to be created and data will be lost.
- dataProtection VolumeSnapshot Policy Group Sap Hana Volume Data Protection Snapshot Policy 
- A data_protection_snapshot_policyblock as defined below.
- id string
- The ID of the Application Volume Group.
- mountIp string[]Addresses 
- proximityPlacement stringGroup Id 
- The ID of the proximity placement group. Changing this forces a new Application Volume Group to be created and data will be lost. For SAP-HANA application, it is required to have PPG enabled so Azure NetApp Files can pin the volumes next to your compute resources, please check Requirements and considerations for application volume group for SAP HANA for details and other requirements.
- {[key: string]: string}
- A mapping of tags which should be assigned to the Application Volume Group.
- capacity_pool_ strid 
- The ID of the Capacity Pool. Changing this forces a new Application Volume Group to be created and data will be lost.
- export_policy_ Sequence[Volumerules Group Sap Hana Volume Export Policy Rule] 
- One or more export_policy_ruleblocks as defined below.
- name str
- The name which should be used for this volume. Changing this forces a new Application Volume Group to be created and data will be lost.
- protocols str
- The target volume protocol expressed as a list. Changing this forces a new Application Volume Group to be created and data will be lost. Supported values for Application Volume Group include NFSv3orNFSv4.1, multi-protocol is not supported and there are certain rules on which protocol is supporteed per volume spec, please check Configure application volume groups for the SAP HANA REST API document for details.
- security_style str
- Volume security style. Possible values are ntfsandunix. Changing this forces a new Application Volume Group to be created and data will be lost.
- service_level str
- Volume security style. Possible values are Premium,StandardandUltra. Changing this forces a new Application Volume Group to be created and data will be lost.
- snapshot_directory_ boolvisible 
- Specifies whether the .snapshot (NFS clients) path of a volume is visible. Changing this forces a new Application Volume Group to be created and data will be lost.
- storage_quota_ intin_ gb 
- The maximum Storage Quota allowed for a file system in Gigabytes.
- subnet_id str
- The ID of the Subnet the NetApp Volume resides in, which must have the Microsoft.NetApp/volumesdelegation. Changing this forces a new Application Volume Group to be created and data will be lost.
- throughput_in_ floatmibps 
- Throughput of this volume in Mibps.
- volume_path str
- A unique file path for the volume. Changing this forces a new Application Volume Group to be created and data will be lost.
- volume_spec_ strname 
- Volume specification name. Possible values are data,log,shared,data-backupandlog-backup. Changing this forces a new Application Volume Group to be created and data will be lost.
- data_protection_ Volumereplication Group Sap Hana Volume Data Protection Replication 
- A data_protection_replicationblock as defined below. Changing this forces a new Application Volume Group to be created and data will be lost.
- data_protection_ Volumesnapshot_ policy Group Sap Hana Volume Data Protection Snapshot Policy 
- A data_protection_snapshot_policyblock as defined below.
- id str
- The ID of the Application Volume Group.
- mount_ip_ Sequence[str]addresses 
- proximity_placement_ strgroup_ id 
- The ID of the proximity placement group. Changing this forces a new Application Volume Group to be created and data will be lost. For SAP-HANA application, it is required to have PPG enabled so Azure NetApp Files can pin the volumes next to your compute resources, please check Requirements and considerations for application volume group for SAP HANA for details and other requirements.
- Mapping[str, str]
- A mapping of tags which should be assigned to the Application Volume Group.
- capacityPool StringId 
- The ID of the Capacity Pool. Changing this forces a new Application Volume Group to be created and data will be lost.
- exportPolicy List<Property Map>Rules 
- One or more export_policy_ruleblocks as defined below.
- name String
- The name which should be used for this volume. Changing this forces a new Application Volume Group to be created and data will be lost.
- protocols String
- The target volume protocol expressed as a list. Changing this forces a new Application Volume Group to be created and data will be lost. Supported values for Application Volume Group include NFSv3orNFSv4.1, multi-protocol is not supported and there are certain rules on which protocol is supporteed per volume spec, please check Configure application volume groups for the SAP HANA REST API document for details.
- securityStyle String
- Volume security style. Possible values are ntfsandunix. Changing this forces a new Application Volume Group to be created and data will be lost.
- serviceLevel String
- Volume security style. Possible values are Premium,StandardandUltra. Changing this forces a new Application Volume Group to be created and data will be lost.
- snapshotDirectory BooleanVisible 
- Specifies whether the .snapshot (NFS clients) path of a volume is visible. Changing this forces a new Application Volume Group to be created and data will be lost.
- storageQuota NumberIn Gb 
- The maximum Storage Quota allowed for a file system in Gigabytes.
- subnetId String
- The ID of the Subnet the NetApp Volume resides in, which must have the Microsoft.NetApp/volumesdelegation. Changing this forces a new Application Volume Group to be created and data will be lost.
- throughputIn NumberMibps 
- Throughput of this volume in Mibps.
- volumePath String
- A unique file path for the volume. Changing this forces a new Application Volume Group to be created and data will be lost.
- volumeSpec StringName 
- Volume specification name. Possible values are data,log,shared,data-backupandlog-backup. Changing this forces a new Application Volume Group to be created and data will be lost.
- dataProtection Property MapReplication 
- A data_protection_replicationblock as defined below. Changing this forces a new Application Volume Group to be created and data will be lost.
- dataProtection Property MapSnapshot Policy 
- A data_protection_snapshot_policyblock as defined below.
- id String
- The ID of the Application Volume Group.
- mountIp List<String>Addresses 
- proximityPlacement StringGroup Id 
- The ID of the proximity placement group. Changing this forces a new Application Volume Group to be created and data will be lost. For SAP-HANA application, it is required to have PPG enabled so Azure NetApp Files can pin the volumes next to your compute resources, please check Requirements and considerations for application volume group for SAP HANA for details and other requirements.
- Map<String>
- A mapping of tags which should be assigned to the Application Volume Group.
VolumeGroupSapHanaVolumeDataProtectionReplication, VolumeGroupSapHanaVolumeDataProtectionReplicationArgs                
- RemoteVolume stringLocation 
- Location of the primary volume.
- RemoteVolume stringResource Id 
- Resource ID of the primary volume.
- ReplicationFrequency string
- eplication frequency. Possible values are 10minutes,dailyandhourly.
- EndpointType string
- The endpoint type. Possible values are dstandsrc. Defaults todst.
- RemoteVolume stringLocation 
- Location of the primary volume.
- RemoteVolume stringResource Id 
- Resource ID of the primary volume.
- ReplicationFrequency string
- eplication frequency. Possible values are 10minutes,dailyandhourly.
- EndpointType string
- The endpoint type. Possible values are dstandsrc. Defaults todst.
- remoteVolume StringLocation 
- Location of the primary volume.
- remoteVolume StringResource Id 
- Resource ID of the primary volume.
- replicationFrequency String
- eplication frequency. Possible values are 10minutes,dailyandhourly.
- endpointType String
- The endpoint type. Possible values are dstandsrc. Defaults todst.
- remoteVolume stringLocation 
- Location of the primary volume.
- remoteVolume stringResource Id 
- Resource ID of the primary volume.
- replicationFrequency string
- eplication frequency. Possible values are 10minutes,dailyandhourly.
- endpointType string
- The endpoint type. Possible values are dstandsrc. Defaults todst.
- remote_volume_ strlocation 
- Location of the primary volume.
- remote_volume_ strresource_ id 
- Resource ID of the primary volume.
- replication_frequency str
- eplication frequency. Possible values are 10minutes,dailyandhourly.
- endpoint_type str
- The endpoint type. Possible values are dstandsrc. Defaults todst.
- remoteVolume StringLocation 
- Location of the primary volume.
- remoteVolume StringResource Id 
- Resource ID of the primary volume.
- replicationFrequency String
- eplication frequency. Possible values are 10minutes,dailyandhourly.
- endpointType String
- The endpoint type. Possible values are dstandsrc. Defaults todst.
VolumeGroupSapHanaVolumeDataProtectionSnapshotPolicy, VolumeGroupSapHanaVolumeDataProtectionSnapshotPolicyArgs                  
- SnapshotPolicy stringId 
- Resource ID of the snapshot policy to apply to the volume.
- SnapshotPolicy stringId 
- Resource ID of the snapshot policy to apply to the volume.
- snapshotPolicy StringId 
- Resource ID of the snapshot policy to apply to the volume.
- snapshotPolicy stringId 
- Resource ID of the snapshot policy to apply to the volume.
- snapshot_policy_ strid 
- Resource ID of the snapshot policy to apply to the volume.
- snapshotPolicy StringId 
- Resource ID of the snapshot policy to apply to the volume.
VolumeGroupSapHanaVolumeExportPolicyRule, VolumeGroupSapHanaVolumeExportPolicyRuleArgs                
- AllowedClients string
- A comma-sperated list of allowed client IPv4 addresses.
- Nfsv3Enabled bool
- Enables NFSv3. Please note that this cannot be enabled if volume has NFSv4.1 as its protocol.
- Nfsv41Enabled bool
- Enables NFSv4.1. Please note that this cannot be enabled if volume has NFSv3 as its protocol.
- RuleIndex int
- The index number of the rule, must start at 1 and maximum 5.
- RootAccess boolEnabled 
- Is root access permitted to this volume? Defaults to true.
- UnixRead boolOnly 
- Is the file system on unix read only? Defaults to `false.
- UnixRead boolWrite 
- Is the file system on unix read and write? Defaults to true.
- AllowedClients string
- A comma-sperated list of allowed client IPv4 addresses.
- Nfsv3Enabled bool
- Enables NFSv3. Please note that this cannot be enabled if volume has NFSv4.1 as its protocol.
- Nfsv41Enabled bool
- Enables NFSv4.1. Please note that this cannot be enabled if volume has NFSv3 as its protocol.
- RuleIndex int
- The index number of the rule, must start at 1 and maximum 5.
- RootAccess boolEnabled 
- Is root access permitted to this volume? Defaults to true.
- UnixRead boolOnly 
- Is the file system on unix read only? Defaults to `false.
- UnixRead boolWrite 
- Is the file system on unix read and write? Defaults to true.
- allowedClients String
- A comma-sperated list of allowed client IPv4 addresses.
- nfsv3Enabled Boolean
- Enables NFSv3. Please note that this cannot be enabled if volume has NFSv4.1 as its protocol.
- nfsv41Enabled Boolean
- Enables NFSv4.1. Please note that this cannot be enabled if volume has NFSv3 as its protocol.
- ruleIndex Integer
- The index number of the rule, must start at 1 and maximum 5.
- rootAccess BooleanEnabled 
- Is root access permitted to this volume? Defaults to true.
- unixRead BooleanOnly 
- Is the file system on unix read only? Defaults to `false.
- unixRead BooleanWrite 
- Is the file system on unix read and write? Defaults to true.
- allowedClients string
- A comma-sperated list of allowed client IPv4 addresses.
- nfsv3Enabled boolean
- Enables NFSv3. Please note that this cannot be enabled if volume has NFSv4.1 as its protocol.
- nfsv41Enabled boolean
- Enables NFSv4.1. Please note that this cannot be enabled if volume has NFSv3 as its protocol.
- ruleIndex number
- The index number of the rule, must start at 1 and maximum 5.
- rootAccess booleanEnabled 
- Is root access permitted to this volume? Defaults to true.
- unixRead booleanOnly 
- Is the file system on unix read only? Defaults to `false.
- unixRead booleanWrite 
- Is the file system on unix read and write? Defaults to true.
- allowed_clients str
- A comma-sperated list of allowed client IPv4 addresses.
- nfsv3_enabled bool
- Enables NFSv3. Please note that this cannot be enabled if volume has NFSv4.1 as its protocol.
- nfsv41_enabled bool
- Enables NFSv4.1. Please note that this cannot be enabled if volume has NFSv3 as its protocol.
- rule_index int
- The index number of the rule, must start at 1 and maximum 5.
- root_access_ boolenabled 
- Is root access permitted to this volume? Defaults to true.
- unix_read_ boolonly 
- Is the file system on unix read only? Defaults to `false.
- unix_read_ boolwrite 
- Is the file system on unix read and write? Defaults to true.
- allowedClients String
- A comma-sperated list of allowed client IPv4 addresses.
- nfsv3Enabled Boolean
- Enables NFSv3. Please note that this cannot be enabled if volume has NFSv4.1 as its protocol.
- nfsv41Enabled Boolean
- Enables NFSv4.1. Please note that this cannot be enabled if volume has NFSv3 as its protocol.
- ruleIndex Number
- The index number of the rule, must start at 1 and maximum 5.
- rootAccess BooleanEnabled 
- Is root access permitted to this volume? Defaults to true.
- unixRead BooleanOnly 
- Is the file system on unix read only? Defaults to `false.
- unixRead BooleanWrite 
- Is the file system on unix read and write? Defaults to true.
Import
Application Volume Groups can be imported using the resource id, e.g.
$ 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
To learn more about importing existing cloud resources, see Importing resources.
Package Details
- Repository
- Azure Classic pulumi/pulumi-azure
- License
- Apache-2.0
- Notes
- This Pulumi package is based on the azurermTerraform Provider.