We recommend using Azure Native.
azure.elasticsan.VolumeGroup
Explore with Pulumi AI
Manages an Elastic SAN Volume Group resource.
Example Usage
import * as pulumi from "@pulumi/pulumi";
import * as azure from "@pulumi/azure";
const example = new azure.core.ResourceGroup("example", {
    name: "example-rg",
    location: "West Europe",
});
const exampleElasticSan = new azure.elasticsan.ElasticSan("example", {
    name: "examplees-es",
    resourceGroupName: example.name,
    location: example.location,
    baseSizeInTib: 1,
    sku: {
        name: "Premium_LRS",
    },
});
const current = azure.core.getClientConfig({});
const exampleUserAssignedIdentity = new azure.authorization.UserAssignedIdentity("example", {
    name: "example-uai",
    location: example.location,
    resourceGroupName: example.name,
});
const exampleVirtualNetwork = new azure.network.VirtualNetwork("example", {
    name: "example-vnet",
    addressSpaces: ["10.0.0.0/16"],
    location: example.location,
    resourceGroupName: example.name,
});
const exampleSubnet = new azure.network.Subnet("example", {
    name: "example-subnet",
    resourceGroupName: example.name,
    virtualNetworkName: exampleVirtualNetwork.name,
    addressPrefixes: ["10.0.1.0/24"],
    serviceEndpoints: ["Microsoft.Storage.Global"],
});
const exampleKeyVault = new azure.keyvault.KeyVault("example", {
    name: "examplekv",
    location: example.location,
    resourceGroupName: example.name,
    enabledForDiskEncryption: true,
    tenantId: current.then(current => current.tenantId),
    softDeleteRetentionDays: 7,
    purgeProtectionEnabled: true,
    skuName: "standard",
});
const userAssignedIdentity = new azure.keyvault.AccessPolicy("userAssignedIdentity", {
    keyVaultId: exampleKeyVault.id,
    tenantId: current.then(current => current.tenantId),
    objectId: exampleUserAssignedIdentity.principalId,
    keyPermissions: [
        "Get",
        "UnwrapKey",
        "WrapKey",
    ],
    secretPermissions: ["Get"],
});
const client = new azure.keyvault.AccessPolicy("client", {
    keyVaultId: exampleKeyVault.id,
    tenantId: current.then(current => current.tenantId),
    objectId: current.then(current => current.objectId),
    keyPermissions: [
        "Get",
        "Create",
        "Delete",
        "List",
        "Restore",
        "Recover",
        "UnwrapKey",
        "WrapKey",
        "Purge",
        "Encrypt",
        "Decrypt",
        "Sign",
        "Verify",
        "GetRotationPolicy",
    ],
    secretPermissions: ["Get"],
});
const exampleKey = new azure.keyvault.Key("example", {
    name: "example-kvk",
    keyVaultId: exampleKeyVault.id,
    keyType: "RSA",
    keySize: 2048,
    keyOpts: [
        "decrypt",
        "encrypt",
        "sign",
        "unwrapKey",
        "verify",
        "wrapKey",
    ],
}, {
    dependsOn: [
        userAssignedIdentity,
        client,
    ],
});
const exampleVolumeGroup = new azure.elasticsan.VolumeGroup("example", {
    name: "example-esvg",
    elasticSanId: exampleElasticSan.id,
    encryptionType: "EncryptionAtRestWithCustomerManagedKey",
    encryption: {
        keyVaultKeyId: exampleKey.versionlessId,
        userAssignedIdentityId: exampleUserAssignedIdentity.id,
    },
    identity: {
        type: "UserAssigned",
        identityIds: [exampleUserAssignedIdentity.id],
    },
    networkRules: [{
        subnetId: exampleSubnet.id,
        action: "Allow",
    }],
});
import pulumi
import pulumi_azure as azure
example = azure.core.ResourceGroup("example",
    name="example-rg",
    location="West Europe")
example_elastic_san = azure.elasticsan.ElasticSan("example",
    name="examplees-es",
    resource_group_name=example.name,
    location=example.location,
    base_size_in_tib=1,
    sku={
        "name": "Premium_LRS",
    })
current = azure.core.get_client_config()
example_user_assigned_identity = azure.authorization.UserAssignedIdentity("example",
    name="example-uai",
    location=example.location,
    resource_group_name=example.name)
example_virtual_network = azure.network.VirtualNetwork("example",
    name="example-vnet",
    address_spaces=["10.0.0.0/16"],
    location=example.location,
    resource_group_name=example.name)
example_subnet = azure.network.Subnet("example",
    name="example-subnet",
    resource_group_name=example.name,
    virtual_network_name=example_virtual_network.name,
    address_prefixes=["10.0.1.0/24"],
    service_endpoints=["Microsoft.Storage.Global"])
example_key_vault = azure.keyvault.KeyVault("example",
    name="examplekv",
    location=example.location,
    resource_group_name=example.name,
    enabled_for_disk_encryption=True,
    tenant_id=current.tenant_id,
    soft_delete_retention_days=7,
    purge_protection_enabled=True,
    sku_name="standard")
user_assigned_identity = azure.keyvault.AccessPolicy("userAssignedIdentity",
    key_vault_id=example_key_vault.id,
    tenant_id=current.tenant_id,
    object_id=example_user_assigned_identity.principal_id,
    key_permissions=[
        "Get",
        "UnwrapKey",
        "WrapKey",
    ],
    secret_permissions=["Get"])
client = azure.keyvault.AccessPolicy("client",
    key_vault_id=example_key_vault.id,
    tenant_id=current.tenant_id,
    object_id=current.object_id,
    key_permissions=[
        "Get",
        "Create",
        "Delete",
        "List",
        "Restore",
        "Recover",
        "UnwrapKey",
        "WrapKey",
        "Purge",
        "Encrypt",
        "Decrypt",
        "Sign",
        "Verify",
        "GetRotationPolicy",
    ],
    secret_permissions=["Get"])
example_key = azure.keyvault.Key("example",
    name="example-kvk",
    key_vault_id=example_key_vault.id,
    key_type="RSA",
    key_size=2048,
    key_opts=[
        "decrypt",
        "encrypt",
        "sign",
        "unwrapKey",
        "verify",
        "wrapKey",
    ],
    opts = pulumi.ResourceOptions(depends_on=[
            user_assigned_identity,
            client,
        ]))
example_volume_group = azure.elasticsan.VolumeGroup("example",
    name="example-esvg",
    elastic_san_id=example_elastic_san.id,
    encryption_type="EncryptionAtRestWithCustomerManagedKey",
    encryption={
        "key_vault_key_id": example_key.versionless_id,
        "user_assigned_identity_id": example_user_assigned_identity.id,
    },
    identity={
        "type": "UserAssigned",
        "identity_ids": [example_user_assigned_identity.id],
    },
    network_rules=[{
        "subnet_id": example_subnet.id,
        "action": "Allow",
    }])
package main
import (
	"github.com/pulumi/pulumi-azure/sdk/v6/go/azure/authorization"
	"github.com/pulumi/pulumi-azure/sdk/v6/go/azure/core"
	"github.com/pulumi/pulumi-azure/sdk/v6/go/azure/elasticsan"
	"github.com/pulumi/pulumi-azure/sdk/v6/go/azure/keyvault"
	"github.com/pulumi/pulumi-azure/sdk/v6/go/azure/network"
	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		example, err := core.NewResourceGroup(ctx, "example", &core.ResourceGroupArgs{
			Name:     pulumi.String("example-rg"),
			Location: pulumi.String("West Europe"),
		})
		if err != nil {
			return err
		}
		exampleElasticSan, err := elasticsan.NewElasticSan(ctx, "example", &elasticsan.ElasticSanArgs{
			Name:              pulumi.String("examplees-es"),
			ResourceGroupName: example.Name,
			Location:          example.Location,
			BaseSizeInTib:     pulumi.Int(1),
			Sku: &elasticsan.ElasticSanSkuArgs{
				Name: pulumi.String("Premium_LRS"),
			},
		})
		if err != nil {
			return err
		}
		current, err := core.GetClientConfig(ctx, map[string]interface{}{}, nil)
		if err != nil {
			return err
		}
		exampleUserAssignedIdentity, err := authorization.NewUserAssignedIdentity(ctx, "example", &authorization.UserAssignedIdentityArgs{
			Name:              pulumi.String("example-uai"),
			Location:          example.Location,
			ResourceGroupName: example.Name,
		})
		if err != nil {
			return err
		}
		exampleVirtualNetwork, err := network.NewVirtualNetwork(ctx, "example", &network.VirtualNetworkArgs{
			Name: pulumi.String("example-vnet"),
			AddressSpaces: pulumi.StringArray{
				pulumi.String("10.0.0.0/16"),
			},
			Location:          example.Location,
			ResourceGroupName: example.Name,
		})
		if err != nil {
			return err
		}
		exampleSubnet, err := network.NewSubnet(ctx, "example", &network.SubnetArgs{
			Name:               pulumi.String("example-subnet"),
			ResourceGroupName:  example.Name,
			VirtualNetworkName: exampleVirtualNetwork.Name,
			AddressPrefixes: pulumi.StringArray{
				pulumi.String("10.0.1.0/24"),
			},
			ServiceEndpoints: pulumi.StringArray{
				pulumi.String("Microsoft.Storage.Global"),
			},
		})
		if err != nil {
			return err
		}
		exampleKeyVault, err := keyvault.NewKeyVault(ctx, "example", &keyvault.KeyVaultArgs{
			Name:                     pulumi.String("examplekv"),
			Location:                 example.Location,
			ResourceGroupName:        example.Name,
			EnabledForDiskEncryption: pulumi.Bool(true),
			TenantId:                 pulumi.String(current.TenantId),
			SoftDeleteRetentionDays:  pulumi.Int(7),
			PurgeProtectionEnabled:   pulumi.Bool(true),
			SkuName:                  pulumi.String("standard"),
		})
		if err != nil {
			return err
		}
		userAssignedIdentity, err := keyvault.NewAccessPolicy(ctx, "userAssignedIdentity", &keyvault.AccessPolicyArgs{
			KeyVaultId: exampleKeyVault.ID(),
			TenantId:   pulumi.String(current.TenantId),
			ObjectId:   exampleUserAssignedIdentity.PrincipalId,
			KeyPermissions: pulumi.StringArray{
				pulumi.String("Get"),
				pulumi.String("UnwrapKey"),
				pulumi.String("WrapKey"),
			},
			SecretPermissions: pulumi.StringArray{
				pulumi.String("Get"),
			},
		})
		if err != nil {
			return err
		}
		client, err := keyvault.NewAccessPolicy(ctx, "client", &keyvault.AccessPolicyArgs{
			KeyVaultId: exampleKeyVault.ID(),
			TenantId:   pulumi.String(current.TenantId),
			ObjectId:   pulumi.String(current.ObjectId),
			KeyPermissions: pulumi.StringArray{
				pulumi.String("Get"),
				pulumi.String("Create"),
				pulumi.String("Delete"),
				pulumi.String("List"),
				pulumi.String("Restore"),
				pulumi.String("Recover"),
				pulumi.String("UnwrapKey"),
				pulumi.String("WrapKey"),
				pulumi.String("Purge"),
				pulumi.String("Encrypt"),
				pulumi.String("Decrypt"),
				pulumi.String("Sign"),
				pulumi.String("Verify"),
				pulumi.String("GetRotationPolicy"),
			},
			SecretPermissions: pulumi.StringArray{
				pulumi.String("Get"),
			},
		})
		if err != nil {
			return err
		}
		exampleKey, err := keyvault.NewKey(ctx, "example", &keyvault.KeyArgs{
			Name:       pulumi.String("example-kvk"),
			KeyVaultId: exampleKeyVault.ID(),
			KeyType:    pulumi.String("RSA"),
			KeySize:    pulumi.Int(2048),
			KeyOpts: pulumi.StringArray{
				pulumi.String("decrypt"),
				pulumi.String("encrypt"),
				pulumi.String("sign"),
				pulumi.String("unwrapKey"),
				pulumi.String("verify"),
				pulumi.String("wrapKey"),
			},
		}, pulumi.DependsOn([]pulumi.Resource{
			userAssignedIdentity,
			client,
		}))
		if err != nil {
			return err
		}
		_, err = elasticsan.NewVolumeGroup(ctx, "example", &elasticsan.VolumeGroupArgs{
			Name:           pulumi.String("example-esvg"),
			ElasticSanId:   exampleElasticSan.ID(),
			EncryptionType: pulumi.String("EncryptionAtRestWithCustomerManagedKey"),
			Encryption: &elasticsan.VolumeGroupEncryptionArgs{
				KeyVaultKeyId:          exampleKey.VersionlessId,
				UserAssignedIdentityId: exampleUserAssignedIdentity.ID(),
			},
			Identity: &elasticsan.VolumeGroupIdentityArgs{
				Type: pulumi.String("UserAssigned"),
				IdentityIds: pulumi.StringArray{
					exampleUserAssignedIdentity.ID(),
				},
			},
			NetworkRules: elasticsan.VolumeGroupNetworkRuleArray{
				&elasticsan.VolumeGroupNetworkRuleArgs{
					SubnetId: exampleSubnet.ID(),
					Action:   pulumi.String("Allow"),
				},
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Azure = Pulumi.Azure;
return await Deployment.RunAsync(() => 
{
    var example = new Azure.Core.ResourceGroup("example", new()
    {
        Name = "example-rg",
        Location = "West Europe",
    });
    var exampleElasticSan = new Azure.ElasticSan.ElasticSan("example", new()
    {
        Name = "examplees-es",
        ResourceGroupName = example.Name,
        Location = example.Location,
        BaseSizeInTib = 1,
        Sku = new Azure.ElasticSan.Inputs.ElasticSanSkuArgs
        {
            Name = "Premium_LRS",
        },
    });
    var current = Azure.Core.GetClientConfig.Invoke();
    var exampleUserAssignedIdentity = new Azure.Authorization.UserAssignedIdentity("example", new()
    {
        Name = "example-uai",
        Location = example.Location,
        ResourceGroupName = example.Name,
    });
    var exampleVirtualNetwork = new Azure.Network.VirtualNetwork("example", new()
    {
        Name = "example-vnet",
        AddressSpaces = new[]
        {
            "10.0.0.0/16",
        },
        Location = example.Location,
        ResourceGroupName = example.Name,
    });
    var exampleSubnet = new Azure.Network.Subnet("example", new()
    {
        Name = "example-subnet",
        ResourceGroupName = example.Name,
        VirtualNetworkName = exampleVirtualNetwork.Name,
        AddressPrefixes = new[]
        {
            "10.0.1.0/24",
        },
        ServiceEndpoints = new[]
        {
            "Microsoft.Storage.Global",
        },
    });
    var exampleKeyVault = new Azure.KeyVault.KeyVault("example", new()
    {
        Name = "examplekv",
        Location = example.Location,
        ResourceGroupName = example.Name,
        EnabledForDiskEncryption = true,
        TenantId = current.Apply(getClientConfigResult => getClientConfigResult.TenantId),
        SoftDeleteRetentionDays = 7,
        PurgeProtectionEnabled = true,
        SkuName = "standard",
    });
    var userAssignedIdentity = new Azure.KeyVault.AccessPolicy("userAssignedIdentity", new()
    {
        KeyVaultId = exampleKeyVault.Id,
        TenantId = current.Apply(getClientConfigResult => getClientConfigResult.TenantId),
        ObjectId = exampleUserAssignedIdentity.PrincipalId,
        KeyPermissions = new[]
        {
            "Get",
            "UnwrapKey",
            "WrapKey",
        },
        SecretPermissions = new[]
        {
            "Get",
        },
    });
    var client = new Azure.KeyVault.AccessPolicy("client", new()
    {
        KeyVaultId = exampleKeyVault.Id,
        TenantId = current.Apply(getClientConfigResult => getClientConfigResult.TenantId),
        ObjectId = current.Apply(getClientConfigResult => getClientConfigResult.ObjectId),
        KeyPermissions = new[]
        {
            "Get",
            "Create",
            "Delete",
            "List",
            "Restore",
            "Recover",
            "UnwrapKey",
            "WrapKey",
            "Purge",
            "Encrypt",
            "Decrypt",
            "Sign",
            "Verify",
            "GetRotationPolicy",
        },
        SecretPermissions = new[]
        {
            "Get",
        },
    });
    var exampleKey = new Azure.KeyVault.Key("example", new()
    {
        Name = "example-kvk",
        KeyVaultId = exampleKeyVault.Id,
        KeyType = "RSA",
        KeySize = 2048,
        KeyOpts = new[]
        {
            "decrypt",
            "encrypt",
            "sign",
            "unwrapKey",
            "verify",
            "wrapKey",
        },
    }, new CustomResourceOptions
    {
        DependsOn =
        {
            userAssignedIdentity,
            client,
        },
    });
    var exampleVolumeGroup = new Azure.ElasticSan.VolumeGroup("example", new()
    {
        Name = "example-esvg",
        ElasticSanId = exampleElasticSan.Id,
        EncryptionType = "EncryptionAtRestWithCustomerManagedKey",
        Encryption = new Azure.ElasticSan.Inputs.VolumeGroupEncryptionArgs
        {
            KeyVaultKeyId = exampleKey.VersionlessId,
            UserAssignedIdentityId = exampleUserAssignedIdentity.Id,
        },
        Identity = new Azure.ElasticSan.Inputs.VolumeGroupIdentityArgs
        {
            Type = "UserAssigned",
            IdentityIds = new[]
            {
                exampleUserAssignedIdentity.Id,
            },
        },
        NetworkRules = new[]
        {
            new Azure.ElasticSan.Inputs.VolumeGroupNetworkRuleArgs
            {
                SubnetId = exampleSubnet.Id,
                Action = "Allow",
            },
        },
    });
});
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.azure.core.ResourceGroup;
import com.pulumi.azure.core.ResourceGroupArgs;
import com.pulumi.azure.elasticsan.ElasticSan;
import com.pulumi.azure.elasticsan.ElasticSanArgs;
import com.pulumi.azure.elasticsan.inputs.ElasticSanSkuArgs;
import com.pulumi.azure.core.CoreFunctions;
import com.pulumi.azure.authorization.UserAssignedIdentity;
import com.pulumi.azure.authorization.UserAssignedIdentityArgs;
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.keyvault.KeyVault;
import com.pulumi.azure.keyvault.KeyVaultArgs;
import com.pulumi.azure.keyvault.AccessPolicy;
import com.pulumi.azure.keyvault.AccessPolicyArgs;
import com.pulumi.azure.keyvault.Key;
import com.pulumi.azure.keyvault.KeyArgs;
import com.pulumi.azure.elasticsan.VolumeGroup;
import com.pulumi.azure.elasticsan.VolumeGroupArgs;
import com.pulumi.azure.elasticsan.inputs.VolumeGroupEncryptionArgs;
import com.pulumi.azure.elasticsan.inputs.VolumeGroupIdentityArgs;
import com.pulumi.azure.elasticsan.inputs.VolumeGroupNetworkRuleArgs;
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 ResourceGroup("example", ResourceGroupArgs.builder()
            .name("example-rg")
            .location("West Europe")
            .build());
        var exampleElasticSan = new ElasticSan("exampleElasticSan", ElasticSanArgs.builder()
            .name("examplees-es")
            .resourceGroupName(example.name())
            .location(example.location())
            .baseSizeInTib(1)
            .sku(ElasticSanSkuArgs.builder()
                .name("Premium_LRS")
                .build())
            .build());
        final var current = CoreFunctions.getClientConfig();
        var exampleUserAssignedIdentity = new UserAssignedIdentity("exampleUserAssignedIdentity", UserAssignedIdentityArgs.builder()
            .name("example-uai")
            .location(example.location())
            .resourceGroupName(example.name())
            .build());
        var exampleVirtualNetwork = new VirtualNetwork("exampleVirtualNetwork", VirtualNetworkArgs.builder()
            .name("example-vnet")
            .addressSpaces("10.0.0.0/16")
            .location(example.location())
            .resourceGroupName(example.name())
            .build());
        var exampleSubnet = new Subnet("exampleSubnet", SubnetArgs.builder()
            .name("example-subnet")
            .resourceGroupName(example.name())
            .virtualNetworkName(exampleVirtualNetwork.name())
            .addressPrefixes("10.0.1.0/24")
            .serviceEndpoints("Microsoft.Storage.Global")
            .build());
        var exampleKeyVault = new KeyVault("exampleKeyVault", KeyVaultArgs.builder()
            .name("examplekv")
            .location(example.location())
            .resourceGroupName(example.name())
            .enabledForDiskEncryption(true)
            .tenantId(current.applyValue(getClientConfigResult -> getClientConfigResult.tenantId()))
            .softDeleteRetentionDays(7)
            .purgeProtectionEnabled(true)
            .skuName("standard")
            .build());
        var userAssignedIdentity = new AccessPolicy("userAssignedIdentity", AccessPolicyArgs.builder()
            .keyVaultId(exampleKeyVault.id())
            .tenantId(current.applyValue(getClientConfigResult -> getClientConfigResult.tenantId()))
            .objectId(exampleUserAssignedIdentity.principalId())
            .keyPermissions(            
                "Get",
                "UnwrapKey",
                "WrapKey")
            .secretPermissions("Get")
            .build());
        var client = new AccessPolicy("client", AccessPolicyArgs.builder()
            .keyVaultId(exampleKeyVault.id())
            .tenantId(current.applyValue(getClientConfigResult -> getClientConfigResult.tenantId()))
            .objectId(current.applyValue(getClientConfigResult -> getClientConfigResult.objectId()))
            .keyPermissions(            
                "Get",
                "Create",
                "Delete",
                "List",
                "Restore",
                "Recover",
                "UnwrapKey",
                "WrapKey",
                "Purge",
                "Encrypt",
                "Decrypt",
                "Sign",
                "Verify",
                "GetRotationPolicy")
            .secretPermissions("Get")
            .build());
        var exampleKey = new Key("exampleKey", KeyArgs.builder()
            .name("example-kvk")
            .keyVaultId(exampleKeyVault.id())
            .keyType("RSA")
            .keySize(2048)
            .keyOpts(            
                "decrypt",
                "encrypt",
                "sign",
                "unwrapKey",
                "verify",
                "wrapKey")
            .build(), CustomResourceOptions.builder()
                .dependsOn(                
                    userAssignedIdentity,
                    client)
                .build());
        var exampleVolumeGroup = new VolumeGroup("exampleVolumeGroup", VolumeGroupArgs.builder()
            .name("example-esvg")
            .elasticSanId(exampleElasticSan.id())
            .encryptionType("EncryptionAtRestWithCustomerManagedKey")
            .encryption(VolumeGroupEncryptionArgs.builder()
                .keyVaultKeyId(exampleKey.versionlessId())
                .userAssignedIdentityId(exampleUserAssignedIdentity.id())
                .build())
            .identity(VolumeGroupIdentityArgs.builder()
                .type("UserAssigned")
                .identityIds(exampleUserAssignedIdentity.id())
                .build())
            .networkRules(VolumeGroupNetworkRuleArgs.builder()
                .subnetId(exampleSubnet.id())
                .action("Allow")
                .build())
            .build());
    }
}
resources:
  example:
    type: azure:core:ResourceGroup
    properties:
      name: example-rg
      location: West Europe
  exampleElasticSan:
    type: azure:elasticsan:ElasticSan
    name: example
    properties:
      name: examplees-es
      resourceGroupName: ${example.name}
      location: ${example.location}
      baseSizeInTib: 1
      sku:
        name: Premium_LRS
  exampleUserAssignedIdentity:
    type: azure:authorization:UserAssignedIdentity
    name: example
    properties:
      name: example-uai
      location: ${example.location}
      resourceGroupName: ${example.name}
  exampleVirtualNetwork:
    type: azure:network:VirtualNetwork
    name: example
    properties:
      name: example-vnet
      addressSpaces:
        - 10.0.0.0/16
      location: ${example.location}
      resourceGroupName: ${example.name}
  exampleSubnet:
    type: azure:network:Subnet
    name: example
    properties:
      name: example-subnet
      resourceGroupName: ${example.name}
      virtualNetworkName: ${exampleVirtualNetwork.name}
      addressPrefixes:
        - 10.0.1.0/24
      serviceEndpoints:
        - Microsoft.Storage.Global
  exampleKeyVault:
    type: azure:keyvault:KeyVault
    name: example
    properties:
      name: examplekv
      location: ${example.location}
      resourceGroupName: ${example.name}
      enabledForDiskEncryption: true
      tenantId: ${current.tenantId}
      softDeleteRetentionDays: 7
      purgeProtectionEnabled: true
      skuName: standard
  userAssignedIdentity:
    type: azure:keyvault:AccessPolicy
    properties:
      keyVaultId: ${exampleKeyVault.id}
      tenantId: ${current.tenantId}
      objectId: ${exampleUserAssignedIdentity.principalId}
      keyPermissions:
        - Get
        - UnwrapKey
        - WrapKey
      secretPermissions:
        - Get
  client:
    type: azure:keyvault:AccessPolicy
    properties:
      keyVaultId: ${exampleKeyVault.id}
      tenantId: ${current.tenantId}
      objectId: ${current.objectId}
      keyPermissions:
        - Get
        - Create
        - Delete
        - List
        - Restore
        - Recover
        - UnwrapKey
        - WrapKey
        - Purge
        - Encrypt
        - Decrypt
        - Sign
        - Verify
        - GetRotationPolicy
      secretPermissions:
        - Get
  exampleKey:
    type: azure:keyvault:Key
    name: example
    properties:
      name: example-kvk
      keyVaultId: ${exampleKeyVault.id}
      keyType: RSA
      keySize: 2048
      keyOpts:
        - decrypt
        - encrypt
        - sign
        - unwrapKey
        - verify
        - wrapKey
    options:
      dependsOn:
        - ${userAssignedIdentity}
        - ${client}
  exampleVolumeGroup:
    type: azure:elasticsan:VolumeGroup
    name: example
    properties:
      name: example-esvg
      elasticSanId: ${exampleElasticSan.id}
      encryptionType: EncryptionAtRestWithCustomerManagedKey
      encryption:
        keyVaultKeyId: ${exampleKey.versionlessId}
        userAssignedIdentityId: ${exampleUserAssignedIdentity.id}
      identity:
        type: UserAssigned
        identityIds:
          - ${exampleUserAssignedIdentity.id}
      networkRules:
        - subnetId: ${exampleSubnet.id}
          action: Allow
variables:
  current:
    fn::invoke:
      function: azure:core:getClientConfig
      arguments: {}
Create VolumeGroup Resource
Resources are created with functions called constructors. To learn more about declaring and configuring resources, see Resources.
Constructor syntax
new VolumeGroup(name: string, args: VolumeGroupArgs, opts?: CustomResourceOptions);@overload
def VolumeGroup(resource_name: str,
                args: VolumeGroupArgs,
                opts: Optional[ResourceOptions] = None)
@overload
def VolumeGroup(resource_name: str,
                opts: Optional[ResourceOptions] = None,
                elastic_san_id: Optional[str] = None,
                encryption: Optional[VolumeGroupEncryptionArgs] = None,
                encryption_type: Optional[str] = None,
                identity: Optional[VolumeGroupIdentityArgs] = None,
                name: Optional[str] = None,
                network_rules: Optional[Sequence[VolumeGroupNetworkRuleArgs]] = None,
                protocol_type: Optional[str] = None)func NewVolumeGroup(ctx *Context, name string, args VolumeGroupArgs, opts ...ResourceOption) (*VolumeGroup, error)public VolumeGroup(string name, VolumeGroupArgs args, CustomResourceOptions? opts = null)
public VolumeGroup(String name, VolumeGroupArgs args)
public VolumeGroup(String name, VolumeGroupArgs args, CustomResourceOptions options)
type: azure:elasticsan:VolumeGroup
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 VolumeGroupArgs
- 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 VolumeGroupArgs
- 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 VolumeGroupArgs
- The arguments to resource properties.
- opts ResourceOption
- Bag of options to control resource's behavior.
- name string
- The unique name of the resource.
- args VolumeGroupArgs
- The arguments to resource properties.
- opts CustomResourceOptions
- Bag of options to control resource's behavior.
- name String
- The unique name of the resource.
- args VolumeGroupArgs
- 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 volumeGroupResource = new Azure.ElasticSan.VolumeGroup("volumeGroupResource", new()
{
    ElasticSanId = "string",
    Encryption = new Azure.ElasticSan.Inputs.VolumeGroupEncryptionArgs
    {
        KeyVaultKeyId = "string",
        CurrentVersionedKeyExpirationTimestamp = "string",
        CurrentVersionedKeyId = "string",
        LastKeyRotationTimestamp = "string",
        UserAssignedIdentityId = "string",
    },
    EncryptionType = "string",
    Identity = new Azure.ElasticSan.Inputs.VolumeGroupIdentityArgs
    {
        Type = "string",
        IdentityIds = new[]
        {
            "string",
        },
        PrincipalId = "string",
        TenantId = "string",
    },
    Name = "string",
    NetworkRules = new[]
    {
        new Azure.ElasticSan.Inputs.VolumeGroupNetworkRuleArgs
        {
            SubnetId = "string",
            Action = "string",
        },
    },
    ProtocolType = "string",
});
example, err := elasticsan.NewVolumeGroup(ctx, "volumeGroupResource", &elasticsan.VolumeGroupArgs{
	ElasticSanId: pulumi.String("string"),
	Encryption: &elasticsan.VolumeGroupEncryptionArgs{
		KeyVaultKeyId:                          pulumi.String("string"),
		CurrentVersionedKeyExpirationTimestamp: pulumi.String("string"),
		CurrentVersionedKeyId:                  pulumi.String("string"),
		LastKeyRotationTimestamp:               pulumi.String("string"),
		UserAssignedIdentityId:                 pulumi.String("string"),
	},
	EncryptionType: pulumi.String("string"),
	Identity: &elasticsan.VolumeGroupIdentityArgs{
		Type: pulumi.String("string"),
		IdentityIds: pulumi.StringArray{
			pulumi.String("string"),
		},
		PrincipalId: pulumi.String("string"),
		TenantId:    pulumi.String("string"),
	},
	Name: pulumi.String("string"),
	NetworkRules: elasticsan.VolumeGroupNetworkRuleArray{
		&elasticsan.VolumeGroupNetworkRuleArgs{
			SubnetId: pulumi.String("string"),
			Action:   pulumi.String("string"),
		},
	},
	ProtocolType: pulumi.String("string"),
})
var volumeGroupResource = new VolumeGroup("volumeGroupResource", VolumeGroupArgs.builder()
    .elasticSanId("string")
    .encryption(VolumeGroupEncryptionArgs.builder()
        .keyVaultKeyId("string")
        .currentVersionedKeyExpirationTimestamp("string")
        .currentVersionedKeyId("string")
        .lastKeyRotationTimestamp("string")
        .userAssignedIdentityId("string")
        .build())
    .encryptionType("string")
    .identity(VolumeGroupIdentityArgs.builder()
        .type("string")
        .identityIds("string")
        .principalId("string")
        .tenantId("string")
        .build())
    .name("string")
    .networkRules(VolumeGroupNetworkRuleArgs.builder()
        .subnetId("string")
        .action("string")
        .build())
    .protocolType("string")
    .build());
volume_group_resource = azure.elasticsan.VolumeGroup("volumeGroupResource",
    elastic_san_id="string",
    encryption={
        "key_vault_key_id": "string",
        "current_versioned_key_expiration_timestamp": "string",
        "current_versioned_key_id": "string",
        "last_key_rotation_timestamp": "string",
        "user_assigned_identity_id": "string",
    },
    encryption_type="string",
    identity={
        "type": "string",
        "identity_ids": ["string"],
        "principal_id": "string",
        "tenant_id": "string",
    },
    name="string",
    network_rules=[{
        "subnet_id": "string",
        "action": "string",
    }],
    protocol_type="string")
const volumeGroupResource = new azure.elasticsan.VolumeGroup("volumeGroupResource", {
    elasticSanId: "string",
    encryption: {
        keyVaultKeyId: "string",
        currentVersionedKeyExpirationTimestamp: "string",
        currentVersionedKeyId: "string",
        lastKeyRotationTimestamp: "string",
        userAssignedIdentityId: "string",
    },
    encryptionType: "string",
    identity: {
        type: "string",
        identityIds: ["string"],
        principalId: "string",
        tenantId: "string",
    },
    name: "string",
    networkRules: [{
        subnetId: "string",
        action: "string",
    }],
    protocolType: "string",
});
type: azure:elasticsan:VolumeGroup
properties:
    elasticSanId: string
    encryption:
        currentVersionedKeyExpirationTimestamp: string
        currentVersionedKeyId: string
        keyVaultKeyId: string
        lastKeyRotationTimestamp: string
        userAssignedIdentityId: string
    encryptionType: string
    identity:
        identityIds:
            - string
        principalId: string
        tenantId: string
        type: string
    name: string
    networkRules:
        - action: string
          subnetId: string
    protocolType: string
VolumeGroup 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 VolumeGroup resource accepts the following input properties:
- ElasticSan stringId 
- Specifies the Elastic SAN ID within which this Elastic SAN Volume Group should exist. Changing this forces a new resource to be created.
- Encryption
VolumeGroup Encryption 
- An - encryptionblock as defined below.- NOTE: The - encryptionblock can only be set when- encryption_typeis set to- EncryptionAtRestWithCustomerManagedKey.
- EncryptionType string
- Specifies the type of the key used to encrypt the data of the disk. Possible values are EncryptionAtRestWithCustomerManagedKeyandEncryptionAtRestWithPlatformKey. Defaults toEncryptionAtRestWithPlatformKey.
- Identity
VolumeGroup Identity 
- An identityblock as defined below. Specifies the Managed Identity which should be assigned to this Elastic SAN Volume Group.
- Name string
- Specifies the name of this Elastic SAN Volume Group. Changing this forces a new resource to be created.
- NetworkRules List<VolumeGroup Network Rule> 
- One or more network_ruleblocks as defined below.
- ProtocolType string
- Specifies the type of the storage target. The only possible value is Iscsi. Defaults toIscsi.
- ElasticSan stringId 
- Specifies the Elastic SAN ID within which this Elastic SAN Volume Group should exist. Changing this forces a new resource to be created.
- Encryption
VolumeGroup Encryption Args 
- An - encryptionblock as defined below.- NOTE: The - encryptionblock can only be set when- encryption_typeis set to- EncryptionAtRestWithCustomerManagedKey.
- EncryptionType string
- Specifies the type of the key used to encrypt the data of the disk. Possible values are EncryptionAtRestWithCustomerManagedKeyandEncryptionAtRestWithPlatformKey. Defaults toEncryptionAtRestWithPlatformKey.
- Identity
VolumeGroup Identity Args 
- An identityblock as defined below. Specifies the Managed Identity which should be assigned to this Elastic SAN Volume Group.
- Name string
- Specifies the name of this Elastic SAN Volume Group. Changing this forces a new resource to be created.
- NetworkRules []VolumeGroup Network Rule Args 
- One or more network_ruleblocks as defined below.
- ProtocolType string
- Specifies the type of the storage target. The only possible value is Iscsi. Defaults toIscsi.
- elasticSan StringId 
- Specifies the Elastic SAN ID within which this Elastic SAN Volume Group should exist. Changing this forces a new resource to be created.
- encryption
VolumeGroup Encryption 
- An - encryptionblock as defined below.- NOTE: The - encryptionblock can only be set when- encryption_typeis set to- EncryptionAtRestWithCustomerManagedKey.
- encryptionType String
- Specifies the type of the key used to encrypt the data of the disk. Possible values are EncryptionAtRestWithCustomerManagedKeyandEncryptionAtRestWithPlatformKey. Defaults toEncryptionAtRestWithPlatformKey.
- identity
VolumeGroup Identity 
- An identityblock as defined below. Specifies the Managed Identity which should be assigned to this Elastic SAN Volume Group.
- name String
- Specifies the name of this Elastic SAN Volume Group. Changing this forces a new resource to be created.
- networkRules List<VolumeGroup Network Rule> 
- One or more network_ruleblocks as defined below.
- protocolType String
- Specifies the type of the storage target. The only possible value is Iscsi. Defaults toIscsi.
- elasticSan stringId 
- Specifies the Elastic SAN ID within which this Elastic SAN Volume Group should exist. Changing this forces a new resource to be created.
- encryption
VolumeGroup Encryption 
- An - encryptionblock as defined below.- NOTE: The - encryptionblock can only be set when- encryption_typeis set to- EncryptionAtRestWithCustomerManagedKey.
- encryptionType string
- Specifies the type of the key used to encrypt the data of the disk. Possible values are EncryptionAtRestWithCustomerManagedKeyandEncryptionAtRestWithPlatformKey. Defaults toEncryptionAtRestWithPlatformKey.
- identity
VolumeGroup Identity 
- An identityblock as defined below. Specifies the Managed Identity which should be assigned to this Elastic SAN Volume Group.
- name string
- Specifies the name of this Elastic SAN Volume Group. Changing this forces a new resource to be created.
- networkRules VolumeGroup Network Rule[] 
- One or more network_ruleblocks as defined below.
- protocolType string
- Specifies the type of the storage target. The only possible value is Iscsi. Defaults toIscsi.
- elastic_san_ strid 
- Specifies the Elastic SAN ID within which this Elastic SAN Volume Group should exist. Changing this forces a new resource to be created.
- encryption
VolumeGroup Encryption Args 
- An - encryptionblock as defined below.- NOTE: The - encryptionblock can only be set when- encryption_typeis set to- EncryptionAtRestWithCustomerManagedKey.
- encryption_type str
- Specifies the type of the key used to encrypt the data of the disk. Possible values are EncryptionAtRestWithCustomerManagedKeyandEncryptionAtRestWithPlatformKey. Defaults toEncryptionAtRestWithPlatformKey.
- identity
VolumeGroup Identity Args 
- An identityblock as defined below. Specifies the Managed Identity which should be assigned to this Elastic SAN Volume Group.
- name str
- Specifies the name of this Elastic SAN Volume Group. Changing this forces a new resource to be created.
- network_rules Sequence[VolumeGroup Network Rule Args] 
- One or more network_ruleblocks as defined below.
- protocol_type str
- Specifies the type of the storage target. The only possible value is Iscsi. Defaults toIscsi.
- elasticSan StringId 
- Specifies the Elastic SAN ID within which this Elastic SAN Volume Group should exist. Changing this forces a new resource to be created.
- encryption Property Map
- An - encryptionblock as defined below.- NOTE: The - encryptionblock can only be set when- encryption_typeis set to- EncryptionAtRestWithCustomerManagedKey.
- encryptionType String
- Specifies the type of the key used to encrypt the data of the disk. Possible values are EncryptionAtRestWithCustomerManagedKeyandEncryptionAtRestWithPlatformKey. Defaults toEncryptionAtRestWithPlatformKey.
- identity Property Map
- An identityblock as defined below. Specifies the Managed Identity which should be assigned to this Elastic SAN Volume Group.
- name String
- Specifies the name of this Elastic SAN Volume Group. Changing this forces a new resource to be created.
- networkRules List<Property Map>
- One or more network_ruleblocks as defined below.
- protocolType String
- Specifies the type of the storage target. The only possible value is Iscsi. Defaults toIscsi.
Outputs
All input properties are implicitly available as output properties. Additionally, the VolumeGroup 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 VolumeGroup Resource
Get an existing VolumeGroup 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?: VolumeGroupState, opts?: CustomResourceOptions): VolumeGroup@staticmethod
def get(resource_name: str,
        id: str,
        opts: Optional[ResourceOptions] = None,
        elastic_san_id: Optional[str] = None,
        encryption: Optional[VolumeGroupEncryptionArgs] = None,
        encryption_type: Optional[str] = None,
        identity: Optional[VolumeGroupIdentityArgs] = None,
        name: Optional[str] = None,
        network_rules: Optional[Sequence[VolumeGroupNetworkRuleArgs]] = None,
        protocol_type: Optional[str] = None) -> VolumeGroupfunc GetVolumeGroup(ctx *Context, name string, id IDInput, state *VolumeGroupState, opts ...ResourceOption) (*VolumeGroup, error)public static VolumeGroup Get(string name, Input<string> id, VolumeGroupState? state, CustomResourceOptions? opts = null)public static VolumeGroup get(String name, Output<String> id, VolumeGroupState state, CustomResourceOptions options)resources:  _:    type: azure:elasticsan:VolumeGroup    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.
- ElasticSan stringId 
- Specifies the Elastic SAN ID within which this Elastic SAN Volume Group should exist. Changing this forces a new resource to be created.
- Encryption
VolumeGroup Encryption 
- An - encryptionblock as defined below.- NOTE: The - encryptionblock can only be set when- encryption_typeis set to- EncryptionAtRestWithCustomerManagedKey.
- EncryptionType string
- Specifies the type of the key used to encrypt the data of the disk. Possible values are EncryptionAtRestWithCustomerManagedKeyandEncryptionAtRestWithPlatformKey. Defaults toEncryptionAtRestWithPlatformKey.
- Identity
VolumeGroup Identity 
- An identityblock as defined below. Specifies the Managed Identity which should be assigned to this Elastic SAN Volume Group.
- Name string
- Specifies the name of this Elastic SAN Volume Group. Changing this forces a new resource to be created.
- NetworkRules List<VolumeGroup Network Rule> 
- One or more network_ruleblocks as defined below.
- ProtocolType string
- Specifies the type of the storage target. The only possible value is Iscsi. Defaults toIscsi.
- ElasticSan stringId 
- Specifies the Elastic SAN ID within which this Elastic SAN Volume Group should exist. Changing this forces a new resource to be created.
- Encryption
VolumeGroup Encryption Args 
- An - encryptionblock as defined below.- NOTE: The - encryptionblock can only be set when- encryption_typeis set to- EncryptionAtRestWithCustomerManagedKey.
- EncryptionType string
- Specifies the type of the key used to encrypt the data of the disk. Possible values are EncryptionAtRestWithCustomerManagedKeyandEncryptionAtRestWithPlatformKey. Defaults toEncryptionAtRestWithPlatformKey.
- Identity
VolumeGroup Identity Args 
- An identityblock as defined below. Specifies the Managed Identity which should be assigned to this Elastic SAN Volume Group.
- Name string
- Specifies the name of this Elastic SAN Volume Group. Changing this forces a new resource to be created.
- NetworkRules []VolumeGroup Network Rule Args 
- One or more network_ruleblocks as defined below.
- ProtocolType string
- Specifies the type of the storage target. The only possible value is Iscsi. Defaults toIscsi.
- elasticSan StringId 
- Specifies the Elastic SAN ID within which this Elastic SAN Volume Group should exist. Changing this forces a new resource to be created.
- encryption
VolumeGroup Encryption 
- An - encryptionblock as defined below.- NOTE: The - encryptionblock can only be set when- encryption_typeis set to- EncryptionAtRestWithCustomerManagedKey.
- encryptionType String
- Specifies the type of the key used to encrypt the data of the disk. Possible values are EncryptionAtRestWithCustomerManagedKeyandEncryptionAtRestWithPlatformKey. Defaults toEncryptionAtRestWithPlatformKey.
- identity
VolumeGroup Identity 
- An identityblock as defined below. Specifies the Managed Identity which should be assigned to this Elastic SAN Volume Group.
- name String
- Specifies the name of this Elastic SAN Volume Group. Changing this forces a new resource to be created.
- networkRules List<VolumeGroup Network Rule> 
- One or more network_ruleblocks as defined below.
- protocolType String
- Specifies the type of the storage target. The only possible value is Iscsi. Defaults toIscsi.
- elasticSan stringId 
- Specifies the Elastic SAN ID within which this Elastic SAN Volume Group should exist. Changing this forces a new resource to be created.
- encryption
VolumeGroup Encryption 
- An - encryptionblock as defined below.- NOTE: The - encryptionblock can only be set when- encryption_typeis set to- EncryptionAtRestWithCustomerManagedKey.
- encryptionType string
- Specifies the type of the key used to encrypt the data of the disk. Possible values are EncryptionAtRestWithCustomerManagedKeyandEncryptionAtRestWithPlatformKey. Defaults toEncryptionAtRestWithPlatformKey.
- identity
VolumeGroup Identity 
- An identityblock as defined below. Specifies the Managed Identity which should be assigned to this Elastic SAN Volume Group.
- name string
- Specifies the name of this Elastic SAN Volume Group. Changing this forces a new resource to be created.
- networkRules VolumeGroup Network Rule[] 
- One or more network_ruleblocks as defined below.
- protocolType string
- Specifies the type of the storage target. The only possible value is Iscsi. Defaults toIscsi.
- elastic_san_ strid 
- Specifies the Elastic SAN ID within which this Elastic SAN Volume Group should exist. Changing this forces a new resource to be created.
- encryption
VolumeGroup Encryption Args 
- An - encryptionblock as defined below.- NOTE: The - encryptionblock can only be set when- encryption_typeis set to- EncryptionAtRestWithCustomerManagedKey.
- encryption_type str
- Specifies the type of the key used to encrypt the data of the disk. Possible values are EncryptionAtRestWithCustomerManagedKeyandEncryptionAtRestWithPlatformKey. Defaults toEncryptionAtRestWithPlatformKey.
- identity
VolumeGroup Identity Args 
- An identityblock as defined below. Specifies the Managed Identity which should be assigned to this Elastic SAN Volume Group.
- name str
- Specifies the name of this Elastic SAN Volume Group. Changing this forces a new resource to be created.
- network_rules Sequence[VolumeGroup Network Rule Args] 
- One or more network_ruleblocks as defined below.
- protocol_type str
- Specifies the type of the storage target. The only possible value is Iscsi. Defaults toIscsi.
- elasticSan StringId 
- Specifies the Elastic SAN ID within which this Elastic SAN Volume Group should exist. Changing this forces a new resource to be created.
- encryption Property Map
- An - encryptionblock as defined below.- NOTE: The - encryptionblock can only be set when- encryption_typeis set to- EncryptionAtRestWithCustomerManagedKey.
- encryptionType String
- Specifies the type of the key used to encrypt the data of the disk. Possible values are EncryptionAtRestWithCustomerManagedKeyandEncryptionAtRestWithPlatformKey. Defaults toEncryptionAtRestWithPlatformKey.
- identity Property Map
- An identityblock as defined below. Specifies the Managed Identity which should be assigned to this Elastic SAN Volume Group.
- name String
- Specifies the name of this Elastic SAN Volume Group. Changing this forces a new resource to be created.
- networkRules List<Property Map>
- One or more network_ruleblocks as defined below.
- protocolType String
- Specifies the type of the storage target. The only possible value is Iscsi. Defaults toIscsi.
Supporting Types
VolumeGroupEncryption, VolumeGroupEncryptionArgs      
- KeyVault stringKey Id 
- The Key Vault key URI for Customer Managed Key encryption, which can be either a full URI or a versionless URI.
- CurrentVersioned stringKey Expiration Timestamp 
- The timestamp of the expiration time for the current version of the customer managed key.
- CurrentVersioned stringKey Id 
- The ID of the current versioned Key Vault Key in use.
- LastKey stringRotation Timestamp 
- The timestamp of the last rotation of the Key Vault Key.
- UserAssigned stringIdentity Id 
- The ID of the User Assigned Identity used by this Elastic SAN Volume Group.
- KeyVault stringKey Id 
- The Key Vault key URI for Customer Managed Key encryption, which can be either a full URI or a versionless URI.
- CurrentVersioned stringKey Expiration Timestamp 
- The timestamp of the expiration time for the current version of the customer managed key.
- CurrentVersioned stringKey Id 
- The ID of the current versioned Key Vault Key in use.
- LastKey stringRotation Timestamp 
- The timestamp of the last rotation of the Key Vault Key.
- UserAssigned stringIdentity Id 
- The ID of the User Assigned Identity used by this Elastic SAN Volume Group.
- keyVault StringKey Id 
- The Key Vault key URI for Customer Managed Key encryption, which can be either a full URI or a versionless URI.
- currentVersioned StringKey Expiration Timestamp 
- The timestamp of the expiration time for the current version of the customer managed key.
- currentVersioned StringKey Id 
- The ID of the current versioned Key Vault Key in use.
- lastKey StringRotation Timestamp 
- The timestamp of the last rotation of the Key Vault Key.
- userAssigned StringIdentity Id 
- The ID of the User Assigned Identity used by this Elastic SAN Volume Group.
- keyVault stringKey Id 
- The Key Vault key URI for Customer Managed Key encryption, which can be either a full URI or a versionless URI.
- currentVersioned stringKey Expiration Timestamp 
- The timestamp of the expiration time for the current version of the customer managed key.
- currentVersioned stringKey Id 
- The ID of the current versioned Key Vault Key in use.
- lastKey stringRotation Timestamp 
- The timestamp of the last rotation of the Key Vault Key.
- userAssigned stringIdentity Id 
- The ID of the User Assigned Identity used by this Elastic SAN Volume Group.
- key_vault_ strkey_ id 
- The Key Vault key URI for Customer Managed Key encryption, which can be either a full URI or a versionless URI.
- current_versioned_ strkey_ expiration_ timestamp 
- The timestamp of the expiration time for the current version of the customer managed key.
- current_versioned_ strkey_ id 
- The ID of the current versioned Key Vault Key in use.
- last_key_ strrotation_ timestamp 
- The timestamp of the last rotation of the Key Vault Key.
- user_assigned_ stridentity_ id 
- The ID of the User Assigned Identity used by this Elastic SAN Volume Group.
- keyVault StringKey Id 
- The Key Vault key URI for Customer Managed Key encryption, which can be either a full URI or a versionless URI.
- currentVersioned StringKey Expiration Timestamp 
- The timestamp of the expiration time for the current version of the customer managed key.
- currentVersioned StringKey Id 
- The ID of the current versioned Key Vault Key in use.
- lastKey StringRotation Timestamp 
- The timestamp of the last rotation of the Key Vault Key.
- userAssigned StringIdentity Id 
- The ID of the User Assigned Identity used by this Elastic SAN Volume Group.
VolumeGroupIdentity, VolumeGroupIdentityArgs      
- Type string
- Specifies the type of Managed Identity that should be assigned to this Elastic SAN Volume Group. Possible values are SystemAssignedandUserAssigned.
- IdentityIds List<string>
- A list of the User Assigned Identity IDs that should be assigned to this Elastic SAN Volume Group.
- PrincipalId string
- The Principal ID associated with the Managed Service Identity assigned to this Elastic SAN Volume Group.
- TenantId string
- The Tenant ID associated with this Managed Service Identity assigned to this Elastic SAN Volume Group.
- Type string
- Specifies the type of Managed Identity that should be assigned to this Elastic SAN Volume Group. Possible values are SystemAssignedandUserAssigned.
- IdentityIds []string
- A list of the User Assigned Identity IDs that should be assigned to this Elastic SAN Volume Group.
- PrincipalId string
- The Principal ID associated with the Managed Service Identity assigned to this Elastic SAN Volume Group.
- TenantId string
- The Tenant ID associated with this Managed Service Identity assigned to this Elastic SAN Volume Group.
- type String
- Specifies the type of Managed Identity that should be assigned to this Elastic SAN Volume Group. Possible values are SystemAssignedandUserAssigned.
- identityIds List<String>
- A list of the User Assigned Identity IDs that should be assigned to this Elastic SAN Volume Group.
- principalId String
- The Principal ID associated with the Managed Service Identity assigned to this Elastic SAN Volume Group.
- tenantId String
- The Tenant ID associated with this Managed Service Identity assigned to this Elastic SAN Volume Group.
- type string
- Specifies the type of Managed Identity that should be assigned to this Elastic SAN Volume Group. Possible values are SystemAssignedandUserAssigned.
- identityIds string[]
- A list of the User Assigned Identity IDs that should be assigned to this Elastic SAN Volume Group.
- principalId string
- The Principal ID associated with the Managed Service Identity assigned to this Elastic SAN Volume Group.
- tenantId string
- The Tenant ID associated with this Managed Service Identity assigned to this Elastic SAN Volume Group.
- type str
- Specifies the type of Managed Identity that should be assigned to this Elastic SAN Volume Group. Possible values are SystemAssignedandUserAssigned.
- identity_ids Sequence[str]
- A list of the User Assigned Identity IDs that should be assigned to this Elastic SAN Volume Group.
- principal_id str
- The Principal ID associated with the Managed Service Identity assigned to this Elastic SAN Volume Group.
- tenant_id str
- The Tenant ID associated with this Managed Service Identity assigned to this Elastic SAN Volume Group.
- type String
- Specifies the type of Managed Identity that should be assigned to this Elastic SAN Volume Group. Possible values are SystemAssignedandUserAssigned.
- identityIds List<String>
- A list of the User Assigned Identity IDs that should be assigned to this Elastic SAN Volume Group.
- principalId String
- The Principal ID associated with the Managed Service Identity assigned to this Elastic SAN Volume Group.
- tenantId String
- The Tenant ID associated with this Managed Service Identity assigned to this Elastic SAN Volume Group.
VolumeGroupNetworkRule, VolumeGroupNetworkRuleArgs        
Import
An existing Elastic SAN Volume Group can be imported into Pulumi using the resource id, e.g.
$ pulumi import azure:elasticsan/volumeGroup:VolumeGroup example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rg1/providers/Microsoft.ElasticSan/elasticSans/esan1/volumeGroups/vg1
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.