1. Packages
  2. Azure Native
  3. API Docs
  4. compute
  5. Disk
This is the latest version of Azure Native. Use the Azure Native v1 docs if using the v1 version of this package.
Azure Native v2.66.0 published on Wednesday, Oct 9, 2024 by Pulumi

azure-native.compute.Disk

Explore with Pulumi AI

azure-native logo
This is the latest version of Azure Native. Use the Azure Native v1 docs if using the v1 version of this package.
Azure Native v2.66.0 published on Wednesday, Oct 9, 2024 by Pulumi

    Disk resource. Azure REST API version: 2022-07-02. Prior API version in Azure Native 1.x: 2020-12-01.

    Other available API versions: 2016-04-30-preview, 2018-06-01, 2019-07-01, 2023-01-02, 2023-04-02, 2023-10-02, 2024-03-02.

    Example Usage

    Create a confidential VM supported disk encrypted with customer managed key

    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using AzureNative = Pulumi.AzureNative;
    
    return await Deployment.RunAsync(() => 
    {
        var disk = new AzureNative.Compute.Disk("disk", new()
        {
            CreationData = new AzureNative.Compute.Inputs.CreationDataArgs
            {
                CreateOption = AzureNative.Compute.DiskCreateOption.FromImage,
                ImageReference = new AzureNative.Compute.Inputs.ImageDiskReferenceArgs
                {
                    Id = "/Subscriptions/{subscriptionId}/Providers/Microsoft.Compute/Locations/westus/Publishers/{publisher}/ArtifactTypes/VMImage/Offers/{offer}/Skus/{sku}/Versions/1.0.0",
                },
            },
            DiskName = "myDisk",
            Location = "West US",
            OsType = AzureNative.Compute.OperatingSystemTypes.Windows,
            ResourceGroupName = "myResourceGroup",
            SecurityProfile = new AzureNative.Compute.Inputs.DiskSecurityProfileArgs
            {
                SecureVMDiskEncryptionSetId = "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSets/{diskEncryptionSetName}",
                SecurityType = AzureNative.Compute.DiskSecurityTypes.ConfidentialVM_DiskEncryptedWithCustomerKey,
            },
        });
    
    });
    
    package main
    
    import (
    	compute "github.com/pulumi/pulumi-azure-native-sdk/compute/v2"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		_, err := compute.NewDisk(ctx, "disk", &compute.DiskArgs{
    			CreationData: &compute.CreationDataArgs{
    				CreateOption: pulumi.String(compute.DiskCreateOptionFromImage),
    				ImageReference: &compute.ImageDiskReferenceArgs{
    					Id: pulumi.String("/Subscriptions/{subscriptionId}/Providers/Microsoft.Compute/Locations/westus/Publishers/{publisher}/ArtifactTypes/VMImage/Offers/{offer}/Skus/{sku}/Versions/1.0.0"),
    				},
    			},
    			DiskName:          pulumi.String("myDisk"),
    			Location:          pulumi.String("West US"),
    			OsType:            compute.OperatingSystemTypesWindows,
    			ResourceGroupName: pulumi.String("myResourceGroup"),
    			SecurityProfile: &compute.DiskSecurityProfileArgs{
    				SecureVMDiskEncryptionSetId: pulumi.String("/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSets/{diskEncryptionSetName}"),
    				SecurityType:                pulumi.String(compute.DiskSecurityTypes_ConfidentialVM_DiskEncryptedWithCustomerKey),
    			},
    		})
    		if err != nil {
    			return err
    		}
    		return nil
    	})
    }
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import com.pulumi.azurenative.compute.Disk;
    import com.pulumi.azurenative.compute.DiskArgs;
    import com.pulumi.azurenative.compute.inputs.CreationDataArgs;
    import com.pulumi.azurenative.compute.inputs.ImageDiskReferenceArgs;
    import com.pulumi.azurenative.compute.inputs.DiskSecurityProfileArgs;
    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 disk = new Disk("disk", DiskArgs.builder()
                .creationData(CreationDataArgs.builder()
                    .createOption("FromImage")
                    .imageReference(ImageDiskReferenceArgs.builder()
                        .id("/Subscriptions/{subscriptionId}/Providers/Microsoft.Compute/Locations/westus/Publishers/{publisher}/ArtifactTypes/VMImage/Offers/{offer}/Skus/{sku}/Versions/1.0.0")
                        .build())
                    .build())
                .diskName("myDisk")
                .location("West US")
                .osType("Windows")
                .resourceGroupName("myResourceGroup")
                .securityProfile(DiskSecurityProfileArgs.builder()
                    .secureVMDiskEncryptionSetId("/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSets/{diskEncryptionSetName}")
                    .securityType("ConfidentialVM_DiskEncryptedWithCustomerKey")
                    .build())
                .build());
    
        }
    }
    
    import pulumi
    import pulumi_azure_native as azure_native
    
    disk = azure_native.compute.Disk("disk",
        creation_data={
            "create_option": azure_native.compute.DiskCreateOption.FROM_IMAGE,
            "image_reference": {
                "id": "/Subscriptions/{subscriptionId}/Providers/Microsoft.Compute/Locations/westus/Publishers/{publisher}/ArtifactTypes/VMImage/Offers/{offer}/Skus/{sku}/Versions/1.0.0",
            },
        },
        disk_name="myDisk",
        location="West US",
        os_type=azure_native.compute.OperatingSystemTypes.WINDOWS,
        resource_group_name="myResourceGroup",
        security_profile={
            "secure_vm_disk_encryption_set_id": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSets/{diskEncryptionSetName}",
            "security_type": azure_native.compute.DiskSecurityTypes.CONFIDENTIAL_V_M_DISK_ENCRYPTED_WITH_CUSTOMER_KEY,
        })
    
    import * as pulumi from "@pulumi/pulumi";
    import * as azure_native from "@pulumi/azure-native";
    
    const disk = new azure_native.compute.Disk("disk", {
        creationData: {
            createOption: azure_native.compute.DiskCreateOption.FromImage,
            imageReference: {
                id: "/Subscriptions/{subscriptionId}/Providers/Microsoft.Compute/Locations/westus/Publishers/{publisher}/ArtifactTypes/VMImage/Offers/{offer}/Skus/{sku}/Versions/1.0.0",
            },
        },
        diskName: "myDisk",
        location: "West US",
        osType: azure_native.compute.OperatingSystemTypes.Windows,
        resourceGroupName: "myResourceGroup",
        securityProfile: {
            secureVMDiskEncryptionSetId: "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSets/{diskEncryptionSetName}",
            securityType: azure_native.compute.DiskSecurityTypes.ConfidentialVM_DiskEncryptedWithCustomerKey,
        },
    });
    
    resources:
      disk:
        type: azure-native:compute:Disk
        properties:
          creationData:
            createOption: FromImage
            imageReference:
              id: /Subscriptions/{subscriptionId}/Providers/Microsoft.Compute/Locations/westus/Publishers/{publisher}/ArtifactTypes/VMImage/Offers/{offer}/Skus/{sku}/Versions/1.0.0
          diskName: myDisk
          location: West US
          osType: Windows
          resourceGroupName: myResourceGroup
          securityProfile:
            secureVMDiskEncryptionSetId: /subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSets/{diskEncryptionSetName}
            securityType: ConfidentialVM_DiskEncryptedWithCustomerKey
    

    Create a managed disk and associate with disk access resource.

    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using AzureNative = Pulumi.AzureNative;
    
    return await Deployment.RunAsync(() => 
    {
        var disk = new AzureNative.Compute.Disk("disk", new()
        {
            CreationData = new AzureNative.Compute.Inputs.CreationDataArgs
            {
                CreateOption = AzureNative.Compute.DiskCreateOption.Empty,
            },
            DiskAccessId = "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskAccesses/{existing-diskAccess-name}",
            DiskName = "myDisk",
            DiskSizeGB = 200,
            Location = "West US",
            NetworkAccessPolicy = AzureNative.Compute.NetworkAccessPolicy.AllowPrivate,
            ResourceGroupName = "myResourceGroup",
        });
    
    });
    
    package main
    
    import (
    	compute "github.com/pulumi/pulumi-azure-native-sdk/compute/v2"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		_, err := compute.NewDisk(ctx, "disk", &compute.DiskArgs{
    			CreationData: &compute.CreationDataArgs{
    				CreateOption: pulumi.String(compute.DiskCreateOptionEmpty),
    			},
    			DiskAccessId:        pulumi.String("/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskAccesses/{existing-diskAccess-name}"),
    			DiskName:            pulumi.String("myDisk"),
    			DiskSizeGB:          pulumi.Int(200),
    			Location:            pulumi.String("West US"),
    			NetworkAccessPolicy: pulumi.String(compute.NetworkAccessPolicyAllowPrivate),
    			ResourceGroupName:   pulumi.String("myResourceGroup"),
    		})
    		if err != nil {
    			return err
    		}
    		return nil
    	})
    }
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import com.pulumi.azurenative.compute.Disk;
    import com.pulumi.azurenative.compute.DiskArgs;
    import com.pulumi.azurenative.compute.inputs.CreationDataArgs;
    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 disk = new Disk("disk", DiskArgs.builder()
                .creationData(CreationDataArgs.builder()
                    .createOption("Empty")
                    .build())
                .diskAccessId("/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskAccesses/{existing-diskAccess-name}")
                .diskName("myDisk")
                .diskSizeGB(200)
                .location("West US")
                .networkAccessPolicy("AllowPrivate")
                .resourceGroupName("myResourceGroup")
                .build());
    
        }
    }
    
    import pulumi
    import pulumi_azure_native as azure_native
    
    disk = azure_native.compute.Disk("disk",
        creation_data={
            "create_option": azure_native.compute.DiskCreateOption.EMPTY,
        },
        disk_access_id="/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskAccesses/{existing-diskAccess-name}",
        disk_name="myDisk",
        disk_size_gb=200,
        location="West US",
        network_access_policy=azure_native.compute.NetworkAccessPolicy.ALLOW_PRIVATE,
        resource_group_name="myResourceGroup")
    
    import * as pulumi from "@pulumi/pulumi";
    import * as azure_native from "@pulumi/azure-native";
    
    const disk = new azure_native.compute.Disk("disk", {
        creationData: {
            createOption: azure_native.compute.DiskCreateOption.Empty,
        },
        diskAccessId: "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskAccesses/{existing-diskAccess-name}",
        diskName: "myDisk",
        diskSizeGB: 200,
        location: "West US",
        networkAccessPolicy: azure_native.compute.NetworkAccessPolicy.AllowPrivate,
        resourceGroupName: "myResourceGroup",
    });
    
    resources:
      disk:
        type: azure-native:compute:Disk
        properties:
          creationData:
            createOption: Empty
          diskAccessId: /subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskAccesses/{existing-diskAccess-name}
          diskName: myDisk
          diskSizeGB: 200
          location: West US
          networkAccessPolicy: AllowPrivate
          resourceGroupName: myResourceGroup
    

    Create a managed disk and associate with disk encryption set.

    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using AzureNative = Pulumi.AzureNative;
    
    return await Deployment.RunAsync(() => 
    {
        var disk = new AzureNative.Compute.Disk("disk", new()
        {
            CreationData = new AzureNative.Compute.Inputs.CreationDataArgs
            {
                CreateOption = AzureNative.Compute.DiskCreateOption.Empty,
            },
            DiskName = "myDisk",
            DiskSizeGB = 200,
            Encryption = new AzureNative.Compute.Inputs.EncryptionArgs
            {
                DiskEncryptionSetId = "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSets/{existing-diskEncryptionSet-name}",
            },
            Location = "West US",
            ResourceGroupName = "myResourceGroup",
        });
    
    });
    
    package main
    
    import (
    	compute "github.com/pulumi/pulumi-azure-native-sdk/compute/v2"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		_, err := compute.NewDisk(ctx, "disk", &compute.DiskArgs{
    			CreationData: &compute.CreationDataArgs{
    				CreateOption: pulumi.String(compute.DiskCreateOptionEmpty),
    			},
    			DiskName:   pulumi.String("myDisk"),
    			DiskSizeGB: pulumi.Int(200),
    			Encryption: &compute.EncryptionArgs{
    				DiskEncryptionSetId: pulumi.String("/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSets/{existing-diskEncryptionSet-name}"),
    			},
    			Location:          pulumi.String("West US"),
    			ResourceGroupName: pulumi.String("myResourceGroup"),
    		})
    		if err != nil {
    			return err
    		}
    		return nil
    	})
    }
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import com.pulumi.azurenative.compute.Disk;
    import com.pulumi.azurenative.compute.DiskArgs;
    import com.pulumi.azurenative.compute.inputs.CreationDataArgs;
    import com.pulumi.azurenative.compute.inputs.EncryptionArgs;
    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 disk = new Disk("disk", DiskArgs.builder()
                .creationData(CreationDataArgs.builder()
                    .createOption("Empty")
                    .build())
                .diskName("myDisk")
                .diskSizeGB(200)
                .encryption(EncryptionArgs.builder()
                    .diskEncryptionSetId("/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSets/{existing-diskEncryptionSet-name}")
                    .build())
                .location("West US")
                .resourceGroupName("myResourceGroup")
                .build());
    
        }
    }
    
    import pulumi
    import pulumi_azure_native as azure_native
    
    disk = azure_native.compute.Disk("disk",
        creation_data={
            "create_option": azure_native.compute.DiskCreateOption.EMPTY,
        },
        disk_name="myDisk",
        disk_size_gb=200,
        encryption={
            "disk_encryption_set_id": "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSets/{existing-diskEncryptionSet-name}",
        },
        location="West US",
        resource_group_name="myResourceGroup")
    
    import * as pulumi from "@pulumi/pulumi";
    import * as azure_native from "@pulumi/azure-native";
    
    const disk = new azure_native.compute.Disk("disk", {
        creationData: {
            createOption: azure_native.compute.DiskCreateOption.Empty,
        },
        diskName: "myDisk",
        diskSizeGB: 200,
        encryption: {
            diskEncryptionSetId: "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSets/{existing-diskEncryptionSet-name}",
        },
        location: "West US",
        resourceGroupName: "myResourceGroup",
    });
    
    resources:
      disk:
        type: azure-native:compute:Disk
        properties:
          creationData:
            createOption: Empty
          diskName: myDisk
          diskSizeGB: 200
          encryption:
            diskEncryptionSetId: /subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSets/{existing-diskEncryptionSet-name}
          location: West US
          resourceGroupName: myResourceGroup
    

    Create a managed disk by copying a snapshot.

    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using AzureNative = Pulumi.AzureNative;
    
    return await Deployment.RunAsync(() => 
    {
        var disk = new AzureNative.Compute.Disk("disk", new()
        {
            CreationData = new AzureNative.Compute.Inputs.CreationDataArgs
            {
                CreateOption = AzureNative.Compute.DiskCreateOption.Copy,
                SourceResourceId = "subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/snapshots/mySnapshot",
            },
            DiskName = "myDisk",
            Location = "West US",
            ResourceGroupName = "myResourceGroup",
        });
    
    });
    
    package main
    
    import (
    	compute "github.com/pulumi/pulumi-azure-native-sdk/compute/v2"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		_, err := compute.NewDisk(ctx, "disk", &compute.DiskArgs{
    			CreationData: &compute.CreationDataArgs{
    				CreateOption:     pulumi.String(compute.DiskCreateOptionCopy),
    				SourceResourceId: pulumi.String("subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/snapshots/mySnapshot"),
    			},
    			DiskName:          pulumi.String("myDisk"),
    			Location:          pulumi.String("West US"),
    			ResourceGroupName: pulumi.String("myResourceGroup"),
    		})
    		if err != nil {
    			return err
    		}
    		return nil
    	})
    }
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import com.pulumi.azurenative.compute.Disk;
    import com.pulumi.azurenative.compute.DiskArgs;
    import com.pulumi.azurenative.compute.inputs.CreationDataArgs;
    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 disk = new Disk("disk", DiskArgs.builder()
                .creationData(CreationDataArgs.builder()
                    .createOption("Copy")
                    .sourceResourceId("subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/snapshots/mySnapshot")
                    .build())
                .diskName("myDisk")
                .location("West US")
                .resourceGroupName("myResourceGroup")
                .build());
    
        }
    }
    
    import pulumi
    import pulumi_azure_native as azure_native
    
    disk = azure_native.compute.Disk("disk",
        creation_data={
            "create_option": azure_native.compute.DiskCreateOption.COPY,
            "source_resource_id": "subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/snapshots/mySnapshot",
        },
        disk_name="myDisk",
        location="West US",
        resource_group_name="myResourceGroup")
    
    import * as pulumi from "@pulumi/pulumi";
    import * as azure_native from "@pulumi/azure-native";
    
    const disk = new azure_native.compute.Disk("disk", {
        creationData: {
            createOption: azure_native.compute.DiskCreateOption.Copy,
            sourceResourceId: "subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/snapshots/mySnapshot",
        },
        diskName: "myDisk",
        location: "West US",
        resourceGroupName: "myResourceGroup",
    });
    
    resources:
      disk:
        type: azure-native:compute:Disk
        properties:
          creationData:
            createOption: Copy
            sourceResourceId: subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/snapshots/mySnapshot
          diskName: myDisk
          location: West US
          resourceGroupName: myResourceGroup
    

    Create a managed disk by importing an unmanaged blob from a different subscription.

    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using AzureNative = Pulumi.AzureNative;
    
    return await Deployment.RunAsync(() => 
    {
        var disk = new AzureNative.Compute.Disk("disk", new()
        {
            CreationData = new AzureNative.Compute.Inputs.CreationDataArgs
            {
                CreateOption = AzureNative.Compute.DiskCreateOption.Import,
                SourceUri = "https://mystorageaccount.blob.core.windows.net/osimages/osimage.vhd",
                StorageAccountId = "subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Storage/storageAccounts/myStorageAccount",
            },
            DiskName = "myDisk",
            Location = "West US",
            ResourceGroupName = "myResourceGroup",
        });
    
    });
    
    package main
    
    import (
    	compute "github.com/pulumi/pulumi-azure-native-sdk/compute/v2"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		_, err := compute.NewDisk(ctx, "disk", &compute.DiskArgs{
    			CreationData: &compute.CreationDataArgs{
    				CreateOption:     pulumi.String(compute.DiskCreateOptionImport),
    				SourceUri:        pulumi.String("https://mystorageaccount.blob.core.windows.net/osimages/osimage.vhd"),
    				StorageAccountId: pulumi.String("subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Storage/storageAccounts/myStorageAccount"),
    			},
    			DiskName:          pulumi.String("myDisk"),
    			Location:          pulumi.String("West US"),
    			ResourceGroupName: pulumi.String("myResourceGroup"),
    		})
    		if err != nil {
    			return err
    		}
    		return nil
    	})
    }
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import com.pulumi.azurenative.compute.Disk;
    import com.pulumi.azurenative.compute.DiskArgs;
    import com.pulumi.azurenative.compute.inputs.CreationDataArgs;
    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 disk = new Disk("disk", DiskArgs.builder()
                .creationData(CreationDataArgs.builder()
                    .createOption("Import")
                    .sourceUri("https://mystorageaccount.blob.core.windows.net/osimages/osimage.vhd")
                    .storageAccountId("subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Storage/storageAccounts/myStorageAccount")
                    .build())
                .diskName("myDisk")
                .location("West US")
                .resourceGroupName("myResourceGroup")
                .build());
    
        }
    }
    
    import pulumi
    import pulumi_azure_native as azure_native
    
    disk = azure_native.compute.Disk("disk",
        creation_data={
            "create_option": azure_native.compute.DiskCreateOption.IMPORT_,
            "source_uri": "https://mystorageaccount.blob.core.windows.net/osimages/osimage.vhd",
            "storage_account_id": "subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Storage/storageAccounts/myStorageAccount",
        },
        disk_name="myDisk",
        location="West US",
        resource_group_name="myResourceGroup")
    
    import * as pulumi from "@pulumi/pulumi";
    import * as azure_native from "@pulumi/azure-native";
    
    const disk = new azure_native.compute.Disk("disk", {
        creationData: {
            createOption: azure_native.compute.DiskCreateOption.Import,
            sourceUri: "https://mystorageaccount.blob.core.windows.net/osimages/osimage.vhd",
            storageAccountId: "subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Storage/storageAccounts/myStorageAccount",
        },
        diskName: "myDisk",
        location: "West US",
        resourceGroupName: "myResourceGroup",
    });
    
    resources:
      disk:
        type: azure-native:compute:Disk
        properties:
          creationData:
            createOption: Import
            sourceUri: https://mystorageaccount.blob.core.windows.net/osimages/osimage.vhd
            storageAccountId: subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Storage/storageAccounts/myStorageAccount
          diskName: myDisk
          location: West US
          resourceGroupName: myResourceGroup
    

    Create a managed disk by importing an unmanaged blob from the same subscription.

    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using AzureNative = Pulumi.AzureNative;
    
    return await Deployment.RunAsync(() => 
    {
        var disk = new AzureNative.Compute.Disk("disk", new()
        {
            CreationData = new AzureNative.Compute.Inputs.CreationDataArgs
            {
                CreateOption = AzureNative.Compute.DiskCreateOption.Import,
                SourceUri = "https://mystorageaccount.blob.core.windows.net/osimages/osimage.vhd",
            },
            DiskName = "myDisk",
            Location = "West US",
            ResourceGroupName = "myResourceGroup",
        });
    
    });
    
    package main
    
    import (
    	compute "github.com/pulumi/pulumi-azure-native-sdk/compute/v2"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		_, err := compute.NewDisk(ctx, "disk", &compute.DiskArgs{
    			CreationData: &compute.CreationDataArgs{
    				CreateOption: pulumi.String(compute.DiskCreateOptionImport),
    				SourceUri:    pulumi.String("https://mystorageaccount.blob.core.windows.net/osimages/osimage.vhd"),
    			},
    			DiskName:          pulumi.String("myDisk"),
    			Location:          pulumi.String("West US"),
    			ResourceGroupName: pulumi.String("myResourceGroup"),
    		})
    		if err != nil {
    			return err
    		}
    		return nil
    	})
    }
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import com.pulumi.azurenative.compute.Disk;
    import com.pulumi.azurenative.compute.DiskArgs;
    import com.pulumi.azurenative.compute.inputs.CreationDataArgs;
    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 disk = new Disk("disk", DiskArgs.builder()
                .creationData(CreationDataArgs.builder()
                    .createOption("Import")
                    .sourceUri("https://mystorageaccount.blob.core.windows.net/osimages/osimage.vhd")
                    .build())
                .diskName("myDisk")
                .location("West US")
                .resourceGroupName("myResourceGroup")
                .build());
    
        }
    }
    
    import pulumi
    import pulumi_azure_native as azure_native
    
    disk = azure_native.compute.Disk("disk",
        creation_data={
            "create_option": azure_native.compute.DiskCreateOption.IMPORT_,
            "source_uri": "https://mystorageaccount.blob.core.windows.net/osimages/osimage.vhd",
        },
        disk_name="myDisk",
        location="West US",
        resource_group_name="myResourceGroup")
    
    import * as pulumi from "@pulumi/pulumi";
    import * as azure_native from "@pulumi/azure-native";
    
    const disk = new azure_native.compute.Disk("disk", {
        creationData: {
            createOption: azure_native.compute.DiskCreateOption.Import,
            sourceUri: "https://mystorageaccount.blob.core.windows.net/osimages/osimage.vhd",
        },
        diskName: "myDisk",
        location: "West US",
        resourceGroupName: "myResourceGroup",
    });
    
    resources:
      disk:
        type: azure-native:compute:Disk
        properties:
          creationData:
            createOption: Import
            sourceUri: https://mystorageaccount.blob.core.windows.net/osimages/osimage.vhd
          diskName: myDisk
          location: West US
          resourceGroupName: myResourceGroup
    

    Create a managed disk from ImportSecure create option

    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using AzureNative = Pulumi.AzureNative;
    
    return await Deployment.RunAsync(() => 
    {
        var disk = new AzureNative.Compute.Disk("disk", new()
        {
            CreationData = new AzureNative.Compute.Inputs.CreationDataArgs
            {
                CreateOption = AzureNative.Compute.DiskCreateOption.ImportSecure,
                SecurityDataUri = "https://mystorageaccount.blob.core.windows.net/osimages/vmgs.vhd",
                SourceUri = "https://mystorageaccount.blob.core.windows.net/osimages/osimage.vhd",
                StorageAccountId = "subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Storage/storageAccounts/myStorageAccount",
            },
            DiskName = "myDisk",
            Location = "West US",
            OsType = AzureNative.Compute.OperatingSystemTypes.Windows,
            ResourceGroupName = "myResourceGroup",
            SecurityProfile = new AzureNative.Compute.Inputs.DiskSecurityProfileArgs
            {
                SecurityType = AzureNative.Compute.DiskSecurityTypes.ConfidentialVM_VMGuestStateOnlyEncryptedWithPlatformKey,
            },
        });
    
    });
    
    package main
    
    import (
    	compute "github.com/pulumi/pulumi-azure-native-sdk/compute/v2"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		_, err := compute.NewDisk(ctx, "disk", &compute.DiskArgs{
    			CreationData: &compute.CreationDataArgs{
    				CreateOption:     pulumi.String(compute.DiskCreateOptionImportSecure),
    				SecurityDataUri:  pulumi.String("https://mystorageaccount.blob.core.windows.net/osimages/vmgs.vhd"),
    				SourceUri:        pulumi.String("https://mystorageaccount.blob.core.windows.net/osimages/osimage.vhd"),
    				StorageAccountId: pulumi.String("subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Storage/storageAccounts/myStorageAccount"),
    			},
    			DiskName:          pulumi.String("myDisk"),
    			Location:          pulumi.String("West US"),
    			OsType:            compute.OperatingSystemTypesWindows,
    			ResourceGroupName: pulumi.String("myResourceGroup"),
    			SecurityProfile: &compute.DiskSecurityProfileArgs{
    				SecurityType: pulumi.String(compute.DiskSecurityTypes_ConfidentialVM_VMGuestStateOnlyEncryptedWithPlatformKey),
    			},
    		})
    		if err != nil {
    			return err
    		}
    		return nil
    	})
    }
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import com.pulumi.azurenative.compute.Disk;
    import com.pulumi.azurenative.compute.DiskArgs;
    import com.pulumi.azurenative.compute.inputs.CreationDataArgs;
    import com.pulumi.azurenative.compute.inputs.DiskSecurityProfileArgs;
    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 disk = new Disk("disk", DiskArgs.builder()
                .creationData(CreationDataArgs.builder()
                    .createOption("ImportSecure")
                    .securityDataUri("https://mystorageaccount.blob.core.windows.net/osimages/vmgs.vhd")
                    .sourceUri("https://mystorageaccount.blob.core.windows.net/osimages/osimage.vhd")
                    .storageAccountId("subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Storage/storageAccounts/myStorageAccount")
                    .build())
                .diskName("myDisk")
                .location("West US")
                .osType("Windows")
                .resourceGroupName("myResourceGroup")
                .securityProfile(DiskSecurityProfileArgs.builder()
                    .securityType("ConfidentialVM_VMGuestStateOnlyEncryptedWithPlatformKey")
                    .build())
                .build());
    
        }
    }
    
    import pulumi
    import pulumi_azure_native as azure_native
    
    disk = azure_native.compute.Disk("disk",
        creation_data={
            "create_option": azure_native.compute.DiskCreateOption.IMPORT_SECURE,
            "security_data_uri": "https://mystorageaccount.blob.core.windows.net/osimages/vmgs.vhd",
            "source_uri": "https://mystorageaccount.blob.core.windows.net/osimages/osimage.vhd",
            "storage_account_id": "subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Storage/storageAccounts/myStorageAccount",
        },
        disk_name="myDisk",
        location="West US",
        os_type=azure_native.compute.OperatingSystemTypes.WINDOWS,
        resource_group_name="myResourceGroup",
        security_profile={
            "security_type": azure_native.compute.DiskSecurityTypes.CONFIDENTIAL_V_M_VM_GUEST_STATE_ONLY_ENCRYPTED_WITH_PLATFORM_KEY,
        })
    
    import * as pulumi from "@pulumi/pulumi";
    import * as azure_native from "@pulumi/azure-native";
    
    const disk = new azure_native.compute.Disk("disk", {
        creationData: {
            createOption: azure_native.compute.DiskCreateOption.ImportSecure,
            securityDataUri: "https://mystorageaccount.blob.core.windows.net/osimages/vmgs.vhd",
            sourceUri: "https://mystorageaccount.blob.core.windows.net/osimages/osimage.vhd",
            storageAccountId: "subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Storage/storageAccounts/myStorageAccount",
        },
        diskName: "myDisk",
        location: "West US",
        osType: azure_native.compute.OperatingSystemTypes.Windows,
        resourceGroupName: "myResourceGroup",
        securityProfile: {
            securityType: azure_native.compute.DiskSecurityTypes.ConfidentialVM_VMGuestStateOnlyEncryptedWithPlatformKey,
        },
    });
    
    resources:
      disk:
        type: azure-native:compute:Disk
        properties:
          creationData:
            createOption: ImportSecure
            securityDataUri: https://mystorageaccount.blob.core.windows.net/osimages/vmgs.vhd
            sourceUri: https://mystorageaccount.blob.core.windows.net/osimages/osimage.vhd
            storageAccountId: subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Storage/storageAccounts/myStorageAccount
          diskName: myDisk
          location: West US
          osType: Windows
          resourceGroupName: myResourceGroup
          securityProfile:
            securityType: ConfidentialVM_VMGuestStateOnlyEncryptedWithPlatformKey
    

    Create a managed disk from UploadPreparedSecure create option

    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using AzureNative = Pulumi.AzureNative;
    
    return await Deployment.RunAsync(() => 
    {
        var disk = new AzureNative.Compute.Disk("disk", new()
        {
            CreationData = new AzureNative.Compute.Inputs.CreationDataArgs
            {
                CreateOption = AzureNative.Compute.DiskCreateOption.UploadPreparedSecure,
                UploadSizeBytes = 10737418752,
            },
            DiskName = "myDisk",
            Location = "West US",
            OsType = AzureNative.Compute.OperatingSystemTypes.Windows,
            ResourceGroupName = "myResourceGroup",
            SecurityProfile = new AzureNative.Compute.Inputs.DiskSecurityProfileArgs
            {
                SecurityType = AzureNative.Compute.DiskSecurityTypes.TrustedLaunch,
            },
        });
    
    });
    
    package main
    
    import (
    	compute "github.com/pulumi/pulumi-azure-native-sdk/compute/v2"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		_, err := compute.NewDisk(ctx, "disk", &compute.DiskArgs{
    			CreationData: &compute.CreationDataArgs{
    				CreateOption:    pulumi.String(compute.DiskCreateOptionUploadPreparedSecure),
    				UploadSizeBytes: pulumi.Float64(10737418752),
    			},
    			DiskName:          pulumi.String("myDisk"),
    			Location:          pulumi.String("West US"),
    			OsType:            compute.OperatingSystemTypesWindows,
    			ResourceGroupName: pulumi.String("myResourceGroup"),
    			SecurityProfile: &compute.DiskSecurityProfileArgs{
    				SecurityType: pulumi.String(compute.DiskSecurityTypesTrustedLaunch),
    			},
    		})
    		if err != nil {
    			return err
    		}
    		return nil
    	})
    }
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import com.pulumi.azurenative.compute.Disk;
    import com.pulumi.azurenative.compute.DiskArgs;
    import com.pulumi.azurenative.compute.inputs.CreationDataArgs;
    import com.pulumi.azurenative.compute.inputs.DiskSecurityProfileArgs;
    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 disk = new Disk("disk", DiskArgs.builder()
                .creationData(CreationDataArgs.builder()
                    .createOption("UploadPreparedSecure")
                    .uploadSizeBytes(10737418752)
                    .build())
                .diskName("myDisk")
                .location("West US")
                .osType("Windows")
                .resourceGroupName("myResourceGroup")
                .securityProfile(DiskSecurityProfileArgs.builder()
                    .securityType("TrustedLaunch")
                    .build())
                .build());
    
        }
    }
    
    import pulumi
    import pulumi_azure_native as azure_native
    
    disk = azure_native.compute.Disk("disk",
        creation_data={
            "create_option": azure_native.compute.DiskCreateOption.UPLOAD_PREPARED_SECURE,
            "upload_size_bytes": 10737418752,
        },
        disk_name="myDisk",
        location="West US",
        os_type=azure_native.compute.OperatingSystemTypes.WINDOWS,
        resource_group_name="myResourceGroup",
        security_profile={
            "security_type": azure_native.compute.DiskSecurityTypes.TRUSTED_LAUNCH,
        })
    
    import * as pulumi from "@pulumi/pulumi";
    import * as azure_native from "@pulumi/azure-native";
    
    const disk = new azure_native.compute.Disk("disk", {
        creationData: {
            createOption: azure_native.compute.DiskCreateOption.UploadPreparedSecure,
            uploadSizeBytes: 10737418752,
        },
        diskName: "myDisk",
        location: "West US",
        osType: azure_native.compute.OperatingSystemTypes.Windows,
        resourceGroupName: "myResourceGroup",
        securityProfile: {
            securityType: azure_native.compute.DiskSecurityTypes.TrustedLaunch,
        },
    });
    
    resources:
      disk:
        type: azure-native:compute:Disk
        properties:
          creationData:
            createOption: UploadPreparedSecure
            uploadSizeBytes: 1.0737418752e+10
          diskName: myDisk
          location: West US
          osType: Windows
          resourceGroupName: myResourceGroup
          securityProfile:
            securityType: TrustedLaunch
    

    Create a managed disk from a platform image.

    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using AzureNative = Pulumi.AzureNative;
    
    return await Deployment.RunAsync(() => 
    {
        var disk = new AzureNative.Compute.Disk("disk", new()
        {
            CreationData = new AzureNative.Compute.Inputs.CreationDataArgs
            {
                CreateOption = AzureNative.Compute.DiskCreateOption.FromImage,
                ImageReference = new AzureNative.Compute.Inputs.ImageDiskReferenceArgs
                {
                    Id = "/Subscriptions/{subscriptionId}/Providers/Microsoft.Compute/Locations/westus/Publishers/{publisher}/ArtifactTypes/VMImage/Offers/{offer}/Skus/{sku}/Versions/1.0.0",
                },
            },
            DiskName = "myDisk",
            Location = "West US",
            OsType = AzureNative.Compute.OperatingSystemTypes.Windows,
            ResourceGroupName = "myResourceGroup",
        });
    
    });
    
    package main
    
    import (
    	compute "github.com/pulumi/pulumi-azure-native-sdk/compute/v2"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		_, err := compute.NewDisk(ctx, "disk", &compute.DiskArgs{
    			CreationData: &compute.CreationDataArgs{
    				CreateOption: pulumi.String(compute.DiskCreateOptionFromImage),
    				ImageReference: &compute.ImageDiskReferenceArgs{
    					Id: pulumi.String("/Subscriptions/{subscriptionId}/Providers/Microsoft.Compute/Locations/westus/Publishers/{publisher}/ArtifactTypes/VMImage/Offers/{offer}/Skus/{sku}/Versions/1.0.0"),
    				},
    			},
    			DiskName:          pulumi.String("myDisk"),
    			Location:          pulumi.String("West US"),
    			OsType:            compute.OperatingSystemTypesWindows,
    			ResourceGroupName: pulumi.String("myResourceGroup"),
    		})
    		if err != nil {
    			return err
    		}
    		return nil
    	})
    }
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import com.pulumi.azurenative.compute.Disk;
    import com.pulumi.azurenative.compute.DiskArgs;
    import com.pulumi.azurenative.compute.inputs.CreationDataArgs;
    import com.pulumi.azurenative.compute.inputs.ImageDiskReferenceArgs;
    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 disk = new Disk("disk", DiskArgs.builder()
                .creationData(CreationDataArgs.builder()
                    .createOption("FromImage")
                    .imageReference(ImageDiskReferenceArgs.builder()
                        .id("/Subscriptions/{subscriptionId}/Providers/Microsoft.Compute/Locations/westus/Publishers/{publisher}/ArtifactTypes/VMImage/Offers/{offer}/Skus/{sku}/Versions/1.0.0")
                        .build())
                    .build())
                .diskName("myDisk")
                .location("West US")
                .osType("Windows")
                .resourceGroupName("myResourceGroup")
                .build());
    
        }
    }
    
    import pulumi
    import pulumi_azure_native as azure_native
    
    disk = azure_native.compute.Disk("disk",
        creation_data={
            "create_option": azure_native.compute.DiskCreateOption.FROM_IMAGE,
            "image_reference": {
                "id": "/Subscriptions/{subscriptionId}/Providers/Microsoft.Compute/Locations/westus/Publishers/{publisher}/ArtifactTypes/VMImage/Offers/{offer}/Skus/{sku}/Versions/1.0.0",
            },
        },
        disk_name="myDisk",
        location="West US",
        os_type=azure_native.compute.OperatingSystemTypes.WINDOWS,
        resource_group_name="myResourceGroup")
    
    import * as pulumi from "@pulumi/pulumi";
    import * as azure_native from "@pulumi/azure-native";
    
    const disk = new azure_native.compute.Disk("disk", {
        creationData: {
            createOption: azure_native.compute.DiskCreateOption.FromImage,
            imageReference: {
                id: "/Subscriptions/{subscriptionId}/Providers/Microsoft.Compute/Locations/westus/Publishers/{publisher}/ArtifactTypes/VMImage/Offers/{offer}/Skus/{sku}/Versions/1.0.0",
            },
        },
        diskName: "myDisk",
        location: "West US",
        osType: azure_native.compute.OperatingSystemTypes.Windows,
        resourceGroupName: "myResourceGroup",
    });
    
    resources:
      disk:
        type: azure-native:compute:Disk
        properties:
          creationData:
            createOption: FromImage
            imageReference:
              id: /Subscriptions/{subscriptionId}/Providers/Microsoft.Compute/Locations/westus/Publishers/{publisher}/ArtifactTypes/VMImage/Offers/{offer}/Skus/{sku}/Versions/1.0.0
          diskName: myDisk
          location: West US
          osType: Windows
          resourceGroupName: myResourceGroup
    
    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using AzureNative = Pulumi.AzureNative;
    
    return await Deployment.RunAsync(() => 
    {
        var disk = new AzureNative.Compute.Disk("disk", new()
        {
            CreationData = new AzureNative.Compute.Inputs.CreationDataArgs
            {
                CreateOption = AzureNative.Compute.DiskCreateOption.FromImage,
                GalleryImageReference = new AzureNative.Compute.Inputs.ImageDiskReferenceArgs
                {
                    CommunityGalleryImageId = "/CommunityGalleries/{communityGalleryPublicGalleryName}/Images/{imageName}/Versions/1.0.0",
                },
            },
            DiskName = "myDisk",
            Location = "West US",
            OsType = AzureNative.Compute.OperatingSystemTypes.Windows,
            ResourceGroupName = "myResourceGroup",
        });
    
    });
    
    package main
    
    import (
    	compute "github.com/pulumi/pulumi-azure-native-sdk/compute/v2"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		_, err := compute.NewDisk(ctx, "disk", &compute.DiskArgs{
    			CreationData: &compute.CreationDataArgs{
    				CreateOption: pulumi.String(compute.DiskCreateOptionFromImage),
    				GalleryImageReference: &compute.ImageDiskReferenceArgs{
    					CommunityGalleryImageId: pulumi.String("/CommunityGalleries/{communityGalleryPublicGalleryName}/Images/{imageName}/Versions/1.0.0"),
    				},
    			},
    			DiskName:          pulumi.String("myDisk"),
    			Location:          pulumi.String("West US"),
    			OsType:            compute.OperatingSystemTypesWindows,
    			ResourceGroupName: pulumi.String("myResourceGroup"),
    		})
    		if err != nil {
    			return err
    		}
    		return nil
    	})
    }
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import com.pulumi.azurenative.compute.Disk;
    import com.pulumi.azurenative.compute.DiskArgs;
    import com.pulumi.azurenative.compute.inputs.CreationDataArgs;
    import com.pulumi.azurenative.compute.inputs.ImageDiskReferenceArgs;
    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 disk = new Disk("disk", DiskArgs.builder()
                .creationData(CreationDataArgs.builder()
                    .createOption("FromImage")
                    .galleryImageReference(ImageDiskReferenceArgs.builder()
                        .communityGalleryImageId("/CommunityGalleries/{communityGalleryPublicGalleryName}/Images/{imageName}/Versions/1.0.0")
                        .build())
                    .build())
                .diskName("myDisk")
                .location("West US")
                .osType("Windows")
                .resourceGroupName("myResourceGroup")
                .build());
    
        }
    }
    
    import pulumi
    import pulumi_azure_native as azure_native
    
    disk = azure_native.compute.Disk("disk",
        creation_data={
            "create_option": azure_native.compute.DiskCreateOption.FROM_IMAGE,
            "gallery_image_reference": {
                "community_gallery_image_id": "/CommunityGalleries/{communityGalleryPublicGalleryName}/Images/{imageName}/Versions/1.0.0",
            },
        },
        disk_name="myDisk",
        location="West US",
        os_type=azure_native.compute.OperatingSystemTypes.WINDOWS,
        resource_group_name="myResourceGroup")
    
    import * as pulumi from "@pulumi/pulumi";
    import * as azure_native from "@pulumi/azure-native";
    
    const disk = new azure_native.compute.Disk("disk", {
        creationData: {
            createOption: azure_native.compute.DiskCreateOption.FromImage,
            galleryImageReference: {
                communityGalleryImageId: "/CommunityGalleries/{communityGalleryPublicGalleryName}/Images/{imageName}/Versions/1.0.0",
            },
        },
        diskName: "myDisk",
        location: "West US",
        osType: azure_native.compute.OperatingSystemTypes.Windows,
        resourceGroupName: "myResourceGroup",
    });
    
    resources:
      disk:
        type: azure-native:compute:Disk
        properties:
          creationData:
            createOption: FromImage
            galleryImageReference:
              communityGalleryImageId: /CommunityGalleries/{communityGalleryPublicGalleryName}/Images/{imageName}/Versions/1.0.0
          diskName: myDisk
          location: West US
          osType: Windows
          resourceGroupName: myResourceGroup
    
    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using AzureNative = Pulumi.AzureNative;
    
    return await Deployment.RunAsync(() => 
    {
        var disk = new AzureNative.Compute.Disk("disk", new()
        {
            CreationData = new AzureNative.Compute.Inputs.CreationDataArgs
            {
                CreateOption = AzureNative.Compute.DiskCreateOption.FromImage,
                GalleryImageReference = new AzureNative.Compute.Inputs.ImageDiskReferenceArgs
                {
                    SharedGalleryImageId = "/SharedGalleries/{sharedGalleryUniqueName}/Images/{imageName}/Versions/1.0.0",
                },
            },
            DiskName = "myDisk",
            Location = "West US",
            OsType = AzureNative.Compute.OperatingSystemTypes.Windows,
            ResourceGroupName = "myResourceGroup",
        });
    
    });
    
    package main
    
    import (
    	compute "github.com/pulumi/pulumi-azure-native-sdk/compute/v2"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		_, err := compute.NewDisk(ctx, "disk", &compute.DiskArgs{
    			CreationData: &compute.CreationDataArgs{
    				CreateOption: pulumi.String(compute.DiskCreateOptionFromImage),
    				GalleryImageReference: &compute.ImageDiskReferenceArgs{
    					SharedGalleryImageId: pulumi.String("/SharedGalleries/{sharedGalleryUniqueName}/Images/{imageName}/Versions/1.0.0"),
    				},
    			},
    			DiskName:          pulumi.String("myDisk"),
    			Location:          pulumi.String("West US"),
    			OsType:            compute.OperatingSystemTypesWindows,
    			ResourceGroupName: pulumi.String("myResourceGroup"),
    		})
    		if err != nil {
    			return err
    		}
    		return nil
    	})
    }
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import com.pulumi.azurenative.compute.Disk;
    import com.pulumi.azurenative.compute.DiskArgs;
    import com.pulumi.azurenative.compute.inputs.CreationDataArgs;
    import com.pulumi.azurenative.compute.inputs.ImageDiskReferenceArgs;
    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 disk = new Disk("disk", DiskArgs.builder()
                .creationData(CreationDataArgs.builder()
                    .createOption("FromImage")
                    .galleryImageReference(ImageDiskReferenceArgs.builder()
                        .sharedGalleryImageId("/SharedGalleries/{sharedGalleryUniqueName}/Images/{imageName}/Versions/1.0.0")
                        .build())
                    .build())
                .diskName("myDisk")
                .location("West US")
                .osType("Windows")
                .resourceGroupName("myResourceGroup")
                .build());
    
        }
    }
    
    import pulumi
    import pulumi_azure_native as azure_native
    
    disk = azure_native.compute.Disk("disk",
        creation_data={
            "create_option": azure_native.compute.DiskCreateOption.FROM_IMAGE,
            "gallery_image_reference": {
                "shared_gallery_image_id": "/SharedGalleries/{sharedGalleryUniqueName}/Images/{imageName}/Versions/1.0.0",
            },
        },
        disk_name="myDisk",
        location="West US",
        os_type=azure_native.compute.OperatingSystemTypes.WINDOWS,
        resource_group_name="myResourceGroup")
    
    import * as pulumi from "@pulumi/pulumi";
    import * as azure_native from "@pulumi/azure-native";
    
    const disk = new azure_native.compute.Disk("disk", {
        creationData: {
            createOption: azure_native.compute.DiskCreateOption.FromImage,
            galleryImageReference: {
                sharedGalleryImageId: "/SharedGalleries/{sharedGalleryUniqueName}/Images/{imageName}/Versions/1.0.0",
            },
        },
        diskName: "myDisk",
        location: "West US",
        osType: azure_native.compute.OperatingSystemTypes.Windows,
        resourceGroupName: "myResourceGroup",
    });
    
    resources:
      disk:
        type: azure-native:compute:Disk
        properties:
          creationData:
            createOption: FromImage
            galleryImageReference:
              sharedGalleryImageId: /SharedGalleries/{sharedGalleryUniqueName}/Images/{imageName}/Versions/1.0.0
          diskName: myDisk
          location: West US
          osType: Windows
          resourceGroupName: myResourceGroup
    
    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using AzureNative = Pulumi.AzureNative;
    
    return await Deployment.RunAsync(() => 
    {
        var disk = new AzureNative.Compute.Disk("disk", new()
        {
            CreationData = new AzureNative.Compute.Inputs.CreationDataArgs
            {
                CreateOption = AzureNative.Compute.DiskCreateOption.FromImage,
                GalleryImageReference = new AzureNative.Compute.Inputs.ImageDiskReferenceArgs
                {
                    Id = "/Subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/Providers/Microsoft.Compute/Galleries/{galleryName}/Images/{imageName}/Versions/1.0.0",
                },
            },
            DiskName = "myDisk",
            Location = "West US",
            OsType = AzureNative.Compute.OperatingSystemTypes.Windows,
            ResourceGroupName = "myResourceGroup",
        });
    
    });
    
    package main
    
    import (
    	compute "github.com/pulumi/pulumi-azure-native-sdk/compute/v2"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		_, err := compute.NewDisk(ctx, "disk", &compute.DiskArgs{
    			CreationData: &compute.CreationDataArgs{
    				CreateOption: pulumi.String(compute.DiskCreateOptionFromImage),
    				GalleryImageReference: &compute.ImageDiskReferenceArgs{
    					Id: pulumi.String("/Subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/Providers/Microsoft.Compute/Galleries/{galleryName}/Images/{imageName}/Versions/1.0.0"),
    				},
    			},
    			DiskName:          pulumi.String("myDisk"),
    			Location:          pulumi.String("West US"),
    			OsType:            compute.OperatingSystemTypesWindows,
    			ResourceGroupName: pulumi.String("myResourceGroup"),
    		})
    		if err != nil {
    			return err
    		}
    		return nil
    	})
    }
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import com.pulumi.azurenative.compute.Disk;
    import com.pulumi.azurenative.compute.DiskArgs;
    import com.pulumi.azurenative.compute.inputs.CreationDataArgs;
    import com.pulumi.azurenative.compute.inputs.ImageDiskReferenceArgs;
    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 disk = new Disk("disk", DiskArgs.builder()
                .creationData(CreationDataArgs.builder()
                    .createOption("FromImage")
                    .galleryImageReference(ImageDiskReferenceArgs.builder()
                        .id("/Subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/Providers/Microsoft.Compute/Galleries/{galleryName}/Images/{imageName}/Versions/1.0.0")
                        .build())
                    .build())
                .diskName("myDisk")
                .location("West US")
                .osType("Windows")
                .resourceGroupName("myResourceGroup")
                .build());
    
        }
    }
    
    import pulumi
    import pulumi_azure_native as azure_native
    
    disk = azure_native.compute.Disk("disk",
        creation_data={
            "create_option": azure_native.compute.DiskCreateOption.FROM_IMAGE,
            "gallery_image_reference": {
                "id": "/Subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/Providers/Microsoft.Compute/Galleries/{galleryName}/Images/{imageName}/Versions/1.0.0",
            },
        },
        disk_name="myDisk",
        location="West US",
        os_type=azure_native.compute.OperatingSystemTypes.WINDOWS,
        resource_group_name="myResourceGroup")
    
    import * as pulumi from "@pulumi/pulumi";
    import * as azure_native from "@pulumi/azure-native";
    
    const disk = new azure_native.compute.Disk("disk", {
        creationData: {
            createOption: azure_native.compute.DiskCreateOption.FromImage,
            galleryImageReference: {
                id: "/Subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/Providers/Microsoft.Compute/Galleries/{galleryName}/Images/{imageName}/Versions/1.0.0",
            },
        },
        diskName: "myDisk",
        location: "West US",
        osType: azure_native.compute.OperatingSystemTypes.Windows,
        resourceGroupName: "myResourceGroup",
    });
    
    resources:
      disk:
        type: azure-native:compute:Disk
        properties:
          creationData:
            createOption: FromImage
            galleryImageReference:
              id: /Subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/Providers/Microsoft.Compute/Galleries/{galleryName}/Images/{imageName}/Versions/1.0.0
          diskName: myDisk
          location: West US
          osType: Windows
          resourceGroupName: myResourceGroup
    

    Create a managed disk from an existing managed disk in the same or different subscription.

    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using AzureNative = Pulumi.AzureNative;
    
    return await Deployment.RunAsync(() => 
    {
        var disk = new AzureNative.Compute.Disk("disk", new()
        {
            CreationData = new AzureNative.Compute.Inputs.CreationDataArgs
            {
                CreateOption = AzureNative.Compute.DiskCreateOption.Copy,
                SourceResourceId = "subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/disks/myDisk1",
            },
            DiskName = "myDisk2",
            Location = "West US",
            ResourceGroupName = "myResourceGroup",
        });
    
    });
    
    package main
    
    import (
    	compute "github.com/pulumi/pulumi-azure-native-sdk/compute/v2"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		_, err := compute.NewDisk(ctx, "disk", &compute.DiskArgs{
    			CreationData: &compute.CreationDataArgs{
    				CreateOption:     pulumi.String(compute.DiskCreateOptionCopy),
    				SourceResourceId: pulumi.String("subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/disks/myDisk1"),
    			},
    			DiskName:          pulumi.String("myDisk2"),
    			Location:          pulumi.String("West US"),
    			ResourceGroupName: pulumi.String("myResourceGroup"),
    		})
    		if err != nil {
    			return err
    		}
    		return nil
    	})
    }
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import com.pulumi.azurenative.compute.Disk;
    import com.pulumi.azurenative.compute.DiskArgs;
    import com.pulumi.azurenative.compute.inputs.CreationDataArgs;
    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 disk = new Disk("disk", DiskArgs.builder()
                .creationData(CreationDataArgs.builder()
                    .createOption("Copy")
                    .sourceResourceId("subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/disks/myDisk1")
                    .build())
                .diskName("myDisk2")
                .location("West US")
                .resourceGroupName("myResourceGroup")
                .build());
    
        }
    }
    
    import pulumi
    import pulumi_azure_native as azure_native
    
    disk = azure_native.compute.Disk("disk",
        creation_data={
            "create_option": azure_native.compute.DiskCreateOption.COPY,
            "source_resource_id": "subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/disks/myDisk1",
        },
        disk_name="myDisk2",
        location="West US",
        resource_group_name="myResourceGroup")
    
    import * as pulumi from "@pulumi/pulumi";
    import * as azure_native from "@pulumi/azure-native";
    
    const disk = new azure_native.compute.Disk("disk", {
        creationData: {
            createOption: azure_native.compute.DiskCreateOption.Copy,
            sourceResourceId: "subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/disks/myDisk1",
        },
        diskName: "myDisk2",
        location: "West US",
        resourceGroupName: "myResourceGroup",
    });
    
    resources:
      disk:
        type: azure-native:compute:Disk
        properties:
          creationData:
            createOption: Copy
            sourceResourceId: subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/disks/myDisk1
          diskName: myDisk2
          location: West US
          resourceGroupName: myResourceGroup
    

    Create a managed disk with dataAccessAuthMode

    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using AzureNative = Pulumi.AzureNative;
    
    return await Deployment.RunAsync(() => 
    {
        var disk = new AzureNative.Compute.Disk("disk", new()
        {
            CreationData = new AzureNative.Compute.Inputs.CreationDataArgs
            {
                CreateOption = AzureNative.Compute.DiskCreateOption.Empty,
            },
            DataAccessAuthMode = AzureNative.Compute.DataAccessAuthMode.AzureActiveDirectory,
            DiskName = "myDisk",
            DiskSizeGB = 200,
            Location = "West US",
            ResourceGroupName = "myResourceGroup",
        });
    
    });
    
    package main
    
    import (
    	compute "github.com/pulumi/pulumi-azure-native-sdk/compute/v2"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		_, err := compute.NewDisk(ctx, "disk", &compute.DiskArgs{
    			CreationData: &compute.CreationDataArgs{
    				CreateOption: pulumi.String(compute.DiskCreateOptionEmpty),
    			},
    			DataAccessAuthMode: pulumi.String(compute.DataAccessAuthModeAzureActiveDirectory),
    			DiskName:           pulumi.String("myDisk"),
    			DiskSizeGB:         pulumi.Int(200),
    			Location:           pulumi.String("West US"),
    			ResourceGroupName:  pulumi.String("myResourceGroup"),
    		})
    		if err != nil {
    			return err
    		}
    		return nil
    	})
    }
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import com.pulumi.azurenative.compute.Disk;
    import com.pulumi.azurenative.compute.DiskArgs;
    import com.pulumi.azurenative.compute.inputs.CreationDataArgs;
    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 disk = new Disk("disk", DiskArgs.builder()
                .creationData(CreationDataArgs.builder()
                    .createOption("Empty")
                    .build())
                .dataAccessAuthMode("AzureActiveDirectory")
                .diskName("myDisk")
                .diskSizeGB(200)
                .location("West US")
                .resourceGroupName("myResourceGroup")
                .build());
    
        }
    }
    
    import pulumi
    import pulumi_azure_native as azure_native
    
    disk = azure_native.compute.Disk("disk",
        creation_data={
            "create_option": azure_native.compute.DiskCreateOption.EMPTY,
        },
        data_access_auth_mode=azure_native.compute.DataAccessAuthMode.AZURE_ACTIVE_DIRECTORY,
        disk_name="myDisk",
        disk_size_gb=200,
        location="West US",
        resource_group_name="myResourceGroup")
    
    import * as pulumi from "@pulumi/pulumi";
    import * as azure_native from "@pulumi/azure-native";
    
    const disk = new azure_native.compute.Disk("disk", {
        creationData: {
            createOption: azure_native.compute.DiskCreateOption.Empty,
        },
        dataAccessAuthMode: azure_native.compute.DataAccessAuthMode.AzureActiveDirectory,
        diskName: "myDisk",
        diskSizeGB: 200,
        location: "West US",
        resourceGroupName: "myResourceGroup",
    });
    
    resources:
      disk:
        type: azure-native:compute:Disk
        properties:
          creationData:
            createOption: Empty
          dataAccessAuthMode: AzureActiveDirectory
          diskName: myDisk
          diskSizeGB: 200
          location: West US
          resourceGroupName: myResourceGroup
    

    Create a managed disk with optimizedForFrequentAttach.

    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using AzureNative = Pulumi.AzureNative;
    
    return await Deployment.RunAsync(() => 
    {
        var disk = new AzureNative.Compute.Disk("disk", new()
        {
            CreationData = new AzureNative.Compute.Inputs.CreationDataArgs
            {
                CreateOption = AzureNative.Compute.DiskCreateOption.Empty,
            },
            DiskName = "myDisk",
            DiskSizeGB = 200,
            Location = "West US",
            OptimizedForFrequentAttach = true,
            ResourceGroupName = "myResourceGroup",
        });
    
    });
    
    package main
    
    import (
    	compute "github.com/pulumi/pulumi-azure-native-sdk/compute/v2"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		_, err := compute.NewDisk(ctx, "disk", &compute.DiskArgs{
    			CreationData: &compute.CreationDataArgs{
    				CreateOption: pulumi.String(compute.DiskCreateOptionEmpty),
    			},
    			DiskName:                   pulumi.String("myDisk"),
    			DiskSizeGB:                 pulumi.Int(200),
    			Location:                   pulumi.String("West US"),
    			OptimizedForFrequentAttach: pulumi.Bool(true),
    			ResourceGroupName:          pulumi.String("myResourceGroup"),
    		})
    		if err != nil {
    			return err
    		}
    		return nil
    	})
    }
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import com.pulumi.azurenative.compute.Disk;
    import com.pulumi.azurenative.compute.DiskArgs;
    import com.pulumi.azurenative.compute.inputs.CreationDataArgs;
    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 disk = new Disk("disk", DiskArgs.builder()
                .creationData(CreationDataArgs.builder()
                    .createOption("Empty")
                    .build())
                .diskName("myDisk")
                .diskSizeGB(200)
                .location("West US")
                .optimizedForFrequentAttach(true)
                .resourceGroupName("myResourceGroup")
                .build());
    
        }
    }
    
    import pulumi
    import pulumi_azure_native as azure_native
    
    disk = azure_native.compute.Disk("disk",
        creation_data={
            "create_option": azure_native.compute.DiskCreateOption.EMPTY,
        },
        disk_name="myDisk",
        disk_size_gb=200,
        location="West US",
        optimized_for_frequent_attach=True,
        resource_group_name="myResourceGroup")
    
    import * as pulumi from "@pulumi/pulumi";
    import * as azure_native from "@pulumi/azure-native";
    
    const disk = new azure_native.compute.Disk("disk", {
        creationData: {
            createOption: azure_native.compute.DiskCreateOption.Empty,
        },
        diskName: "myDisk",
        diskSizeGB: 200,
        location: "West US",
        optimizedForFrequentAttach: true,
        resourceGroupName: "myResourceGroup",
    });
    
    resources:
      disk:
        type: azure-native:compute:Disk
        properties:
          creationData:
            createOption: Empty
          diskName: myDisk
          diskSizeGB: 200
          location: West US
          optimizedForFrequentAttach: true
          resourceGroupName: myResourceGroup
    

    Create a managed disk with performancePlus.

    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using AzureNative = Pulumi.AzureNative;
    
    return await Deployment.RunAsync(() => 
    {
        var disk = new AzureNative.Compute.Disk("disk", new()
        {
            CreationData = new AzureNative.Compute.Inputs.CreationDataArgs
            {
                CreateOption = AzureNative.Compute.DiskCreateOption.Upload,
                PerformancePlus = true,
            },
            DiskName = "myDisk",
            Location = "West US",
            ResourceGroupName = "myResourceGroup",
        });
    
    });
    
    package main
    
    import (
    	compute "github.com/pulumi/pulumi-azure-native-sdk/compute/v2"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		_, err := compute.NewDisk(ctx, "disk", &compute.DiskArgs{
    			CreationData: &compute.CreationDataArgs{
    				CreateOption:    pulumi.String(compute.DiskCreateOptionUpload),
    				PerformancePlus: pulumi.Bool(true),
    			},
    			DiskName:          pulumi.String("myDisk"),
    			Location:          pulumi.String("West US"),
    			ResourceGroupName: pulumi.String("myResourceGroup"),
    		})
    		if err != nil {
    			return err
    		}
    		return nil
    	})
    }
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import com.pulumi.azurenative.compute.Disk;
    import com.pulumi.azurenative.compute.DiskArgs;
    import com.pulumi.azurenative.compute.inputs.CreationDataArgs;
    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 disk = new Disk("disk", DiskArgs.builder()
                .creationData(CreationDataArgs.builder()
                    .createOption("Upload")
                    .performancePlus(true)
                    .build())
                .diskName("myDisk")
                .location("West US")
                .resourceGroupName("myResourceGroup")
                .build());
    
        }
    }
    
    import pulumi
    import pulumi_azure_native as azure_native
    
    disk = azure_native.compute.Disk("disk",
        creation_data={
            "create_option": azure_native.compute.DiskCreateOption.UPLOAD,
            "performance_plus": True,
        },
        disk_name="myDisk",
        location="West US",
        resource_group_name="myResourceGroup")
    
    import * as pulumi from "@pulumi/pulumi";
    import * as azure_native from "@pulumi/azure-native";
    
    const disk = new azure_native.compute.Disk("disk", {
        creationData: {
            createOption: azure_native.compute.DiskCreateOption.Upload,
            performancePlus: true,
        },
        diskName: "myDisk",
        location: "West US",
        resourceGroupName: "myResourceGroup",
    });
    
    resources:
      disk:
        type: azure-native:compute:Disk
        properties:
          creationData:
            createOption: Upload
            performancePlus: true
          diskName: myDisk
          location: West US
          resourceGroupName: myResourceGroup
    

    Create a managed disk with premium v2 account type.

    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using AzureNative = Pulumi.AzureNative;
    
    return await Deployment.RunAsync(() => 
    {
        var disk = new AzureNative.Compute.Disk("disk", new()
        {
            CreationData = new AzureNative.Compute.Inputs.CreationDataArgs
            {
                CreateOption = AzureNative.Compute.DiskCreateOption.Empty,
            },
            DiskIOPSReadWrite = 125,
            DiskMBpsReadWrite = 3000,
            DiskName = "myPremiumV2Disk",
            DiskSizeGB = 200,
            Location = "West US",
            ResourceGroupName = "myResourceGroup",
            Sku = new AzureNative.Compute.Inputs.DiskSkuArgs
            {
                Name = AzureNative.Compute.DiskStorageAccountTypes.PremiumV2_LRS,
            },
        });
    
    });
    
    package main
    
    import (
    	compute "github.com/pulumi/pulumi-azure-native-sdk/compute/v2"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		_, err := compute.NewDisk(ctx, "disk", &compute.DiskArgs{
    			CreationData: &compute.CreationDataArgs{
    				CreateOption: pulumi.String(compute.DiskCreateOptionEmpty),
    			},
    			DiskIOPSReadWrite: pulumi.Float64(125),
    			DiskMBpsReadWrite: pulumi.Float64(3000),
    			DiskName:          pulumi.String("myPremiumV2Disk"),
    			DiskSizeGB:        pulumi.Int(200),
    			Location:          pulumi.String("West US"),
    			ResourceGroupName: pulumi.String("myResourceGroup"),
    			Sku: &compute.DiskSkuArgs{
    				Name: pulumi.String(compute.DiskStorageAccountTypes_PremiumV2_LRS),
    			},
    		})
    		if err != nil {
    			return err
    		}
    		return nil
    	})
    }
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import com.pulumi.azurenative.compute.Disk;
    import com.pulumi.azurenative.compute.DiskArgs;
    import com.pulumi.azurenative.compute.inputs.CreationDataArgs;
    import com.pulumi.azurenative.compute.inputs.DiskSkuArgs;
    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 disk = new Disk("disk", DiskArgs.builder()
                .creationData(CreationDataArgs.builder()
                    .createOption("Empty")
                    .build())
                .diskIOPSReadWrite(125)
                .diskMBpsReadWrite(3000)
                .diskName("myPremiumV2Disk")
                .diskSizeGB(200)
                .location("West US")
                .resourceGroupName("myResourceGroup")
                .sku(DiskSkuArgs.builder()
                    .name("PremiumV2_LRS")
                    .build())
                .build());
    
        }
    }
    
    import pulumi
    import pulumi_azure_native as azure_native
    
    disk = azure_native.compute.Disk("disk",
        creation_data={
            "create_option": azure_native.compute.DiskCreateOption.EMPTY,
        },
        disk_iops_read_write=125,
        disk_m_bps_read_write=3000,
        disk_name="myPremiumV2Disk",
        disk_size_gb=200,
        location="West US",
        resource_group_name="myResourceGroup",
        sku={
            "name": azure_native.compute.DiskStorageAccountTypes.PREMIUM_V2_LRS,
        })
    
    import * as pulumi from "@pulumi/pulumi";
    import * as azure_native from "@pulumi/azure-native";
    
    const disk = new azure_native.compute.Disk("disk", {
        creationData: {
            createOption: azure_native.compute.DiskCreateOption.Empty,
        },
        diskIOPSReadWrite: 125,
        diskMBpsReadWrite: 3000,
        diskName: "myPremiumV2Disk",
        diskSizeGB: 200,
        location: "West US",
        resourceGroupName: "myResourceGroup",
        sku: {
            name: azure_native.compute.DiskStorageAccountTypes.PremiumV2_LRS,
        },
    });
    
    resources:
      disk:
        type: azure-native:compute:Disk
        properties:
          creationData:
            createOption: Empty
          diskIOPSReadWrite: 125
          diskMBpsReadWrite: 3000
          diskName: myPremiumV2Disk
          diskSizeGB: 200
          location: West US
          resourceGroupName: myResourceGroup
          sku:
            name: PremiumV2_LRS
    

    Create a managed disk with security profile

    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using AzureNative = Pulumi.AzureNative;
    
    return await Deployment.RunAsync(() => 
    {
        var disk = new AzureNative.Compute.Disk("disk", new()
        {
            CreationData = new AzureNative.Compute.Inputs.CreationDataArgs
            {
                CreateOption = AzureNative.Compute.DiskCreateOption.FromImage,
                ImageReference = new AzureNative.Compute.Inputs.ImageDiskReferenceArgs
                {
                    Id = "/Subscriptions/{subscriptionId}/Providers/Microsoft.Compute/Locations/uswest/Publishers/Microsoft/ArtifactTypes/VMImage/Offers/{offer}",
                },
            },
            DiskName = "myDisk",
            Location = "North Central US",
            OsType = AzureNative.Compute.OperatingSystemTypes.Windows,
            ResourceGroupName = "myResourceGroup",
            SecurityProfile = new AzureNative.Compute.Inputs.DiskSecurityProfileArgs
            {
                SecurityType = AzureNative.Compute.DiskSecurityTypes.TrustedLaunch,
            },
        });
    
    });
    
    package main
    
    import (
    	compute "github.com/pulumi/pulumi-azure-native-sdk/compute/v2"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		_, err := compute.NewDisk(ctx, "disk", &compute.DiskArgs{
    			CreationData: &compute.CreationDataArgs{
    				CreateOption: pulumi.String(compute.DiskCreateOptionFromImage),
    				ImageReference: &compute.ImageDiskReferenceArgs{
    					Id: pulumi.String("/Subscriptions/{subscriptionId}/Providers/Microsoft.Compute/Locations/uswest/Publishers/Microsoft/ArtifactTypes/VMImage/Offers/{offer}"),
    				},
    			},
    			DiskName:          pulumi.String("myDisk"),
    			Location:          pulumi.String("North Central US"),
    			OsType:            compute.OperatingSystemTypesWindows,
    			ResourceGroupName: pulumi.String("myResourceGroup"),
    			SecurityProfile: &compute.DiskSecurityProfileArgs{
    				SecurityType: pulumi.String(compute.DiskSecurityTypesTrustedLaunch),
    			},
    		})
    		if err != nil {
    			return err
    		}
    		return nil
    	})
    }
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import com.pulumi.azurenative.compute.Disk;
    import com.pulumi.azurenative.compute.DiskArgs;
    import com.pulumi.azurenative.compute.inputs.CreationDataArgs;
    import com.pulumi.azurenative.compute.inputs.ImageDiskReferenceArgs;
    import com.pulumi.azurenative.compute.inputs.DiskSecurityProfileArgs;
    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 disk = new Disk("disk", DiskArgs.builder()
                .creationData(CreationDataArgs.builder()
                    .createOption("FromImage")
                    .imageReference(ImageDiskReferenceArgs.builder()
                        .id("/Subscriptions/{subscriptionId}/Providers/Microsoft.Compute/Locations/uswest/Publishers/Microsoft/ArtifactTypes/VMImage/Offers/{offer}")
                        .build())
                    .build())
                .diskName("myDisk")
                .location("North Central US")
                .osType("Windows")
                .resourceGroupName("myResourceGroup")
                .securityProfile(DiskSecurityProfileArgs.builder()
                    .securityType("TrustedLaunch")
                    .build())
                .build());
    
        }
    }
    
    import pulumi
    import pulumi_azure_native as azure_native
    
    disk = azure_native.compute.Disk("disk",
        creation_data={
            "create_option": azure_native.compute.DiskCreateOption.FROM_IMAGE,
            "image_reference": {
                "id": "/Subscriptions/{subscriptionId}/Providers/Microsoft.Compute/Locations/uswest/Publishers/Microsoft/ArtifactTypes/VMImage/Offers/{offer}",
            },
        },
        disk_name="myDisk",
        location="North Central US",
        os_type=azure_native.compute.OperatingSystemTypes.WINDOWS,
        resource_group_name="myResourceGroup",
        security_profile={
            "security_type": azure_native.compute.DiskSecurityTypes.TRUSTED_LAUNCH,
        })
    
    import * as pulumi from "@pulumi/pulumi";
    import * as azure_native from "@pulumi/azure-native";
    
    const disk = new azure_native.compute.Disk("disk", {
        creationData: {
            createOption: azure_native.compute.DiskCreateOption.FromImage,
            imageReference: {
                id: "/Subscriptions/{subscriptionId}/Providers/Microsoft.Compute/Locations/uswest/Publishers/Microsoft/ArtifactTypes/VMImage/Offers/{offer}",
            },
        },
        diskName: "myDisk",
        location: "North Central US",
        osType: azure_native.compute.OperatingSystemTypes.Windows,
        resourceGroupName: "myResourceGroup",
        securityProfile: {
            securityType: azure_native.compute.DiskSecurityTypes.TrustedLaunch,
        },
    });
    
    resources:
      disk:
        type: azure-native:compute:Disk
        properties:
          creationData:
            createOption: FromImage
            imageReference:
              id: /Subscriptions/{subscriptionId}/Providers/Microsoft.Compute/Locations/uswest/Publishers/Microsoft/ArtifactTypes/VMImage/Offers/{offer}
          diskName: myDisk
          location: North Central US
          osType: Windows
          resourceGroupName: myResourceGroup
          securityProfile:
            securityType: TrustedLaunch
    

    Create a managed disk with ssd zrs account type.

    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using AzureNative = Pulumi.AzureNative;
    
    return await Deployment.RunAsync(() => 
    {
        var disk = new AzureNative.Compute.Disk("disk", new()
        {
            CreationData = new AzureNative.Compute.Inputs.CreationDataArgs
            {
                CreateOption = AzureNative.Compute.DiskCreateOption.Empty,
            },
            DiskName = "myDisk",
            DiskSizeGB = 200,
            Location = "West US",
            ResourceGroupName = "myResourceGroup",
            Sku = new AzureNative.Compute.Inputs.DiskSkuArgs
            {
                Name = AzureNative.Compute.DiskStorageAccountTypes.Premium_ZRS,
            },
        });
    
    });
    
    package main
    
    import (
    	compute "github.com/pulumi/pulumi-azure-native-sdk/compute/v2"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		_, err := compute.NewDisk(ctx, "disk", &compute.DiskArgs{
    			CreationData: &compute.CreationDataArgs{
    				CreateOption: pulumi.String(compute.DiskCreateOptionEmpty),
    			},
    			DiskName:          pulumi.String("myDisk"),
    			DiskSizeGB:        pulumi.Int(200),
    			Location:          pulumi.String("West US"),
    			ResourceGroupName: pulumi.String("myResourceGroup"),
    			Sku: &compute.DiskSkuArgs{
    				Name: pulumi.String(compute.DiskStorageAccountTypes_Premium_ZRS),
    			},
    		})
    		if err != nil {
    			return err
    		}
    		return nil
    	})
    }
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import com.pulumi.azurenative.compute.Disk;
    import com.pulumi.azurenative.compute.DiskArgs;
    import com.pulumi.azurenative.compute.inputs.CreationDataArgs;
    import com.pulumi.azurenative.compute.inputs.DiskSkuArgs;
    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 disk = new Disk("disk", DiskArgs.builder()
                .creationData(CreationDataArgs.builder()
                    .createOption("Empty")
                    .build())
                .diskName("myDisk")
                .diskSizeGB(200)
                .location("West US")
                .resourceGroupName("myResourceGroup")
                .sku(DiskSkuArgs.builder()
                    .name("Premium_ZRS")
                    .build())
                .build());
    
        }
    }
    
    import pulumi
    import pulumi_azure_native as azure_native
    
    disk = azure_native.compute.Disk("disk",
        creation_data={
            "create_option": azure_native.compute.DiskCreateOption.EMPTY,
        },
        disk_name="myDisk",
        disk_size_gb=200,
        location="West US",
        resource_group_name="myResourceGroup",
        sku={
            "name": azure_native.compute.DiskStorageAccountTypes.PREMIUM_ZRS,
        })
    
    import * as pulumi from "@pulumi/pulumi";
    import * as azure_native from "@pulumi/azure-native";
    
    const disk = new azure_native.compute.Disk("disk", {
        creationData: {
            createOption: azure_native.compute.DiskCreateOption.Empty,
        },
        diskName: "myDisk",
        diskSizeGB: 200,
        location: "West US",
        resourceGroupName: "myResourceGroup",
        sku: {
            name: azure_native.compute.DiskStorageAccountTypes.Premium_ZRS,
        },
    });
    
    resources:
      disk:
        type: azure-native:compute:Disk
        properties:
          creationData:
            createOption: Empty
          diskName: myDisk
          diskSizeGB: 200
          location: West US
          resourceGroupName: myResourceGroup
          sku:
            name: Premium_ZRS
    

    Create a managed disk with ultra account type with readOnly property set.

    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using AzureNative = Pulumi.AzureNative;
    
    return await Deployment.RunAsync(() => 
    {
        var disk = new AzureNative.Compute.Disk("disk", new()
        {
            CreationData = new AzureNative.Compute.Inputs.CreationDataArgs
            {
                CreateOption = AzureNative.Compute.DiskCreateOption.Empty,
                LogicalSectorSize = 4096,
            },
            DiskIOPSReadWrite = 125,
            DiskMBpsReadWrite = 3000,
            DiskName = "myUltraReadOnlyDisk",
            DiskSizeGB = 200,
            Encryption = new AzureNative.Compute.Inputs.EncryptionArgs
            {
                Type = AzureNative.Compute.EncryptionType.EncryptionAtRestWithPlatformKey,
            },
            Location = "West US",
            ResourceGroupName = "myResourceGroup",
            Sku = new AzureNative.Compute.Inputs.DiskSkuArgs
            {
                Name = AzureNative.Compute.DiskStorageAccountTypes.UltraSSD_LRS,
            },
        });
    
    });
    
    package main
    
    import (
    	compute "github.com/pulumi/pulumi-azure-native-sdk/compute/v2"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		_, err := compute.NewDisk(ctx, "disk", &compute.DiskArgs{
    			CreationData: &compute.CreationDataArgs{
    				CreateOption:      pulumi.String(compute.DiskCreateOptionEmpty),
    				LogicalSectorSize: pulumi.Int(4096),
    			},
    			DiskIOPSReadWrite: pulumi.Float64(125),
    			DiskMBpsReadWrite: pulumi.Float64(3000),
    			DiskName:          pulumi.String("myUltraReadOnlyDisk"),
    			DiskSizeGB:        pulumi.Int(200),
    			Encryption: &compute.EncryptionArgs{
    				Type: pulumi.String(compute.EncryptionTypeEncryptionAtRestWithPlatformKey),
    			},
    			Location:          pulumi.String("West US"),
    			ResourceGroupName: pulumi.String("myResourceGroup"),
    			Sku: &compute.DiskSkuArgs{
    				Name: pulumi.String(compute.DiskStorageAccountTypes_UltraSSD_LRS),
    			},
    		})
    		if err != nil {
    			return err
    		}
    		return nil
    	})
    }
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import com.pulumi.azurenative.compute.Disk;
    import com.pulumi.azurenative.compute.DiskArgs;
    import com.pulumi.azurenative.compute.inputs.CreationDataArgs;
    import com.pulumi.azurenative.compute.inputs.EncryptionArgs;
    import com.pulumi.azurenative.compute.inputs.DiskSkuArgs;
    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 disk = new Disk("disk", DiskArgs.builder()
                .creationData(CreationDataArgs.builder()
                    .createOption("Empty")
                    .logicalSectorSize(4096)
                    .build())
                .diskIOPSReadWrite(125)
                .diskMBpsReadWrite(3000)
                .diskName("myUltraReadOnlyDisk")
                .diskSizeGB(200)
                .encryption(EncryptionArgs.builder()
                    .type("EncryptionAtRestWithPlatformKey")
                    .build())
                .location("West US")
                .resourceGroupName("myResourceGroup")
                .sku(DiskSkuArgs.builder()
                    .name("UltraSSD_LRS")
                    .build())
                .build());
    
        }
    }
    
    import pulumi
    import pulumi_azure_native as azure_native
    
    disk = azure_native.compute.Disk("disk",
        creation_data={
            "create_option": azure_native.compute.DiskCreateOption.EMPTY,
            "logical_sector_size": 4096,
        },
        disk_iops_read_write=125,
        disk_m_bps_read_write=3000,
        disk_name="myUltraReadOnlyDisk",
        disk_size_gb=200,
        encryption={
            "type": azure_native.compute.EncryptionType.ENCRYPTION_AT_REST_WITH_PLATFORM_KEY,
        },
        location="West US",
        resource_group_name="myResourceGroup",
        sku={
            "name": azure_native.compute.DiskStorageAccountTypes.ULTRA_SS_D_LRS,
        })
    
    import * as pulumi from "@pulumi/pulumi";
    import * as azure_native from "@pulumi/azure-native";
    
    const disk = new azure_native.compute.Disk("disk", {
        creationData: {
            createOption: azure_native.compute.DiskCreateOption.Empty,
            logicalSectorSize: 4096,
        },
        diskIOPSReadWrite: 125,
        diskMBpsReadWrite: 3000,
        diskName: "myUltraReadOnlyDisk",
        diskSizeGB: 200,
        encryption: {
            type: azure_native.compute.EncryptionType.EncryptionAtRestWithPlatformKey,
        },
        location: "West US",
        resourceGroupName: "myResourceGroup",
        sku: {
            name: azure_native.compute.DiskStorageAccountTypes.UltraSSD_LRS,
        },
    });
    
    resources:
      disk:
        type: azure-native:compute:Disk
        properties:
          creationData:
            createOption: Empty
            logicalSectorSize: 4096
          diskIOPSReadWrite: 125
          diskMBpsReadWrite: 3000
          diskName: myUltraReadOnlyDisk
          diskSizeGB: 200
          encryption:
            type: EncryptionAtRestWithPlatformKey
          location: West US
          resourceGroupName: myResourceGroup
          sku:
            name: UltraSSD_LRS
    

    Create a managed upload disk.

    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using AzureNative = Pulumi.AzureNative;
    
    return await Deployment.RunAsync(() => 
    {
        var disk = new AzureNative.Compute.Disk("disk", new()
        {
            CreationData = new AzureNative.Compute.Inputs.CreationDataArgs
            {
                CreateOption = AzureNative.Compute.DiskCreateOption.Upload,
                UploadSizeBytes = 10737418752,
            },
            DiskName = "myDisk",
            Location = "West US",
            ResourceGroupName = "myResourceGroup",
        });
    
    });
    
    package main
    
    import (
    	compute "github.com/pulumi/pulumi-azure-native-sdk/compute/v2"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		_, err := compute.NewDisk(ctx, "disk", &compute.DiskArgs{
    			CreationData: &compute.CreationDataArgs{
    				CreateOption:    pulumi.String(compute.DiskCreateOptionUpload),
    				UploadSizeBytes: pulumi.Float64(10737418752),
    			},
    			DiskName:          pulumi.String("myDisk"),
    			Location:          pulumi.String("West US"),
    			ResourceGroupName: pulumi.String("myResourceGroup"),
    		})
    		if err != nil {
    			return err
    		}
    		return nil
    	})
    }
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import com.pulumi.azurenative.compute.Disk;
    import com.pulumi.azurenative.compute.DiskArgs;
    import com.pulumi.azurenative.compute.inputs.CreationDataArgs;
    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 disk = new Disk("disk", DiskArgs.builder()
                .creationData(CreationDataArgs.builder()
                    .createOption("Upload")
                    .uploadSizeBytes(10737418752)
                    .build())
                .diskName("myDisk")
                .location("West US")
                .resourceGroupName("myResourceGroup")
                .build());
    
        }
    }
    
    import pulumi
    import pulumi_azure_native as azure_native
    
    disk = azure_native.compute.Disk("disk",
        creation_data={
            "create_option": azure_native.compute.DiskCreateOption.UPLOAD,
            "upload_size_bytes": 10737418752,
        },
        disk_name="myDisk",
        location="West US",
        resource_group_name="myResourceGroup")
    
    import * as pulumi from "@pulumi/pulumi";
    import * as azure_native from "@pulumi/azure-native";
    
    const disk = new azure_native.compute.Disk("disk", {
        creationData: {
            createOption: azure_native.compute.DiskCreateOption.Upload,
            uploadSizeBytes: 10737418752,
        },
        diskName: "myDisk",
        location: "West US",
        resourceGroupName: "myResourceGroup",
    });
    
    resources:
      disk:
        type: azure-native:compute:Disk
        properties:
          creationData:
            createOption: Upload
            uploadSizeBytes: 1.0737418752e+10
          diskName: myDisk
          location: West US
          resourceGroupName: myResourceGroup
    

    Create an empty managed disk in extended location.

    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using AzureNative = Pulumi.AzureNative;
    
    return await Deployment.RunAsync(() => 
    {
        var disk = new AzureNative.Compute.Disk("disk", new()
        {
            CreationData = new AzureNative.Compute.Inputs.CreationDataArgs
            {
                CreateOption = AzureNative.Compute.DiskCreateOption.Empty,
            },
            DiskName = "myDisk",
            DiskSizeGB = 200,
            ExtendedLocation = new AzureNative.Compute.Inputs.ExtendedLocationArgs
            {
                Name = "{edge-zone-id}",
                Type = AzureNative.Compute.ExtendedLocationTypes.EdgeZone,
            },
            Location = "West US",
            ResourceGroupName = "myResourceGroup",
        });
    
    });
    
    package main
    
    import (
    	compute "github.com/pulumi/pulumi-azure-native-sdk/compute/v2"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		_, err := compute.NewDisk(ctx, "disk", &compute.DiskArgs{
    			CreationData: &compute.CreationDataArgs{
    				CreateOption: pulumi.String(compute.DiskCreateOptionEmpty),
    			},
    			DiskName:   pulumi.String("myDisk"),
    			DiskSizeGB: pulumi.Int(200),
    			ExtendedLocation: &compute.ExtendedLocationArgs{
    				Name: pulumi.String("{edge-zone-id}"),
    				Type: pulumi.String(compute.ExtendedLocationTypesEdgeZone),
    			},
    			Location:          pulumi.String("West US"),
    			ResourceGroupName: pulumi.String("myResourceGroup"),
    		})
    		if err != nil {
    			return err
    		}
    		return nil
    	})
    }
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import com.pulumi.azurenative.compute.Disk;
    import com.pulumi.azurenative.compute.DiskArgs;
    import com.pulumi.azurenative.compute.inputs.CreationDataArgs;
    import com.pulumi.azurenative.compute.inputs.ExtendedLocationArgs;
    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 disk = new Disk("disk", DiskArgs.builder()
                .creationData(CreationDataArgs.builder()
                    .createOption("Empty")
                    .build())
                .diskName("myDisk")
                .diskSizeGB(200)
                .extendedLocation(ExtendedLocationArgs.builder()
                    .name("{edge-zone-id}")
                    .type("EdgeZone")
                    .build())
                .location("West US")
                .resourceGroupName("myResourceGroup")
                .build());
    
        }
    }
    
    import pulumi
    import pulumi_azure_native as azure_native
    
    disk = azure_native.compute.Disk("disk",
        creation_data={
            "create_option": azure_native.compute.DiskCreateOption.EMPTY,
        },
        disk_name="myDisk",
        disk_size_gb=200,
        extended_location={
            "name": "{edge-zone-id}",
            "type": azure_native.compute.ExtendedLocationTypes.EDGE_ZONE,
        },
        location="West US",
        resource_group_name="myResourceGroup")
    
    import * as pulumi from "@pulumi/pulumi";
    import * as azure_native from "@pulumi/azure-native";
    
    const disk = new azure_native.compute.Disk("disk", {
        creationData: {
            createOption: azure_native.compute.DiskCreateOption.Empty,
        },
        diskName: "myDisk",
        diskSizeGB: 200,
        extendedLocation: {
            name: "{edge-zone-id}",
            type: azure_native.compute.ExtendedLocationTypes.EdgeZone,
        },
        location: "West US",
        resourceGroupName: "myResourceGroup",
    });
    
    resources:
      disk:
        type: azure-native:compute:Disk
        properties:
          creationData:
            createOption: Empty
          diskName: myDisk
          diskSizeGB: 200
          extendedLocation:
            name: '{edge-zone-id}'
            type: EdgeZone
          location: West US
          resourceGroupName: myResourceGroup
    

    Create an empty managed disk.

    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using AzureNative = Pulumi.AzureNative;
    
    return await Deployment.RunAsync(() => 
    {
        var disk = new AzureNative.Compute.Disk("disk", new()
        {
            CreationData = new AzureNative.Compute.Inputs.CreationDataArgs
            {
                CreateOption = AzureNative.Compute.DiskCreateOption.Empty,
            },
            DiskName = "myDisk",
            DiskSizeGB = 200,
            Location = "West US",
            ResourceGroupName = "myResourceGroup",
        });
    
    });
    
    package main
    
    import (
    	compute "github.com/pulumi/pulumi-azure-native-sdk/compute/v2"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		_, err := compute.NewDisk(ctx, "disk", &compute.DiskArgs{
    			CreationData: &compute.CreationDataArgs{
    				CreateOption: pulumi.String(compute.DiskCreateOptionEmpty),
    			},
    			DiskName:          pulumi.String("myDisk"),
    			DiskSizeGB:        pulumi.Int(200),
    			Location:          pulumi.String("West US"),
    			ResourceGroupName: pulumi.String("myResourceGroup"),
    		})
    		if err != nil {
    			return err
    		}
    		return nil
    	})
    }
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import com.pulumi.azurenative.compute.Disk;
    import com.pulumi.azurenative.compute.DiskArgs;
    import com.pulumi.azurenative.compute.inputs.CreationDataArgs;
    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 disk = new Disk("disk", DiskArgs.builder()
                .creationData(CreationDataArgs.builder()
                    .createOption("Empty")
                    .build())
                .diskName("myDisk")
                .diskSizeGB(200)
                .location("West US")
                .resourceGroupName("myResourceGroup")
                .build());
    
        }
    }
    
    import pulumi
    import pulumi_azure_native as azure_native
    
    disk = azure_native.compute.Disk("disk",
        creation_data={
            "create_option": azure_native.compute.DiskCreateOption.EMPTY,
        },
        disk_name="myDisk",
        disk_size_gb=200,
        location="West US",
        resource_group_name="myResourceGroup")
    
    import * as pulumi from "@pulumi/pulumi";
    import * as azure_native from "@pulumi/azure-native";
    
    const disk = new azure_native.compute.Disk("disk", {
        creationData: {
            createOption: azure_native.compute.DiskCreateOption.Empty,
        },
        diskName: "myDisk",
        diskSizeGB: 200,
        location: "West US",
        resourceGroupName: "myResourceGroup",
    });
    
    resources:
      disk:
        type: azure-native:compute:Disk
        properties:
          creationData:
            createOption: Empty
          diskName: myDisk
          diskSizeGB: 200
          location: West US
          resourceGroupName: myResourceGroup
    

    Create an ultra managed disk with logicalSectorSize 512E

    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using AzureNative = Pulumi.AzureNative;
    
    return await Deployment.RunAsync(() => 
    {
        var disk = new AzureNative.Compute.Disk("disk", new()
        {
            CreationData = new AzureNative.Compute.Inputs.CreationDataArgs
            {
                CreateOption = AzureNative.Compute.DiskCreateOption.Empty,
                LogicalSectorSize = 512,
            },
            DiskName = "myDisk",
            DiskSizeGB = 200,
            Location = "West US",
            ResourceGroupName = "myResourceGroup",
            Sku = new AzureNative.Compute.Inputs.DiskSkuArgs
            {
                Name = AzureNative.Compute.DiskStorageAccountTypes.UltraSSD_LRS,
            },
        });
    
    });
    
    package main
    
    import (
    	compute "github.com/pulumi/pulumi-azure-native-sdk/compute/v2"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		_, err := compute.NewDisk(ctx, "disk", &compute.DiskArgs{
    			CreationData: &compute.CreationDataArgs{
    				CreateOption:      pulumi.String(compute.DiskCreateOptionEmpty),
    				LogicalSectorSize: pulumi.Int(512),
    			},
    			DiskName:          pulumi.String("myDisk"),
    			DiskSizeGB:        pulumi.Int(200),
    			Location:          pulumi.String("West US"),
    			ResourceGroupName: pulumi.String("myResourceGroup"),
    			Sku: &compute.DiskSkuArgs{
    				Name: pulumi.String(compute.DiskStorageAccountTypes_UltraSSD_LRS),
    			},
    		})
    		if err != nil {
    			return err
    		}
    		return nil
    	})
    }
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import com.pulumi.azurenative.compute.Disk;
    import com.pulumi.azurenative.compute.DiskArgs;
    import com.pulumi.azurenative.compute.inputs.CreationDataArgs;
    import com.pulumi.azurenative.compute.inputs.DiskSkuArgs;
    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 disk = new Disk("disk", DiskArgs.builder()
                .creationData(CreationDataArgs.builder()
                    .createOption("Empty")
                    .logicalSectorSize(512)
                    .build())
                .diskName("myDisk")
                .diskSizeGB(200)
                .location("West US")
                .resourceGroupName("myResourceGroup")
                .sku(DiskSkuArgs.builder()
                    .name("UltraSSD_LRS")
                    .build())
                .build());
    
        }
    }
    
    import pulumi
    import pulumi_azure_native as azure_native
    
    disk = azure_native.compute.Disk("disk",
        creation_data={
            "create_option": azure_native.compute.DiskCreateOption.EMPTY,
            "logical_sector_size": 512,
        },
        disk_name="myDisk",
        disk_size_gb=200,
        location="West US",
        resource_group_name="myResourceGroup",
        sku={
            "name": azure_native.compute.DiskStorageAccountTypes.ULTRA_SS_D_LRS,
        })
    
    import * as pulumi from "@pulumi/pulumi";
    import * as azure_native from "@pulumi/azure-native";
    
    const disk = new azure_native.compute.Disk("disk", {
        creationData: {
            createOption: azure_native.compute.DiskCreateOption.Empty,
            logicalSectorSize: 512,
        },
        diskName: "myDisk",
        diskSizeGB: 200,
        location: "West US",
        resourceGroupName: "myResourceGroup",
        sku: {
            name: azure_native.compute.DiskStorageAccountTypes.UltraSSD_LRS,
        },
    });
    
    resources:
      disk:
        type: azure-native:compute:Disk
        properties:
          creationData:
            createOption: Empty
            logicalSectorSize: 512
          diskName: myDisk
          diskSizeGB: 200
          location: West US
          resourceGroupName: myResourceGroup
          sku:
            name: UltraSSD_LRS
    

    Create Disk Resource

    Resources are created with functions called constructors. To learn more about declaring and configuring resources, see Resources.

    Constructor syntax

    new Disk(name: string, args: DiskArgs, opts?: CustomResourceOptions);
    @overload
    def Disk(resource_name: str,
             args: DiskArgs,
             opts: Optional[ResourceOptions] = None)
    
    @overload
    def Disk(resource_name: str,
             opts: Optional[ResourceOptions] = None,
             creation_data: Optional[CreationDataArgs] = None,
             resource_group_name: Optional[str] = None,
             hyper_v_generation: Optional[Union[str, HyperVGeneration]] = None,
             tags: Optional[Mapping[str, str]] = None,
             disk_access_id: Optional[str] = None,
             disk_iops_read_only: Optional[float] = None,
             disk_iops_read_write: Optional[float] = None,
             disk_m_bps_read_only: Optional[float] = None,
             disk_m_bps_read_write: Optional[float] = None,
             disk_name: Optional[str] = None,
             disk_size_gb: Optional[int] = None,
             encryption: Optional[EncryptionArgs] = None,
             encryption_settings_collection: Optional[EncryptionSettingsCollectionArgs] = None,
             extended_location: Optional[ExtendedLocationArgs] = None,
             zones: Optional[Sequence[str]] = None,
             data_access_auth_mode: Optional[Union[str, DataAccessAuthMode]] = None,
             public_network_access: Optional[Union[str, PublicNetworkAccess]] = None,
             network_access_policy: Optional[Union[str, NetworkAccessPolicy]] = None,
             optimized_for_frequent_attach: Optional[bool] = None,
             os_type: Optional[OperatingSystemTypes] = None,
             max_shares: Optional[int] = None,
             purchase_plan: Optional[PurchasePlanArgs] = None,
             completion_percent: Optional[float] = None,
             security_profile: Optional[DiskSecurityProfileArgs] = None,
             sku: Optional[DiskSkuArgs] = None,
             supported_capabilities: Optional[SupportedCapabilitiesArgs] = None,
             supports_hibernation: Optional[bool] = None,
             location: Optional[str] = None,
             tier: Optional[str] = None,
             bursting_enabled: Optional[bool] = None)
    func NewDisk(ctx *Context, name string, args DiskArgs, opts ...ResourceOption) (*Disk, error)
    public Disk(string name, DiskArgs args, CustomResourceOptions? opts = null)
    public Disk(String name, DiskArgs args)
    public Disk(String name, DiskArgs args, CustomResourceOptions options)
    
    type: azure-native:compute:Disk
    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 DiskArgs
    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 DiskArgs
    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 DiskArgs
    The arguments to resource properties.
    opts ResourceOption
    Bag of options to control resource's behavior.
    name string
    The unique name of the resource.
    args DiskArgs
    The arguments to resource properties.
    opts CustomResourceOptions
    Bag of options to control resource's behavior.
    name String
    The unique name of the resource.
    args DiskArgs
    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 diskResource = new AzureNative.Compute.Disk("diskResource", new()
    {
        CreationData = new AzureNative.Compute.Inputs.CreationDataArgs
        {
            CreateOption = "string",
            GalleryImageReference = new AzureNative.Compute.Inputs.ImageDiskReferenceArgs
            {
                CommunityGalleryImageId = "string",
                Id = "string",
                Lun = 0,
                SharedGalleryImageId = "string",
            },
            ImageReference = new AzureNative.Compute.Inputs.ImageDiskReferenceArgs
            {
                CommunityGalleryImageId = "string",
                Id = "string",
                Lun = 0,
                SharedGalleryImageId = "string",
            },
            LogicalSectorSize = 0,
            PerformancePlus = false,
            SecurityDataUri = "string",
            SourceResourceId = "string",
            SourceUri = "string",
            StorageAccountId = "string",
            UploadSizeBytes = 0,
        },
        ResourceGroupName = "string",
        HyperVGeneration = "string",
        Tags = 
        {
            { "string", "string" },
        },
        DiskAccessId = "string",
        DiskIOPSReadOnly = 0,
        DiskIOPSReadWrite = 0,
        DiskMBpsReadOnly = 0,
        DiskMBpsReadWrite = 0,
        DiskName = "string",
        DiskSizeGB = 0,
        Encryption = new AzureNative.Compute.Inputs.EncryptionArgs
        {
            DiskEncryptionSetId = "string",
            Type = "string",
        },
        EncryptionSettingsCollection = new AzureNative.Compute.Inputs.EncryptionSettingsCollectionArgs
        {
            Enabled = false,
            EncryptionSettings = new[]
            {
                new AzureNative.Compute.Inputs.EncryptionSettingsElementArgs
                {
                    DiskEncryptionKey = new AzureNative.Compute.Inputs.KeyVaultAndSecretReferenceArgs
                    {
                        SecretUrl = "string",
                        SourceVault = new AzureNative.Compute.Inputs.SourceVaultArgs
                        {
                            Id = "string",
                        },
                    },
                    KeyEncryptionKey = new AzureNative.Compute.Inputs.KeyVaultAndKeyReferenceArgs
                    {
                        KeyUrl = "string",
                        SourceVault = new AzureNative.Compute.Inputs.SourceVaultArgs
                        {
                            Id = "string",
                        },
                    },
                },
            },
            EncryptionSettingsVersion = "string",
        },
        ExtendedLocation = new AzureNative.Compute.Inputs.ExtendedLocationArgs
        {
            Name = "string",
            Type = "string",
        },
        Zones = new[]
        {
            "string",
        },
        DataAccessAuthMode = "string",
        PublicNetworkAccess = "string",
        NetworkAccessPolicy = "string",
        OptimizedForFrequentAttach = false,
        OsType = AzureNative.Compute.OperatingSystemTypes.Windows,
        MaxShares = 0,
        PurchasePlan = new AzureNative.Compute.Inputs.PurchasePlanArgs
        {
            Name = "string",
            Product = "string",
            Publisher = "string",
            PromotionCode = "string",
        },
        CompletionPercent = 0,
        SecurityProfile = new AzureNative.Compute.Inputs.DiskSecurityProfileArgs
        {
            SecureVMDiskEncryptionSetId = "string",
            SecurityType = "string",
        },
        Sku = new AzureNative.Compute.Inputs.DiskSkuArgs
        {
            Name = "string",
        },
        SupportedCapabilities = new AzureNative.Compute.Inputs.SupportedCapabilitiesArgs
        {
            AcceleratedNetwork = false,
            Architecture = "string",
            DiskControllerTypes = "string",
        },
        SupportsHibernation = false,
        Location = "string",
        Tier = "string",
        BurstingEnabled = false,
    });
    
    example, err := compute.NewDisk(ctx, "diskResource", &compute.DiskArgs{
    	CreationData: &compute.CreationDataArgs{
    		CreateOption: pulumi.String("string"),
    		GalleryImageReference: &compute.ImageDiskReferenceArgs{
    			CommunityGalleryImageId: pulumi.String("string"),
    			Id:                      pulumi.String("string"),
    			Lun:                     pulumi.Int(0),
    			SharedGalleryImageId:    pulumi.String("string"),
    		},
    		ImageReference: &compute.ImageDiskReferenceArgs{
    			CommunityGalleryImageId: pulumi.String("string"),
    			Id:                      pulumi.String("string"),
    			Lun:                     pulumi.Int(0),
    			SharedGalleryImageId:    pulumi.String("string"),
    		},
    		LogicalSectorSize: pulumi.Int(0),
    		PerformancePlus:   pulumi.Bool(false),
    		SecurityDataUri:   pulumi.String("string"),
    		SourceResourceId:  pulumi.String("string"),
    		SourceUri:         pulumi.String("string"),
    		StorageAccountId:  pulumi.String("string"),
    		UploadSizeBytes:   pulumi.Float64(0),
    	},
    	ResourceGroupName: pulumi.String("string"),
    	HyperVGeneration:  pulumi.String("string"),
    	Tags: pulumi.StringMap{
    		"string": pulumi.String("string"),
    	},
    	DiskAccessId:      pulumi.String("string"),
    	DiskIOPSReadOnly:  pulumi.Float64(0),
    	DiskIOPSReadWrite: pulumi.Float64(0),
    	DiskMBpsReadOnly:  pulumi.Float64(0),
    	DiskMBpsReadWrite: pulumi.Float64(0),
    	DiskName:          pulumi.String("string"),
    	DiskSizeGB:        pulumi.Int(0),
    	Encryption: &compute.EncryptionArgs{
    		DiskEncryptionSetId: pulumi.String("string"),
    		Type:                pulumi.String("string"),
    	},
    	EncryptionSettingsCollection: &compute.EncryptionSettingsCollectionArgs{
    		Enabled: pulumi.Bool(false),
    		EncryptionSettings: compute.EncryptionSettingsElementArray{
    			&compute.EncryptionSettingsElementArgs{
    				DiskEncryptionKey: &compute.KeyVaultAndSecretReferenceArgs{
    					SecretUrl: pulumi.String("string"),
    					SourceVault: &compute.SourceVaultArgs{
    						Id: pulumi.String("string"),
    					},
    				},
    				KeyEncryptionKey: &compute.KeyVaultAndKeyReferenceArgs{
    					KeyUrl: pulumi.String("string"),
    					SourceVault: &compute.SourceVaultArgs{
    						Id: pulumi.String("string"),
    					},
    				},
    			},
    		},
    		EncryptionSettingsVersion: pulumi.String("string"),
    	},
    	ExtendedLocation: &compute.ExtendedLocationArgs{
    		Name: pulumi.String("string"),
    		Type: pulumi.String("string"),
    	},
    	Zones: pulumi.StringArray{
    		pulumi.String("string"),
    	},
    	DataAccessAuthMode:         pulumi.String("string"),
    	PublicNetworkAccess:        pulumi.String("string"),
    	NetworkAccessPolicy:        pulumi.String("string"),
    	OptimizedForFrequentAttach: pulumi.Bool(false),
    	OsType:                     compute.OperatingSystemTypesWindows,
    	MaxShares:                  pulumi.Int(0),
    	PurchasePlan: &compute.PurchasePlanArgs{
    		Name:          pulumi.String("string"),
    		Product:       pulumi.String("string"),
    		Publisher:     pulumi.String("string"),
    		PromotionCode: pulumi.String("string"),
    	},
    	CompletionPercent: pulumi.Float64(0),
    	SecurityProfile: &compute.DiskSecurityProfileArgs{
    		SecureVMDiskEncryptionSetId: pulumi.String("string"),
    		SecurityType:                pulumi.String("string"),
    	},
    	Sku: &compute.DiskSkuArgs{
    		Name: pulumi.String("string"),
    	},
    	SupportedCapabilities: &compute.SupportedCapabilitiesArgs{
    		AcceleratedNetwork:  pulumi.Bool(false),
    		Architecture:        pulumi.String("string"),
    		DiskControllerTypes: pulumi.String("string"),
    	},
    	SupportsHibernation: pulumi.Bool(false),
    	Location:            pulumi.String("string"),
    	Tier:                pulumi.String("string"),
    	BurstingEnabled:     pulumi.Bool(false),
    })
    
    var diskResource = new Disk("diskResource", DiskArgs.builder()
        .creationData(CreationDataArgs.builder()
            .createOption("string")
            .galleryImageReference(ImageDiskReferenceArgs.builder()
                .communityGalleryImageId("string")
                .id("string")
                .lun(0)
                .sharedGalleryImageId("string")
                .build())
            .imageReference(ImageDiskReferenceArgs.builder()
                .communityGalleryImageId("string")
                .id("string")
                .lun(0)
                .sharedGalleryImageId("string")
                .build())
            .logicalSectorSize(0)
            .performancePlus(false)
            .securityDataUri("string")
            .sourceResourceId("string")
            .sourceUri("string")
            .storageAccountId("string")
            .uploadSizeBytes(0)
            .build())
        .resourceGroupName("string")
        .hyperVGeneration("string")
        .tags(Map.of("string", "string"))
        .diskAccessId("string")
        .diskIOPSReadOnly(0)
        .diskIOPSReadWrite(0)
        .diskMBpsReadOnly(0)
        .diskMBpsReadWrite(0)
        .diskName("string")
        .diskSizeGB(0)
        .encryption(EncryptionArgs.builder()
            .diskEncryptionSetId("string")
            .type("string")
            .build())
        .encryptionSettingsCollection(EncryptionSettingsCollectionArgs.builder()
            .enabled(false)
            .encryptionSettings(EncryptionSettingsElementArgs.builder()
                .diskEncryptionKey(KeyVaultAndSecretReferenceArgs.builder()
                    .secretUrl("string")
                    .sourceVault(SourceVaultArgs.builder()
                        .id("string")
                        .build())
                    .build())
                .keyEncryptionKey(KeyVaultAndKeyReferenceArgs.builder()
                    .keyUrl("string")
                    .sourceVault(SourceVaultArgs.builder()
                        .id("string")
                        .build())
                    .build())
                .build())
            .encryptionSettingsVersion("string")
            .build())
        .extendedLocation(ExtendedLocationArgs.builder()
            .name("string")
            .type("string")
            .build())
        .zones("string")
        .dataAccessAuthMode("string")
        .publicNetworkAccess("string")
        .networkAccessPolicy("string")
        .optimizedForFrequentAttach(false)
        .osType("Windows")
        .maxShares(0)
        .purchasePlan(PurchasePlanArgs.builder()
            .name("string")
            .product("string")
            .publisher("string")
            .promotionCode("string")
            .build())
        .completionPercent(0)
        .securityProfile(DiskSecurityProfileArgs.builder()
            .secureVMDiskEncryptionSetId("string")
            .securityType("string")
            .build())
        .sku(DiskSkuArgs.builder()
            .name("string")
            .build())
        .supportedCapabilities(SupportedCapabilitiesArgs.builder()
            .acceleratedNetwork(false)
            .architecture("string")
            .diskControllerTypes("string")
            .build())
        .supportsHibernation(false)
        .location("string")
        .tier("string")
        .burstingEnabled(false)
        .build());
    
    disk_resource = azure_native.compute.Disk("diskResource",
        creation_data={
            "createOption": "string",
            "galleryImageReference": {
                "communityGalleryImageId": "string",
                "id": "string",
                "lun": 0,
                "sharedGalleryImageId": "string",
            },
            "imageReference": {
                "communityGalleryImageId": "string",
                "id": "string",
                "lun": 0,
                "sharedGalleryImageId": "string",
            },
            "logicalSectorSize": 0,
            "performancePlus": False,
            "securityDataUri": "string",
            "sourceResourceId": "string",
            "sourceUri": "string",
            "storageAccountId": "string",
            "uploadSizeBytes": 0,
        },
        resource_group_name="string",
        hyper_v_generation="string",
        tags={
            "string": "string",
        },
        disk_access_id="string",
        disk_iops_read_only=0,
        disk_iops_read_write=0,
        disk_m_bps_read_only=0,
        disk_m_bps_read_write=0,
        disk_name="string",
        disk_size_gb=0,
        encryption={
            "diskEncryptionSetId": "string",
            "type": "string",
        },
        encryption_settings_collection={
            "enabled": False,
            "encryptionSettings": [{
                "diskEncryptionKey": {
                    "secretUrl": "string",
                    "sourceVault": {
                        "id": "string",
                    },
                },
                "keyEncryptionKey": {
                    "keyUrl": "string",
                    "sourceVault": {
                        "id": "string",
                    },
                },
            }],
            "encryptionSettingsVersion": "string",
        },
        extended_location={
            "name": "string",
            "type": "string",
        },
        zones=["string"],
        data_access_auth_mode="string",
        public_network_access="string",
        network_access_policy="string",
        optimized_for_frequent_attach=False,
        os_type=azure_native.compute.OperatingSystemTypes.WINDOWS,
        max_shares=0,
        purchase_plan={
            "name": "string",
            "product": "string",
            "publisher": "string",
            "promotionCode": "string",
        },
        completion_percent=0,
        security_profile={
            "secureVMDiskEncryptionSetId": "string",
            "securityType": "string",
        },
        sku={
            "name": "string",
        },
        supported_capabilities={
            "acceleratedNetwork": False,
            "architecture": "string",
            "diskControllerTypes": "string",
        },
        supports_hibernation=False,
        location="string",
        tier="string",
        bursting_enabled=False)
    
    const diskResource = new azure_native.compute.Disk("diskResource", {
        creationData: {
            createOption: "string",
            galleryImageReference: {
                communityGalleryImageId: "string",
                id: "string",
                lun: 0,
                sharedGalleryImageId: "string",
            },
            imageReference: {
                communityGalleryImageId: "string",
                id: "string",
                lun: 0,
                sharedGalleryImageId: "string",
            },
            logicalSectorSize: 0,
            performancePlus: false,
            securityDataUri: "string",
            sourceResourceId: "string",
            sourceUri: "string",
            storageAccountId: "string",
            uploadSizeBytes: 0,
        },
        resourceGroupName: "string",
        hyperVGeneration: "string",
        tags: {
            string: "string",
        },
        diskAccessId: "string",
        diskIOPSReadOnly: 0,
        diskIOPSReadWrite: 0,
        diskMBpsReadOnly: 0,
        diskMBpsReadWrite: 0,
        diskName: "string",
        diskSizeGB: 0,
        encryption: {
            diskEncryptionSetId: "string",
            type: "string",
        },
        encryptionSettingsCollection: {
            enabled: false,
            encryptionSettings: [{
                diskEncryptionKey: {
                    secretUrl: "string",
                    sourceVault: {
                        id: "string",
                    },
                },
                keyEncryptionKey: {
                    keyUrl: "string",
                    sourceVault: {
                        id: "string",
                    },
                },
            }],
            encryptionSettingsVersion: "string",
        },
        extendedLocation: {
            name: "string",
            type: "string",
        },
        zones: ["string"],
        dataAccessAuthMode: "string",
        publicNetworkAccess: "string",
        networkAccessPolicy: "string",
        optimizedForFrequentAttach: false,
        osType: azure_native.compute.OperatingSystemTypes.Windows,
        maxShares: 0,
        purchasePlan: {
            name: "string",
            product: "string",
            publisher: "string",
            promotionCode: "string",
        },
        completionPercent: 0,
        securityProfile: {
            secureVMDiskEncryptionSetId: "string",
            securityType: "string",
        },
        sku: {
            name: "string",
        },
        supportedCapabilities: {
            acceleratedNetwork: false,
            architecture: "string",
            diskControllerTypes: "string",
        },
        supportsHibernation: false,
        location: "string",
        tier: "string",
        burstingEnabled: false,
    });
    
    type: azure-native:compute:Disk
    properties:
        burstingEnabled: false
        completionPercent: 0
        creationData:
            createOption: string
            galleryImageReference:
                communityGalleryImageId: string
                id: string
                lun: 0
                sharedGalleryImageId: string
            imageReference:
                communityGalleryImageId: string
                id: string
                lun: 0
                sharedGalleryImageId: string
            logicalSectorSize: 0
            performancePlus: false
            securityDataUri: string
            sourceResourceId: string
            sourceUri: string
            storageAccountId: string
            uploadSizeBytes: 0
        dataAccessAuthMode: string
        diskAccessId: string
        diskIOPSReadOnly: 0
        diskIOPSReadWrite: 0
        diskMBpsReadOnly: 0
        diskMBpsReadWrite: 0
        diskName: string
        diskSizeGB: 0
        encryption:
            diskEncryptionSetId: string
            type: string
        encryptionSettingsCollection:
            enabled: false
            encryptionSettings:
                - diskEncryptionKey:
                    secretUrl: string
                    sourceVault:
                        id: string
                  keyEncryptionKey:
                    keyUrl: string
                    sourceVault:
                        id: string
            encryptionSettingsVersion: string
        extendedLocation:
            name: string
            type: string
        hyperVGeneration: string
        location: string
        maxShares: 0
        networkAccessPolicy: string
        optimizedForFrequentAttach: false
        osType: Windows
        publicNetworkAccess: string
        purchasePlan:
            name: string
            product: string
            promotionCode: string
            publisher: string
        resourceGroupName: string
        securityProfile:
            secureVMDiskEncryptionSetId: string
            securityType: string
        sku:
            name: string
        supportedCapabilities:
            acceleratedNetwork: false
            architecture: string
            diskControllerTypes: string
        supportsHibernation: false
        tags:
            string: string
        tier: string
        zones:
            - string
    

    Disk Resource Properties

    To learn more about resource properties and how to use them, see Inputs and Outputs in the Architecture and Concepts docs.

    Inputs

    The Disk resource accepts the following input properties:

    CreationData Pulumi.AzureNative.Compute.Inputs.CreationData
    Disk source information. CreationData information cannot be changed after the disk has been created.
    ResourceGroupName string
    The name of the resource group.
    BurstingEnabled bool
    Set to true to enable bursting beyond the provisioned performance target of the disk. Bursting is disabled by default. Does not apply to Ultra disks.
    CompletionPercent double
    Percentage complete for the background copy when a resource is created via the CopyStart operation.
    DataAccessAuthMode string | Pulumi.AzureNative.Compute.DataAccessAuthMode
    Additional authentication requirements when exporting or uploading to a disk or snapshot.
    DiskAccessId string
    ARM id of the DiskAccess resource for using private endpoints on disks.
    DiskIOPSReadOnly double
    The total number of IOPS that will be allowed across all VMs mounting the shared disk as ReadOnly. One operation can transfer between 4k and 256k bytes.
    DiskIOPSReadWrite double
    The number of IOPS allowed for this disk; only settable for UltraSSD disks. One operation can transfer between 4k and 256k bytes.
    DiskMBpsReadOnly double
    The total throughput (MBps) that will be allowed across all VMs mounting the shared disk as ReadOnly. MBps means millions of bytes per second - MB here uses the ISO notation, of powers of 10.
    DiskMBpsReadWrite double
    The bandwidth allowed for this disk; only settable for UltraSSD disks. MBps means millions of bytes per second - MB here uses the ISO notation, of powers of 10.
    DiskName string
    The name of the managed disk that is being created. The name can't be changed after the disk is created. Supported characters for the name are a-z, A-Z, 0-9, _ and -. The maximum name length is 80 characters.
    DiskSizeGB int
    If creationData.createOption is Empty, this field is mandatory and it indicates the size of the disk to create. If this field is present for updates or creation with other options, it indicates a resize. Resizes are only allowed if the disk is not attached to a running VM, and can only increase the disk's size.
    Encryption Pulumi.AzureNative.Compute.Inputs.Encryption
    Encryption property can be used to encrypt data at rest with customer managed keys or platform managed keys.
    EncryptionSettingsCollection Pulumi.AzureNative.Compute.Inputs.EncryptionSettingsCollection
    Encryption settings collection used for Azure Disk Encryption, can contain multiple encryption settings per disk or snapshot.
    ExtendedLocation Pulumi.AzureNative.Compute.Inputs.ExtendedLocation
    The extended location where the disk will be created. Extended location cannot be changed.
    HyperVGeneration string | Pulumi.AzureNative.Compute.HyperVGeneration
    The hypervisor generation of the Virtual Machine. Applicable to OS disks only.
    Location string
    Resource location
    MaxShares int
    The maximum number of VMs that can attach to the disk at the same time. Value greater than one indicates a disk that can be mounted on multiple VMs at the same time.
    NetworkAccessPolicy string | Pulumi.AzureNative.Compute.NetworkAccessPolicy
    Policy for accessing the disk via network.
    OptimizedForFrequentAttach bool
    Setting this property to true improves reliability and performance of data disks that are frequently (more than 5 times a day) by detached from one virtual machine and attached to another. This property should not be set for disks that are not detached and attached frequently as it causes the disks to not align with the fault domain of the virtual machine.
    OsType Pulumi.AzureNative.Compute.OperatingSystemTypes
    The Operating System type.
    PublicNetworkAccess string | Pulumi.AzureNative.Compute.PublicNetworkAccess
    Policy for controlling export on the disk.
    PurchasePlan Pulumi.AzureNative.Compute.Inputs.PurchasePlan
    Purchase plan information for the the image from which the OS disk was created. E.g. - {name: 2019-Datacenter, publisher: MicrosoftWindowsServer, product: WindowsServer}
    SecurityProfile Pulumi.AzureNative.Compute.Inputs.DiskSecurityProfile
    Contains the security related information for the resource.
    Sku Pulumi.AzureNative.Compute.Inputs.DiskSku
    The disks sku name. Can be Standard_LRS, Premium_LRS, StandardSSD_LRS, UltraSSD_LRS, Premium_ZRS, StandardSSD_ZRS, or PremiumV2_LRS.
    SupportedCapabilities Pulumi.AzureNative.Compute.Inputs.SupportedCapabilities
    List of supported capabilities for the image from which the OS disk was created.
    SupportsHibernation bool
    Indicates the OS on a disk supports hibernation.
    Tags Dictionary<string, string>
    Resource tags
    Tier string
    Performance tier of the disk (e.g, P4, S10) as described here: https://azure.microsoft.com/en-us/pricing/details/managed-disks/. Does not apply to Ultra disks.
    Zones List<string>
    The Logical zone list for Disk.
    CreationData CreationDataArgs
    Disk source information. CreationData information cannot be changed after the disk has been created.
    ResourceGroupName string
    The name of the resource group.
    BurstingEnabled bool
    Set to true to enable bursting beyond the provisioned performance target of the disk. Bursting is disabled by default. Does not apply to Ultra disks.
    CompletionPercent float64
    Percentage complete for the background copy when a resource is created via the CopyStart operation.
    DataAccessAuthMode string | DataAccessAuthMode
    Additional authentication requirements when exporting or uploading to a disk or snapshot.
    DiskAccessId string
    ARM id of the DiskAccess resource for using private endpoints on disks.
    DiskIOPSReadOnly float64
    The total number of IOPS that will be allowed across all VMs mounting the shared disk as ReadOnly. One operation can transfer between 4k and 256k bytes.
    DiskIOPSReadWrite float64
    The number of IOPS allowed for this disk; only settable for UltraSSD disks. One operation can transfer between 4k and 256k bytes.
    DiskMBpsReadOnly float64
    The total throughput (MBps) that will be allowed across all VMs mounting the shared disk as ReadOnly. MBps means millions of bytes per second - MB here uses the ISO notation, of powers of 10.
    DiskMBpsReadWrite float64
    The bandwidth allowed for this disk; only settable for UltraSSD disks. MBps means millions of bytes per second - MB here uses the ISO notation, of powers of 10.
    DiskName string
    The name of the managed disk that is being created. The name can't be changed after the disk is created. Supported characters for the name are a-z, A-Z, 0-9, _ and -. The maximum name length is 80 characters.
    DiskSizeGB int
    If creationData.createOption is Empty, this field is mandatory and it indicates the size of the disk to create. If this field is present for updates or creation with other options, it indicates a resize. Resizes are only allowed if the disk is not attached to a running VM, and can only increase the disk's size.
    Encryption EncryptionArgs
    Encryption property can be used to encrypt data at rest with customer managed keys or platform managed keys.
    EncryptionSettingsCollection EncryptionSettingsCollectionArgs
    Encryption settings collection used for Azure Disk Encryption, can contain multiple encryption settings per disk or snapshot.
    ExtendedLocation ExtendedLocationArgs
    The extended location where the disk will be created. Extended location cannot be changed.
    HyperVGeneration string | HyperVGeneration
    The hypervisor generation of the Virtual Machine. Applicable to OS disks only.
    Location string
    Resource location
    MaxShares int
    The maximum number of VMs that can attach to the disk at the same time. Value greater than one indicates a disk that can be mounted on multiple VMs at the same time.
    NetworkAccessPolicy string | NetworkAccessPolicy
    Policy for accessing the disk via network.
    OptimizedForFrequentAttach bool
    Setting this property to true improves reliability and performance of data disks that are frequently (more than 5 times a day) by detached from one virtual machine and attached to another. This property should not be set for disks that are not detached and attached frequently as it causes the disks to not align with the fault domain of the virtual machine.
    OsType OperatingSystemTypes
    The Operating System type.
    PublicNetworkAccess string | PublicNetworkAccess
    Policy for controlling export on the disk.
    PurchasePlan PurchasePlanArgs
    Purchase plan information for the the image from which the OS disk was created. E.g. - {name: 2019-Datacenter, publisher: MicrosoftWindowsServer, product: WindowsServer}
    SecurityProfile DiskSecurityProfileArgs
    Contains the security related information for the resource.
    Sku DiskSkuArgs
    The disks sku name. Can be Standard_LRS, Premium_LRS, StandardSSD_LRS, UltraSSD_LRS, Premium_ZRS, StandardSSD_ZRS, or PremiumV2_LRS.
    SupportedCapabilities SupportedCapabilitiesArgs
    List of supported capabilities for the image from which the OS disk was created.
    SupportsHibernation bool
    Indicates the OS on a disk supports hibernation.
    Tags map[string]string
    Resource tags
    Tier string
    Performance tier of the disk (e.g, P4, S10) as described here: https://azure.microsoft.com/en-us/pricing/details/managed-disks/. Does not apply to Ultra disks.
    Zones []string
    The Logical zone list for Disk.
    creationData CreationData
    Disk source information. CreationData information cannot be changed after the disk has been created.
    resourceGroupName String
    The name of the resource group.
    burstingEnabled Boolean
    Set to true to enable bursting beyond the provisioned performance target of the disk. Bursting is disabled by default. Does not apply to Ultra disks.
    completionPercent Double
    Percentage complete for the background copy when a resource is created via the CopyStart operation.
    dataAccessAuthMode String | DataAccessAuthMode
    Additional authentication requirements when exporting or uploading to a disk or snapshot.
    diskAccessId String
    ARM id of the DiskAccess resource for using private endpoints on disks.
    diskIOPSReadOnly Double
    The total number of IOPS that will be allowed across all VMs mounting the shared disk as ReadOnly. One operation can transfer between 4k and 256k bytes.
    diskIOPSReadWrite Double
    The number of IOPS allowed for this disk; only settable for UltraSSD disks. One operation can transfer between 4k and 256k bytes.
    diskMBpsReadOnly Double
    The total throughput (MBps) that will be allowed across all VMs mounting the shared disk as ReadOnly. MBps means millions of bytes per second - MB here uses the ISO notation, of powers of 10.
    diskMBpsReadWrite Double
    The bandwidth allowed for this disk; only settable for UltraSSD disks. MBps means millions of bytes per second - MB here uses the ISO notation, of powers of 10.
    diskName String
    The name of the managed disk that is being created. The name can't be changed after the disk is created. Supported characters for the name are a-z, A-Z, 0-9, _ and -. The maximum name length is 80 characters.
    diskSizeGB Integer
    If creationData.createOption is Empty, this field is mandatory and it indicates the size of the disk to create. If this field is present for updates or creation with other options, it indicates a resize. Resizes are only allowed if the disk is not attached to a running VM, and can only increase the disk's size.
    encryption Encryption
    Encryption property can be used to encrypt data at rest with customer managed keys or platform managed keys.
    encryptionSettingsCollection EncryptionSettingsCollection
    Encryption settings collection used for Azure Disk Encryption, can contain multiple encryption settings per disk or snapshot.
    extendedLocation ExtendedLocation
    The extended location where the disk will be created. Extended location cannot be changed.
    hyperVGeneration String | HyperVGeneration
    The hypervisor generation of the Virtual Machine. Applicable to OS disks only.
    location String
    Resource location
    maxShares Integer
    The maximum number of VMs that can attach to the disk at the same time. Value greater than one indicates a disk that can be mounted on multiple VMs at the same time.
    networkAccessPolicy String | NetworkAccessPolicy
    Policy for accessing the disk via network.
    optimizedForFrequentAttach Boolean
    Setting this property to true improves reliability and performance of data disks that are frequently (more than 5 times a day) by detached from one virtual machine and attached to another. This property should not be set for disks that are not detached and attached frequently as it causes the disks to not align with the fault domain of the virtual machine.
    osType OperatingSystemTypes
    The Operating System type.
    publicNetworkAccess String | PublicNetworkAccess
    Policy for controlling export on the disk.
    purchasePlan PurchasePlan
    Purchase plan information for the the image from which the OS disk was created. E.g. - {name: 2019-Datacenter, publisher: MicrosoftWindowsServer, product: WindowsServer}
    securityProfile DiskSecurityProfile
    Contains the security related information for the resource.
    sku DiskSku
    The disks sku name. Can be Standard_LRS, Premium_LRS, StandardSSD_LRS, UltraSSD_LRS, Premium_ZRS, StandardSSD_ZRS, or PremiumV2_LRS.
    supportedCapabilities SupportedCapabilities
    List of supported capabilities for the image from which the OS disk was created.
    supportsHibernation Boolean
    Indicates the OS on a disk supports hibernation.
    tags Map<String,String>
    Resource tags
    tier String
    Performance tier of the disk (e.g, P4, S10) as described here: https://azure.microsoft.com/en-us/pricing/details/managed-disks/. Does not apply to Ultra disks.
    zones List<String>
    The Logical zone list for Disk.
    creationData CreationData
    Disk source information. CreationData information cannot be changed after the disk has been created.
    resourceGroupName string
    The name of the resource group.
    burstingEnabled boolean
    Set to true to enable bursting beyond the provisioned performance target of the disk. Bursting is disabled by default. Does not apply to Ultra disks.
    completionPercent number
    Percentage complete for the background copy when a resource is created via the CopyStart operation.
    dataAccessAuthMode string | DataAccessAuthMode
    Additional authentication requirements when exporting or uploading to a disk or snapshot.
    diskAccessId string
    ARM id of the DiskAccess resource for using private endpoints on disks.
    diskIOPSReadOnly number
    The total number of IOPS that will be allowed across all VMs mounting the shared disk as ReadOnly. One operation can transfer between 4k and 256k bytes.
    diskIOPSReadWrite number
    The number of IOPS allowed for this disk; only settable for UltraSSD disks. One operation can transfer between 4k and 256k bytes.
    diskMBpsReadOnly number
    The total throughput (MBps) that will be allowed across all VMs mounting the shared disk as ReadOnly. MBps means millions of bytes per second - MB here uses the ISO notation, of powers of 10.
    diskMBpsReadWrite number
    The bandwidth allowed for this disk; only settable for UltraSSD disks. MBps means millions of bytes per second - MB here uses the ISO notation, of powers of 10.
    diskName string
    The name of the managed disk that is being created. The name can't be changed after the disk is created. Supported characters for the name are a-z, A-Z, 0-9, _ and -. The maximum name length is 80 characters.
    diskSizeGB number
    If creationData.createOption is Empty, this field is mandatory and it indicates the size of the disk to create. If this field is present for updates or creation with other options, it indicates a resize. Resizes are only allowed if the disk is not attached to a running VM, and can only increase the disk's size.
    encryption Encryption
    Encryption property can be used to encrypt data at rest with customer managed keys or platform managed keys.
    encryptionSettingsCollection EncryptionSettingsCollection
    Encryption settings collection used for Azure Disk Encryption, can contain multiple encryption settings per disk or snapshot.
    extendedLocation ExtendedLocation
    The extended location where the disk will be created. Extended location cannot be changed.
    hyperVGeneration string | HyperVGeneration
    The hypervisor generation of the Virtual Machine. Applicable to OS disks only.
    location string
    Resource location
    maxShares number
    The maximum number of VMs that can attach to the disk at the same time. Value greater than one indicates a disk that can be mounted on multiple VMs at the same time.
    networkAccessPolicy string | NetworkAccessPolicy
    Policy for accessing the disk via network.
    optimizedForFrequentAttach boolean
    Setting this property to true improves reliability and performance of data disks that are frequently (more than 5 times a day) by detached from one virtual machine and attached to another. This property should not be set for disks that are not detached and attached frequently as it causes the disks to not align with the fault domain of the virtual machine.
    osType OperatingSystemTypes
    The Operating System type.
    publicNetworkAccess string | PublicNetworkAccess
    Policy for controlling export on the disk.
    purchasePlan PurchasePlan
    Purchase plan information for the the image from which the OS disk was created. E.g. - {name: 2019-Datacenter, publisher: MicrosoftWindowsServer, product: WindowsServer}
    securityProfile DiskSecurityProfile
    Contains the security related information for the resource.
    sku DiskSku
    The disks sku name. Can be Standard_LRS, Premium_LRS, StandardSSD_LRS, UltraSSD_LRS, Premium_ZRS, StandardSSD_ZRS, or PremiumV2_LRS.
    supportedCapabilities SupportedCapabilities
    List of supported capabilities for the image from which the OS disk was created.
    supportsHibernation boolean
    Indicates the OS on a disk supports hibernation.
    tags {[key: string]: string}
    Resource tags
    tier string
    Performance tier of the disk (e.g, P4, S10) as described here: https://azure.microsoft.com/en-us/pricing/details/managed-disks/. Does not apply to Ultra disks.
    zones string[]
    The Logical zone list for Disk.
    creation_data CreationDataArgs
    Disk source information. CreationData information cannot be changed after the disk has been created.
    resource_group_name str
    The name of the resource group.
    bursting_enabled bool
    Set to true to enable bursting beyond the provisioned performance target of the disk. Bursting is disabled by default. Does not apply to Ultra disks.
    completion_percent float
    Percentage complete for the background copy when a resource is created via the CopyStart operation.
    data_access_auth_mode str | DataAccessAuthMode
    Additional authentication requirements when exporting or uploading to a disk or snapshot.
    disk_access_id str
    ARM id of the DiskAccess resource for using private endpoints on disks.
    disk_iops_read_only float
    The total number of IOPS that will be allowed across all VMs mounting the shared disk as ReadOnly. One operation can transfer between 4k and 256k bytes.
    disk_iops_read_write float
    The number of IOPS allowed for this disk; only settable for UltraSSD disks. One operation can transfer between 4k and 256k bytes.
    disk_m_bps_read_only float
    The total throughput (MBps) that will be allowed across all VMs mounting the shared disk as ReadOnly. MBps means millions of bytes per second - MB here uses the ISO notation, of powers of 10.
    disk_m_bps_read_write float
    The bandwidth allowed for this disk; only settable for UltraSSD disks. MBps means millions of bytes per second - MB here uses the ISO notation, of powers of 10.
    disk_name str
    The name of the managed disk that is being created. The name can't be changed after the disk is created. Supported characters for the name are a-z, A-Z, 0-9, _ and -. The maximum name length is 80 characters.
    disk_size_gb int
    If creationData.createOption is Empty, this field is mandatory and it indicates the size of the disk to create. If this field is present for updates or creation with other options, it indicates a resize. Resizes are only allowed if the disk is not attached to a running VM, and can only increase the disk's size.
    encryption EncryptionArgs
    Encryption property can be used to encrypt data at rest with customer managed keys or platform managed keys.
    encryption_settings_collection EncryptionSettingsCollectionArgs
    Encryption settings collection used for Azure Disk Encryption, can contain multiple encryption settings per disk or snapshot.
    extended_location ExtendedLocationArgs
    The extended location where the disk will be created. Extended location cannot be changed.
    hyper_v_generation str | HyperVGeneration
    The hypervisor generation of the Virtual Machine. Applicable to OS disks only.
    location str
    Resource location
    max_shares int
    The maximum number of VMs that can attach to the disk at the same time. Value greater than one indicates a disk that can be mounted on multiple VMs at the same time.
    network_access_policy str | NetworkAccessPolicy
    Policy for accessing the disk via network.
    optimized_for_frequent_attach bool
    Setting this property to true improves reliability and performance of data disks that are frequently (more than 5 times a day) by detached from one virtual machine and attached to another. This property should not be set for disks that are not detached and attached frequently as it causes the disks to not align with the fault domain of the virtual machine.
    os_type OperatingSystemTypes
    The Operating System type.
    public_network_access str | PublicNetworkAccess
    Policy for controlling export on the disk.
    purchase_plan PurchasePlanArgs
    Purchase plan information for the the image from which the OS disk was created. E.g. - {name: 2019-Datacenter, publisher: MicrosoftWindowsServer, product: WindowsServer}
    security_profile DiskSecurityProfileArgs
    Contains the security related information for the resource.
    sku DiskSkuArgs
    The disks sku name. Can be Standard_LRS, Premium_LRS, StandardSSD_LRS, UltraSSD_LRS, Premium_ZRS, StandardSSD_ZRS, or PremiumV2_LRS.
    supported_capabilities SupportedCapabilitiesArgs
    List of supported capabilities for the image from which the OS disk was created.
    supports_hibernation bool
    Indicates the OS on a disk supports hibernation.
    tags Mapping[str, str]
    Resource tags
    tier str
    Performance tier of the disk (e.g, P4, S10) as described here: https://azure.microsoft.com/en-us/pricing/details/managed-disks/. Does not apply to Ultra disks.
    zones Sequence[str]
    The Logical zone list for Disk.
    creationData Property Map
    Disk source information. CreationData information cannot be changed after the disk has been created.
    resourceGroupName String
    The name of the resource group.
    burstingEnabled Boolean
    Set to true to enable bursting beyond the provisioned performance target of the disk. Bursting is disabled by default. Does not apply to Ultra disks.
    completionPercent Number
    Percentage complete for the background copy when a resource is created via the CopyStart operation.
    dataAccessAuthMode String | "AzureActiveDirectory" | "None"
    Additional authentication requirements when exporting or uploading to a disk or snapshot.
    diskAccessId String
    ARM id of the DiskAccess resource for using private endpoints on disks.
    diskIOPSReadOnly Number
    The total number of IOPS that will be allowed across all VMs mounting the shared disk as ReadOnly. One operation can transfer between 4k and 256k bytes.
    diskIOPSReadWrite Number
    The number of IOPS allowed for this disk; only settable for UltraSSD disks. One operation can transfer between 4k and 256k bytes.
    diskMBpsReadOnly Number
    The total throughput (MBps) that will be allowed across all VMs mounting the shared disk as ReadOnly. MBps means millions of bytes per second - MB here uses the ISO notation, of powers of 10.
    diskMBpsReadWrite Number
    The bandwidth allowed for this disk; only settable for UltraSSD disks. MBps means millions of bytes per second - MB here uses the ISO notation, of powers of 10.
    diskName String
    The name of the managed disk that is being created. The name can't be changed after the disk is created. Supported characters for the name are a-z, A-Z, 0-9, _ and -. The maximum name length is 80 characters.
    diskSizeGB Number
    If creationData.createOption is Empty, this field is mandatory and it indicates the size of the disk to create. If this field is present for updates or creation with other options, it indicates a resize. Resizes are only allowed if the disk is not attached to a running VM, and can only increase the disk's size.
    encryption Property Map
    Encryption property can be used to encrypt data at rest with customer managed keys or platform managed keys.
    encryptionSettingsCollection Property Map
    Encryption settings collection used for Azure Disk Encryption, can contain multiple encryption settings per disk or snapshot.
    extendedLocation Property Map
    The extended location where the disk will be created. Extended location cannot be changed.
    hyperVGeneration String | "V1" | "V2"
    The hypervisor generation of the Virtual Machine. Applicable to OS disks only.
    location String
    Resource location
    maxShares Number
    The maximum number of VMs that can attach to the disk at the same time. Value greater than one indicates a disk that can be mounted on multiple VMs at the same time.
    networkAccessPolicy String | "AllowAll" | "AllowPrivate" | "DenyAll"
    Policy for accessing the disk via network.
    optimizedForFrequentAttach Boolean
    Setting this property to true improves reliability and performance of data disks that are frequently (more than 5 times a day) by detached from one virtual machine and attached to another. This property should not be set for disks that are not detached and attached frequently as it causes the disks to not align with the fault domain of the virtual machine.
    osType "Windows" | "Linux"
    The Operating System type.
    publicNetworkAccess String | "Enabled" | "Disabled"
    Policy for controlling export on the disk.
    purchasePlan Property Map
    Purchase plan information for the the image from which the OS disk was created. E.g. - {name: 2019-Datacenter, publisher: MicrosoftWindowsServer, product: WindowsServer}
    securityProfile Property Map
    Contains the security related information for the resource.
    sku Property Map
    The disks sku name. Can be Standard_LRS, Premium_LRS, StandardSSD_LRS, UltraSSD_LRS, Premium_ZRS, StandardSSD_ZRS, or PremiumV2_LRS.
    supportedCapabilities Property Map
    List of supported capabilities for the image from which the OS disk was created.
    supportsHibernation Boolean
    Indicates the OS on a disk supports hibernation.
    tags Map<String>
    Resource tags
    tier String
    Performance tier of the disk (e.g, P4, S10) as described here: https://azure.microsoft.com/en-us/pricing/details/managed-disks/. Does not apply to Ultra disks.
    zones List<String>
    The Logical zone list for Disk.

    Outputs

    All input properties are implicitly available as output properties. Additionally, the Disk resource produces the following output properties:

    BurstingEnabledTime string
    Latest time when bursting was last enabled on a disk.
    DiskSizeBytes double
    The size of the disk in bytes. This field is read only.
    DiskState string
    The state of the disk.
    Id string
    The provider-assigned unique ID for this managed resource.
    ManagedBy string
    A relative URI containing the ID of the VM that has the disk attached.
    ManagedByExtended List<string>
    List of relative URIs containing the IDs of the VMs that have the disk attached. maxShares should be set to a value greater than one for disks to allow attaching them to multiple VMs.
    Name string
    Resource name
    PropertyUpdatesInProgress Pulumi.AzureNative.Compute.Outputs.PropertyUpdatesInProgressResponse
    Properties of the disk for which update is pending.
    ProvisioningState string
    The disk provisioning state.
    ShareInfo List<Pulumi.AzureNative.Compute.Outputs.ShareInfoElementResponse>
    Details of the list of all VMs that have the disk attached. maxShares should be set to a value greater than one for disks to allow attaching them to multiple VMs.
    TimeCreated string
    The time when the disk was created.
    Type string
    Resource type
    UniqueId string
    Unique Guid identifying the resource.
    BurstingEnabledTime string
    Latest time when bursting was last enabled on a disk.
    DiskSizeBytes float64
    The size of the disk in bytes. This field is read only.
    DiskState string
    The state of the disk.
    Id string
    The provider-assigned unique ID for this managed resource.
    ManagedBy string
    A relative URI containing the ID of the VM that has the disk attached.
    ManagedByExtended []string
    List of relative URIs containing the IDs of the VMs that have the disk attached. maxShares should be set to a value greater than one for disks to allow attaching them to multiple VMs.
    Name string
    Resource name
    PropertyUpdatesInProgress PropertyUpdatesInProgressResponse
    Properties of the disk for which update is pending.
    ProvisioningState string
    The disk provisioning state.
    ShareInfo []ShareInfoElementResponse
    Details of the list of all VMs that have the disk attached. maxShares should be set to a value greater than one for disks to allow attaching them to multiple VMs.
    TimeCreated string
    The time when the disk was created.
    Type string
    Resource type
    UniqueId string
    Unique Guid identifying the resource.
    burstingEnabledTime String
    Latest time when bursting was last enabled on a disk.
    diskSizeBytes Double
    The size of the disk in bytes. This field is read only.
    diskState String
    The state of the disk.
    id String
    The provider-assigned unique ID for this managed resource.
    managedBy String
    A relative URI containing the ID of the VM that has the disk attached.
    managedByExtended List<String>
    List of relative URIs containing the IDs of the VMs that have the disk attached. maxShares should be set to a value greater than one for disks to allow attaching them to multiple VMs.
    name String
    Resource name
    propertyUpdatesInProgress PropertyUpdatesInProgressResponse
    Properties of the disk for which update is pending.
    provisioningState String
    The disk provisioning state.
    shareInfo List<ShareInfoElementResponse>
    Details of the list of all VMs that have the disk attached. maxShares should be set to a value greater than one for disks to allow attaching them to multiple VMs.
    timeCreated String
    The time when the disk was created.
    type String
    Resource type
    uniqueId String
    Unique Guid identifying the resource.
    burstingEnabledTime string
    Latest time when bursting was last enabled on a disk.
    diskSizeBytes number
    The size of the disk in bytes. This field is read only.
    diskState string
    The state of the disk.
    id string
    The provider-assigned unique ID for this managed resource.
    managedBy string
    A relative URI containing the ID of the VM that has the disk attached.
    managedByExtended string[]
    List of relative URIs containing the IDs of the VMs that have the disk attached. maxShares should be set to a value greater than one for disks to allow attaching them to multiple VMs.
    name string
    Resource name
    propertyUpdatesInProgress PropertyUpdatesInProgressResponse
    Properties of the disk for which update is pending.
    provisioningState string
    The disk provisioning state.
    shareInfo ShareInfoElementResponse[]
    Details of the list of all VMs that have the disk attached. maxShares should be set to a value greater than one for disks to allow attaching them to multiple VMs.
    timeCreated string
    The time when the disk was created.
    type string
    Resource type
    uniqueId string
    Unique Guid identifying the resource.
    bursting_enabled_time str
    Latest time when bursting was last enabled on a disk.
    disk_size_bytes float
    The size of the disk in bytes. This field is read only.
    disk_state str
    The state of the disk.
    id str
    The provider-assigned unique ID for this managed resource.
    managed_by str
    A relative URI containing the ID of the VM that has the disk attached.
    managed_by_extended Sequence[str]
    List of relative URIs containing the IDs of the VMs that have the disk attached. maxShares should be set to a value greater than one for disks to allow attaching them to multiple VMs.
    name str
    Resource name
    property_updates_in_progress PropertyUpdatesInProgressResponse
    Properties of the disk for which update is pending.
    provisioning_state str
    The disk provisioning state.
    share_info Sequence[ShareInfoElementResponse]
    Details of the list of all VMs that have the disk attached. maxShares should be set to a value greater than one for disks to allow attaching them to multiple VMs.
    time_created str
    The time when the disk was created.
    type str
    Resource type
    unique_id str
    Unique Guid identifying the resource.
    burstingEnabledTime String
    Latest time when bursting was last enabled on a disk.
    diskSizeBytes Number
    The size of the disk in bytes. This field is read only.
    diskState String
    The state of the disk.
    id String
    The provider-assigned unique ID for this managed resource.
    managedBy String
    A relative URI containing the ID of the VM that has the disk attached.
    managedByExtended List<String>
    List of relative URIs containing the IDs of the VMs that have the disk attached. maxShares should be set to a value greater than one for disks to allow attaching them to multiple VMs.
    name String
    Resource name
    propertyUpdatesInProgress Property Map
    Properties of the disk for which update is pending.
    provisioningState String
    The disk provisioning state.
    shareInfo List<Property Map>
    Details of the list of all VMs that have the disk attached. maxShares should be set to a value greater than one for disks to allow attaching them to multiple VMs.
    timeCreated String
    The time when the disk was created.
    type String
    Resource type
    uniqueId String
    Unique Guid identifying the resource.

    Supporting Types

    Architecture, ArchitectureArgs

    X64
    x64
    Arm64
    Arm64
    ArchitectureX64
    x64
    ArchitectureArm64
    Arm64
    X64
    x64
    Arm64
    Arm64
    X64
    x64
    Arm64
    Arm64
    X64
    x64
    ARM64
    Arm64
    "x64"
    x64
    "Arm64"
    Arm64

    CreationData, CreationDataArgs

    CreateOption string | Pulumi.AzureNative.Compute.DiskCreateOption
    This enumerates the possible sources of a disk's creation.
    GalleryImageReference Pulumi.AzureNative.Compute.Inputs.ImageDiskReference
    Required if creating from a Gallery Image. The id/sharedGalleryImageId/communityGalleryImageId of the ImageDiskReference will be the ARM id of the shared galley image version from which to create a disk.
    ImageReference Pulumi.AzureNative.Compute.Inputs.ImageDiskReference
    Disk source information for PIR or user images.
    LogicalSectorSize int
    Logical sector size in bytes for Ultra disks. Supported values are 512 ad 4096. 4096 is the default.
    PerformancePlus bool
    Set this flag to true to get a boost on the performance target of the disk deployed, see here on the respective performance target. This flag can only be set on disk creation time and cannot be disabled after enabled.
    SecurityDataUri string
    If createOption is ImportSecure, this is the URI of a blob to be imported into VM guest state.
    SourceResourceId string
    If createOption is Copy, this is the ARM id of the source snapshot or disk.
    SourceUri string
    If createOption is Import, this is the URI of a blob to be imported into a managed disk.
    StorageAccountId string
    Required if createOption is Import. The Azure Resource Manager identifier of the storage account containing the blob to import as a disk.
    UploadSizeBytes double
    If createOption is Upload, this is the size of the contents of the upload including the VHD footer. This value should be between 20972032 (20 MiB + 512 bytes for the VHD footer) and 35183298347520 bytes (32 TiB + 512 bytes for the VHD footer).
    CreateOption string | DiskCreateOption
    This enumerates the possible sources of a disk's creation.
    GalleryImageReference ImageDiskReference
    Required if creating from a Gallery Image. The id/sharedGalleryImageId/communityGalleryImageId of the ImageDiskReference will be the ARM id of the shared galley image version from which to create a disk.
    ImageReference ImageDiskReference
    Disk source information for PIR or user images.
    LogicalSectorSize int
    Logical sector size in bytes for Ultra disks. Supported values are 512 ad 4096. 4096 is the default.
    PerformancePlus bool
    Set this flag to true to get a boost on the performance target of the disk deployed, see here on the respective performance target. This flag can only be set on disk creation time and cannot be disabled after enabled.
    SecurityDataUri string
    If createOption is ImportSecure, this is the URI of a blob to be imported into VM guest state.
    SourceResourceId string
    If createOption is Copy, this is the ARM id of the source snapshot or disk.
    SourceUri string
    If createOption is Import, this is the URI of a blob to be imported into a managed disk.
    StorageAccountId string
    Required if createOption is Import. The Azure Resource Manager identifier of the storage account containing the blob to import as a disk.
    UploadSizeBytes float64
    If createOption is Upload, this is the size of the contents of the upload including the VHD footer. This value should be between 20972032 (20 MiB + 512 bytes for the VHD footer) and 35183298347520 bytes (32 TiB + 512 bytes for the VHD footer).
    createOption String | DiskCreateOption
    This enumerates the possible sources of a disk's creation.
    galleryImageReference ImageDiskReference
    Required if creating from a Gallery Image. The id/sharedGalleryImageId/communityGalleryImageId of the ImageDiskReference will be the ARM id of the shared galley image version from which to create a disk.
    imageReference ImageDiskReference
    Disk source information for PIR or user images.
    logicalSectorSize Integer
    Logical sector size in bytes for Ultra disks. Supported values are 512 ad 4096. 4096 is the default.
    performancePlus Boolean
    Set this flag to true to get a boost on the performance target of the disk deployed, see here on the respective performance target. This flag can only be set on disk creation time and cannot be disabled after enabled.
    securityDataUri String
    If createOption is ImportSecure, this is the URI of a blob to be imported into VM guest state.
    sourceResourceId String
    If createOption is Copy, this is the ARM id of the source snapshot or disk.
    sourceUri String
    If createOption is Import, this is the URI of a blob to be imported into a managed disk.
    storageAccountId String
    Required if createOption is Import. The Azure Resource Manager identifier of the storage account containing the blob to import as a disk.
    uploadSizeBytes Double
    If createOption is Upload, this is the size of the contents of the upload including the VHD footer. This value should be between 20972032 (20 MiB + 512 bytes for the VHD footer) and 35183298347520 bytes (32 TiB + 512 bytes for the VHD footer).
    createOption string | DiskCreateOption
    This enumerates the possible sources of a disk's creation.
    galleryImageReference ImageDiskReference
    Required if creating from a Gallery Image. The id/sharedGalleryImageId/communityGalleryImageId of the ImageDiskReference will be the ARM id of the shared galley image version from which to create a disk.
    imageReference ImageDiskReference
    Disk source information for PIR or user images.
    logicalSectorSize number
    Logical sector size in bytes for Ultra disks. Supported values are 512 ad 4096. 4096 is the default.
    performancePlus boolean
    Set this flag to true to get a boost on the performance target of the disk deployed, see here on the respective performance target. This flag can only be set on disk creation time and cannot be disabled after enabled.
    securityDataUri string
    If createOption is ImportSecure, this is the URI of a blob to be imported into VM guest state.
    sourceResourceId string
    If createOption is Copy, this is the ARM id of the source snapshot or disk.
    sourceUri string
    If createOption is Import, this is the URI of a blob to be imported into a managed disk.
    storageAccountId string
    Required if createOption is Import. The Azure Resource Manager identifier of the storage account containing the blob to import as a disk.
    uploadSizeBytes number
    If createOption is Upload, this is the size of the contents of the upload including the VHD footer. This value should be between 20972032 (20 MiB + 512 bytes for the VHD footer) and 35183298347520 bytes (32 TiB + 512 bytes for the VHD footer).
    create_option str | DiskCreateOption
    This enumerates the possible sources of a disk's creation.
    gallery_image_reference ImageDiskReference
    Required if creating from a Gallery Image. The id/sharedGalleryImageId/communityGalleryImageId of the ImageDiskReference will be the ARM id of the shared galley image version from which to create a disk.
    image_reference ImageDiskReference
    Disk source information for PIR or user images.
    logical_sector_size int
    Logical sector size in bytes for Ultra disks. Supported values are 512 ad 4096. 4096 is the default.
    performance_plus bool
    Set this flag to true to get a boost on the performance target of the disk deployed, see here on the respective performance target. This flag can only be set on disk creation time and cannot be disabled after enabled.
    security_data_uri str
    If createOption is ImportSecure, this is the URI of a blob to be imported into VM guest state.
    source_resource_id str
    If createOption is Copy, this is the ARM id of the source snapshot or disk.
    source_uri str
    If createOption is Import, this is the URI of a blob to be imported into a managed disk.
    storage_account_id str
    Required if createOption is Import. The Azure Resource Manager identifier of the storage account containing the blob to import as a disk.
    upload_size_bytes float
    If createOption is Upload, this is the size of the contents of the upload including the VHD footer. This value should be between 20972032 (20 MiB + 512 bytes for the VHD footer) and 35183298347520 bytes (32 TiB + 512 bytes for the VHD footer).
    createOption String | "Empty" | "Attach" | "FromImage" | "Import" | "Copy" | "Restore" | "Upload" | "CopyStart" | "ImportSecure" | "UploadPreparedSecure"
    This enumerates the possible sources of a disk's creation.
    galleryImageReference Property Map
    Required if creating from a Gallery Image. The id/sharedGalleryImageId/communityGalleryImageId of the ImageDiskReference will be the ARM id of the shared galley image version from which to create a disk.
    imageReference Property Map
    Disk source information for PIR or user images.
    logicalSectorSize Number
    Logical sector size in bytes for Ultra disks. Supported values are 512 ad 4096. 4096 is the default.
    performancePlus Boolean
    Set this flag to true to get a boost on the performance target of the disk deployed, see here on the respective performance target. This flag can only be set on disk creation time and cannot be disabled after enabled.
    securityDataUri String
    If createOption is ImportSecure, this is the URI of a blob to be imported into VM guest state.
    sourceResourceId String
    If createOption is Copy, this is the ARM id of the source snapshot or disk.
    sourceUri String
    If createOption is Import, this is the URI of a blob to be imported into a managed disk.
    storageAccountId String
    Required if createOption is Import. The Azure Resource Manager identifier of the storage account containing the blob to import as a disk.
    uploadSizeBytes Number
    If createOption is Upload, this is the size of the contents of the upload including the VHD footer. This value should be between 20972032 (20 MiB + 512 bytes for the VHD footer) and 35183298347520 bytes (32 TiB + 512 bytes for the VHD footer).

    CreationDataResponse, CreationDataResponseArgs

    CreateOption string
    This enumerates the possible sources of a disk's creation.
    SourceUniqueId string
    If this field is set, this is the unique id identifying the source of this resource.
    GalleryImageReference Pulumi.AzureNative.Compute.Inputs.ImageDiskReferenceResponse
    Required if creating from a Gallery Image. The id/sharedGalleryImageId/communityGalleryImageId of the ImageDiskReference will be the ARM id of the shared galley image version from which to create a disk.
    ImageReference Pulumi.AzureNative.Compute.Inputs.ImageDiskReferenceResponse
    Disk source information for PIR or user images.
    LogicalSectorSize int
    Logical sector size in bytes for Ultra disks. Supported values are 512 ad 4096. 4096 is the default.
    PerformancePlus bool
    Set this flag to true to get a boost on the performance target of the disk deployed, see here on the respective performance target. This flag can only be set on disk creation time and cannot be disabled after enabled.
    SecurityDataUri string
    If createOption is ImportSecure, this is the URI of a blob to be imported into VM guest state.
    SourceResourceId string
    If createOption is Copy, this is the ARM id of the source snapshot or disk.
    SourceUri string
    If createOption is Import, this is the URI of a blob to be imported into a managed disk.
    StorageAccountId string
    Required if createOption is Import. The Azure Resource Manager identifier of the storage account containing the blob to import as a disk.
    UploadSizeBytes double
    If createOption is Upload, this is the size of the contents of the upload including the VHD footer. This value should be between 20972032 (20 MiB + 512 bytes for the VHD footer) and 35183298347520 bytes (32 TiB + 512 bytes for the VHD footer).
    CreateOption string
    This enumerates the possible sources of a disk's creation.
    SourceUniqueId string
    If this field is set, this is the unique id identifying the source of this resource.
    GalleryImageReference ImageDiskReferenceResponse
    Required if creating from a Gallery Image. The id/sharedGalleryImageId/communityGalleryImageId of the ImageDiskReference will be the ARM id of the shared galley image version from which to create a disk.
    ImageReference ImageDiskReferenceResponse
    Disk source information for PIR or user images.
    LogicalSectorSize int
    Logical sector size in bytes for Ultra disks. Supported values are 512 ad 4096. 4096 is the default.
    PerformancePlus bool
    Set this flag to true to get a boost on the performance target of the disk deployed, see here on the respective performance target. This flag can only be set on disk creation time and cannot be disabled after enabled.
    SecurityDataUri string
    If createOption is ImportSecure, this is the URI of a blob to be imported into VM guest state.
    SourceResourceId string
    If createOption is Copy, this is the ARM id of the source snapshot or disk.
    SourceUri string
    If createOption is Import, this is the URI of a blob to be imported into a managed disk.
    StorageAccountId string
    Required if createOption is Import. The Azure Resource Manager identifier of the storage account containing the blob to import as a disk.
    UploadSizeBytes float64
    If createOption is Upload, this is the size of the contents of the upload including the VHD footer. This value should be between 20972032 (20 MiB + 512 bytes for the VHD footer) and 35183298347520 bytes (32 TiB + 512 bytes for the VHD footer).
    createOption String
    This enumerates the possible sources of a disk's creation.
    sourceUniqueId String
    If this field is set, this is the unique id identifying the source of this resource.
    galleryImageReference ImageDiskReferenceResponse
    Required if creating from a Gallery Image. The id/sharedGalleryImageId/communityGalleryImageId of the ImageDiskReference will be the ARM id of the shared galley image version from which to create a disk.
    imageReference ImageDiskReferenceResponse
    Disk source information for PIR or user images.
    logicalSectorSize Integer
    Logical sector size in bytes for Ultra disks. Supported values are 512 ad 4096. 4096 is the default.
    performancePlus Boolean
    Set this flag to true to get a boost on the performance target of the disk deployed, see here on the respective performance target. This flag can only be set on disk creation time and cannot be disabled after enabled.
    securityDataUri String
    If createOption is ImportSecure, this is the URI of a blob to be imported into VM guest state.
    sourceResourceId String
    If createOption is Copy, this is the ARM id of the source snapshot or disk.
    sourceUri String
    If createOption is Import, this is the URI of a blob to be imported into a managed disk.
    storageAccountId String
    Required if createOption is Import. The Azure Resource Manager identifier of the storage account containing the blob to import as a disk.
    uploadSizeBytes Double
    If createOption is Upload, this is the size of the contents of the upload including the VHD footer. This value should be between 20972032 (20 MiB + 512 bytes for the VHD footer) and 35183298347520 bytes (32 TiB + 512 bytes for the VHD footer).
    createOption string
    This enumerates the possible sources of a disk's creation.
    sourceUniqueId string
    If this field is set, this is the unique id identifying the source of this resource.
    galleryImageReference ImageDiskReferenceResponse
    Required if creating from a Gallery Image. The id/sharedGalleryImageId/communityGalleryImageId of the ImageDiskReference will be the ARM id of the shared galley image version from which to create a disk.
    imageReference ImageDiskReferenceResponse
    Disk source information for PIR or user images.
    logicalSectorSize number
    Logical sector size in bytes for Ultra disks. Supported values are 512 ad 4096. 4096 is the default.
    performancePlus boolean
    Set this flag to true to get a boost on the performance target of the disk deployed, see here on the respective performance target. This flag can only be set on disk creation time and cannot be disabled after enabled.
    securityDataUri string
    If createOption is ImportSecure, this is the URI of a blob to be imported into VM guest state.
    sourceResourceId string
    If createOption is Copy, this is the ARM id of the source snapshot or disk.
    sourceUri string
    If createOption is Import, this is the URI of a blob to be imported into a managed disk.
    storageAccountId string
    Required if createOption is Import. The Azure Resource Manager identifier of the storage account containing the blob to import as a disk.
    uploadSizeBytes number
    If createOption is Upload, this is the size of the contents of the upload including the VHD footer. This value should be between 20972032 (20 MiB + 512 bytes for the VHD footer) and 35183298347520 bytes (32 TiB + 512 bytes for the VHD footer).
    create_option str
    This enumerates the possible sources of a disk's creation.
    source_unique_id str
    If this field is set, this is the unique id identifying the source of this resource.
    gallery_image_reference ImageDiskReferenceResponse
    Required if creating from a Gallery Image. The id/sharedGalleryImageId/communityGalleryImageId of the ImageDiskReference will be the ARM id of the shared galley image version from which to create a disk.
    image_reference ImageDiskReferenceResponse
    Disk source information for PIR or user images.
    logical_sector_size int
    Logical sector size in bytes for Ultra disks. Supported values are 512 ad 4096. 4096 is the default.
    performance_plus bool
    Set this flag to true to get a boost on the performance target of the disk deployed, see here on the respective performance target. This flag can only be set on disk creation time and cannot be disabled after enabled.
    security_data_uri str
    If createOption is ImportSecure, this is the URI of a blob to be imported into VM guest state.
    source_resource_id str
    If createOption is Copy, this is the ARM id of the source snapshot or disk.
    source_uri str
    If createOption is Import, this is the URI of a blob to be imported into a managed disk.
    storage_account_id str
    Required if createOption is Import. The Azure Resource Manager identifier of the storage account containing the blob to import as a disk.
    upload_size_bytes float
    If createOption is Upload, this is the size of the contents of the upload including the VHD footer. This value should be between 20972032 (20 MiB + 512 bytes for the VHD footer) and 35183298347520 bytes (32 TiB + 512 bytes for the VHD footer).
    createOption String
    This enumerates the possible sources of a disk's creation.
    sourceUniqueId String
    If this field is set, this is the unique id identifying the source of this resource.
    galleryImageReference Property Map
    Required if creating from a Gallery Image. The id/sharedGalleryImageId/communityGalleryImageId of the ImageDiskReference will be the ARM id of the shared galley image version from which to create a disk.
    imageReference Property Map
    Disk source information for PIR or user images.
    logicalSectorSize Number
    Logical sector size in bytes for Ultra disks. Supported values are 512 ad 4096. 4096 is the default.
    performancePlus Boolean
    Set this flag to true to get a boost on the performance target of the disk deployed, see here on the respective performance target. This flag can only be set on disk creation time and cannot be disabled after enabled.
    securityDataUri String
    If createOption is ImportSecure, this is the URI of a blob to be imported into VM guest state.
    sourceResourceId String
    If createOption is Copy, this is the ARM id of the source snapshot or disk.
    sourceUri String
    If createOption is Import, this is the URI of a blob to be imported into a managed disk.
    storageAccountId String
    Required if createOption is Import. The Azure Resource Manager identifier of the storage account containing the blob to import as a disk.
    uploadSizeBytes Number
    If createOption is Upload, this is the size of the contents of the upload including the VHD footer. This value should be between 20972032 (20 MiB + 512 bytes for the VHD footer) and 35183298347520 bytes (32 TiB + 512 bytes for the VHD footer).

    DataAccessAuthMode, DataAccessAuthModeArgs

    AzureActiveDirectory
    AzureActiveDirectoryWhen export/upload URL is used, the system checks if the user has an identity in Azure Active Directory and has necessary permissions to export/upload the data. Please refer to aka.ms/DisksAzureADAuth.
    None
    NoneNo additional authentication would be performed when accessing export/upload URL.
    DataAccessAuthModeAzureActiveDirectory
    AzureActiveDirectoryWhen export/upload URL is used, the system checks if the user has an identity in Azure Active Directory and has necessary permissions to export/upload the data. Please refer to aka.ms/DisksAzureADAuth.
    DataAccessAuthModeNone
    NoneNo additional authentication would be performed when accessing export/upload URL.
    AzureActiveDirectory
    AzureActiveDirectoryWhen export/upload URL is used, the system checks if the user has an identity in Azure Active Directory and has necessary permissions to export/upload the data. Please refer to aka.ms/DisksAzureADAuth.
    None
    NoneNo additional authentication would be performed when accessing export/upload URL.
    AzureActiveDirectory
    AzureActiveDirectoryWhen export/upload URL is used, the system checks if the user has an identity in Azure Active Directory and has necessary permissions to export/upload the data. Please refer to aka.ms/DisksAzureADAuth.
    None
    NoneNo additional authentication would be performed when accessing export/upload URL.
    AZURE_ACTIVE_DIRECTORY
    AzureActiveDirectoryWhen export/upload URL is used, the system checks if the user has an identity in Azure Active Directory and has necessary permissions to export/upload the data. Please refer to aka.ms/DisksAzureADAuth.
    NONE
    NoneNo additional authentication would be performed when accessing export/upload URL.
    "AzureActiveDirectory"
    AzureActiveDirectoryWhen export/upload URL is used, the system checks if the user has an identity in Azure Active Directory and has necessary permissions to export/upload the data. Please refer to aka.ms/DisksAzureADAuth.
    "None"
    NoneNo additional authentication would be performed when accessing export/upload URL.

    DiskCreateOption, DiskCreateOptionArgs

    Empty
    EmptyCreate an empty data disk of a size given by diskSizeGB.
    Attach
    AttachDisk will be attached to a VM.
    FromImage
    FromImageCreate a new disk from a platform image specified by the given imageReference or galleryImageReference.
    Import
    ImportCreate a disk by importing from a blob specified by a sourceUri in a storage account specified by storageAccountId.
    Copy
    CopyCreate a new disk or snapshot by copying from a disk or snapshot specified by the given sourceResourceId.
    Restore
    RestoreCreate a new disk by copying from a backup recovery point.
    Upload
    UploadCreate a new disk by obtaining a write token and using it to directly upload the contents of the disk.
    CopyStart
    CopyStartCreate a new disk by using a deep copy process, where the resource creation is considered complete only after all data has been copied from the source.
    ImportSecure
    ImportSecureSimilar to Import create option. Create a new Trusted Launch VM or Confidential VM supported disk by importing additional blob for VM guest state specified by securityDataUri in storage account specified by storageAccountId
    UploadPreparedSecure
    UploadPreparedSecureSimilar to Upload create option. Create a new Trusted Launch VM or Confidential VM supported disk and upload using write token in both disk and VM guest state
    DiskCreateOptionEmpty
    EmptyCreate an empty data disk of a size given by diskSizeGB.
    DiskCreateOptionAttach
    AttachDisk will be attached to a VM.
    DiskCreateOptionFromImage
    FromImageCreate a new disk from a platform image specified by the given imageReference or galleryImageReference.
    DiskCreateOptionImport
    ImportCreate a disk by importing from a blob specified by a sourceUri in a storage account specified by storageAccountId.
    DiskCreateOptionCopy
    CopyCreate a new disk or snapshot by copying from a disk or snapshot specified by the given sourceResourceId.
    DiskCreateOptionRestore
    RestoreCreate a new disk by copying from a backup recovery point.
    DiskCreateOptionUpload
    UploadCreate a new disk by obtaining a write token and using it to directly upload the contents of the disk.
    DiskCreateOptionCopyStart
    CopyStartCreate a new disk by using a deep copy process, where the resource creation is considered complete only after all data has been copied from the source.
    DiskCreateOptionImportSecure
    ImportSecureSimilar to Import create option. Create a new Trusted Launch VM or Confidential VM supported disk by importing additional blob for VM guest state specified by securityDataUri in storage account specified by storageAccountId
    DiskCreateOptionUploadPreparedSecure
    UploadPreparedSecureSimilar to Upload create option. Create a new Trusted Launch VM or Confidential VM supported disk and upload using write token in both disk and VM guest state
    Empty
    EmptyCreate an empty data disk of a size given by diskSizeGB.
    Attach
    AttachDisk will be attached to a VM.
    FromImage
    FromImageCreate a new disk from a platform image specified by the given imageReference or galleryImageReference.
    Import
    ImportCreate a disk by importing from a blob specified by a sourceUri in a storage account specified by storageAccountId.
    Copy
    CopyCreate a new disk or snapshot by copying from a disk or snapshot specified by the given sourceResourceId.
    Restore
    RestoreCreate a new disk by copying from a backup recovery point.
    Upload
    UploadCreate a new disk by obtaining a write token and using it to directly upload the contents of the disk.
    CopyStart
    CopyStartCreate a new disk by using a deep copy process, where the resource creation is considered complete only after all data has been copied from the source.
    ImportSecure
    ImportSecureSimilar to Import create option. Create a new Trusted Launch VM or Confidential VM supported disk by importing additional blob for VM guest state specified by securityDataUri in storage account specified by storageAccountId
    UploadPreparedSecure
    UploadPreparedSecureSimilar to Upload create option. Create a new Trusted Launch VM or Confidential VM supported disk and upload using write token in both disk and VM guest state
    Empty
    EmptyCreate an empty data disk of a size given by diskSizeGB.
    Attach
    AttachDisk will be attached to a VM.
    FromImage
    FromImageCreate a new disk from a platform image specified by the given imageReference or galleryImageReference.
    Import
    ImportCreate a disk by importing from a blob specified by a sourceUri in a storage account specified by storageAccountId.
    Copy
    CopyCreate a new disk or snapshot by copying from a disk or snapshot specified by the given sourceResourceId.
    Restore
    RestoreCreate a new disk by copying from a backup recovery point.
    Upload
    UploadCreate a new disk by obtaining a write token and using it to directly upload the contents of the disk.
    CopyStart
    CopyStartCreate a new disk by using a deep copy process, where the resource creation is considered complete only after all data has been copied from the source.
    ImportSecure
    ImportSecureSimilar to Import create option. Create a new Trusted Launch VM or Confidential VM supported disk by importing additional blob for VM guest state specified by securityDataUri in storage account specified by storageAccountId
    UploadPreparedSecure
    UploadPreparedSecureSimilar to Upload create option. Create a new Trusted Launch VM or Confidential VM supported disk and upload using write token in both disk and VM guest state
    EMPTY
    EmptyCreate an empty data disk of a size given by diskSizeGB.
    ATTACH
    AttachDisk will be attached to a VM.
    FROM_IMAGE
    FromImageCreate a new disk from a platform image specified by the given imageReference or galleryImageReference.
    IMPORT_
    ImportCreate a disk by importing from a blob specified by a sourceUri in a storage account specified by storageAccountId.
    COPY
    CopyCreate a new disk or snapshot by copying from a disk or snapshot specified by the given sourceResourceId.
    RESTORE
    RestoreCreate a new disk by copying from a backup recovery point.
    UPLOAD
    UploadCreate a new disk by obtaining a write token and using it to directly upload the contents of the disk.
    COPY_START
    CopyStartCreate a new disk by using a deep copy process, where the resource creation is considered complete only after all data has been copied from the source.
    IMPORT_SECURE
    ImportSecureSimilar to Import create option. Create a new Trusted Launch VM or Confidential VM supported disk by importing additional blob for VM guest state specified by securityDataUri in storage account specified by storageAccountId
    UPLOAD_PREPARED_SECURE
    UploadPreparedSecureSimilar to Upload create option. Create a new Trusted Launch VM or Confidential VM supported disk and upload using write token in both disk and VM guest state
    "Empty"
    EmptyCreate an empty data disk of a size given by diskSizeGB.
    "Attach"
    AttachDisk will be attached to a VM.
    "FromImage"
    FromImageCreate a new disk from a platform image specified by the given imageReference or galleryImageReference.
    "Import"
    ImportCreate a disk by importing from a blob specified by a sourceUri in a storage account specified by storageAccountId.
    "Copy"
    CopyCreate a new disk or snapshot by copying from a disk or snapshot specified by the given sourceResourceId.
    "Restore"
    RestoreCreate a new disk by copying from a backup recovery point.
    "Upload"
    UploadCreate a new disk by obtaining a write token and using it to directly upload the contents of the disk.
    "CopyStart"
    CopyStartCreate a new disk by using a deep copy process, where the resource creation is considered complete only after all data has been copied from the source.
    "ImportSecure"
    ImportSecureSimilar to Import create option. Create a new Trusted Launch VM or Confidential VM supported disk by importing additional blob for VM guest state specified by securityDataUri in storage account specified by storageAccountId
    "UploadPreparedSecure"
    UploadPreparedSecureSimilar to Upload create option. Create a new Trusted Launch VM or Confidential VM supported disk and upload using write token in both disk and VM guest state

    DiskSecurityProfile, DiskSecurityProfileArgs

    SecureVMDiskEncryptionSetId string
    ResourceId of the disk encryption set associated to Confidential VM supported disk encrypted with customer managed key
    SecurityType string | Pulumi.AzureNative.Compute.DiskSecurityTypes
    Specifies the SecurityType of the VM. Applicable for OS disks only.
    SecureVMDiskEncryptionSetId string
    ResourceId of the disk encryption set associated to Confidential VM supported disk encrypted with customer managed key
    SecurityType string | DiskSecurityTypes
    Specifies the SecurityType of the VM. Applicable for OS disks only.
    secureVMDiskEncryptionSetId String
    ResourceId of the disk encryption set associated to Confidential VM supported disk encrypted with customer managed key
    securityType String | DiskSecurityTypes
    Specifies the SecurityType of the VM. Applicable for OS disks only.
    secureVMDiskEncryptionSetId string
    ResourceId of the disk encryption set associated to Confidential VM supported disk encrypted with customer managed key
    securityType string | DiskSecurityTypes
    Specifies the SecurityType of the VM. Applicable for OS disks only.
    secure_vm_disk_encryption_set_id str
    ResourceId of the disk encryption set associated to Confidential VM supported disk encrypted with customer managed key
    security_type str | DiskSecurityTypes
    Specifies the SecurityType of the VM. Applicable for OS disks only.
    secureVMDiskEncryptionSetId String
    ResourceId of the disk encryption set associated to Confidential VM supported disk encrypted with customer managed key
    securityType String | "TrustedLaunch" | "ConfidentialVM_VMGuestStateOnlyEncryptedWithPlatformKey" | "ConfidentialVM_DiskEncryptedWithPlatformKey" | "ConfidentialVM_DiskEncryptedWithCustomerKey"
    Specifies the SecurityType of the VM. Applicable for OS disks only.

    DiskSecurityProfileResponse, DiskSecurityProfileResponseArgs

    SecureVMDiskEncryptionSetId string
    ResourceId of the disk encryption set associated to Confidential VM supported disk encrypted with customer managed key
    SecurityType string
    Specifies the SecurityType of the VM. Applicable for OS disks only.
    SecureVMDiskEncryptionSetId string
    ResourceId of the disk encryption set associated to Confidential VM supported disk encrypted with customer managed key
    SecurityType string
    Specifies the SecurityType of the VM. Applicable for OS disks only.
    secureVMDiskEncryptionSetId String
    ResourceId of the disk encryption set associated to Confidential VM supported disk encrypted with customer managed key
    securityType String
    Specifies the SecurityType of the VM. Applicable for OS disks only.
    secureVMDiskEncryptionSetId string
    ResourceId of the disk encryption set associated to Confidential VM supported disk encrypted with customer managed key
    securityType string
    Specifies the SecurityType of the VM. Applicable for OS disks only.
    secure_vm_disk_encryption_set_id str
    ResourceId of the disk encryption set associated to Confidential VM supported disk encrypted with customer managed key
    security_type str
    Specifies the SecurityType of the VM. Applicable for OS disks only.
    secureVMDiskEncryptionSetId String
    ResourceId of the disk encryption set associated to Confidential VM supported disk encrypted with customer managed key
    securityType String
    Specifies the SecurityType of the VM. Applicable for OS disks only.

    DiskSecurityTypes, DiskSecurityTypesArgs

    TrustedLaunch
    TrustedLaunchTrusted Launch provides security features such as secure boot and virtual Trusted Platform Module (vTPM)
    ConfidentialVM_VMGuestStateOnlyEncryptedWithPlatformKey
    ConfidentialVM_VMGuestStateOnlyEncryptedWithPlatformKeyIndicates Confidential VM disk with only VM guest state encrypted
    ConfidentialVM_DiskEncryptedWithPlatformKey
    ConfidentialVM_DiskEncryptedWithPlatformKeyIndicates Confidential VM disk with both OS disk and VM guest state encrypted with a platform managed key
    ConfidentialVM_DiskEncryptedWithCustomerKey
    ConfidentialVM_DiskEncryptedWithCustomerKeyIndicates Confidential VM disk with both OS disk and VM guest state encrypted with a customer managed key
    DiskSecurityTypesTrustedLaunch
    TrustedLaunchTrusted Launch provides security features such as secure boot and virtual Trusted Platform Module (vTPM)
    DiskSecurityTypes_ConfidentialVM_VMGuestStateOnlyEncryptedWithPlatformKey
    ConfidentialVM_VMGuestStateOnlyEncryptedWithPlatformKeyIndicates Confidential VM disk with only VM guest state encrypted
    DiskSecurityTypes_ConfidentialVM_DiskEncryptedWithPlatformKey
    ConfidentialVM_DiskEncryptedWithPlatformKeyIndicates Confidential VM disk with both OS disk and VM guest state encrypted with a platform managed key
    DiskSecurityTypes_ConfidentialVM_DiskEncryptedWithCustomerKey
    ConfidentialVM_DiskEncryptedWithCustomerKeyIndicates Confidential VM disk with both OS disk and VM guest state encrypted with a customer managed key
    TrustedLaunch
    TrustedLaunchTrusted Launch provides security features such as secure boot and virtual Trusted Platform Module (vTPM)
    ConfidentialVM_VMGuestStateOnlyEncryptedWithPlatformKey
    ConfidentialVM_VMGuestStateOnlyEncryptedWithPlatformKeyIndicates Confidential VM disk with only VM guest state encrypted
    ConfidentialVM_DiskEncryptedWithPlatformKey
    ConfidentialVM_DiskEncryptedWithPlatformKeyIndicates Confidential VM disk with both OS disk and VM guest state encrypted with a platform managed key
    ConfidentialVM_DiskEncryptedWithCustomerKey
    ConfidentialVM_DiskEncryptedWithCustomerKeyIndicates Confidential VM disk with both OS disk and VM guest state encrypted with a customer managed key
    TrustedLaunch
    TrustedLaunchTrusted Launch provides security features such as secure boot and virtual Trusted Platform Module (vTPM)
    ConfidentialVM_VMGuestStateOnlyEncryptedWithPlatformKey
    ConfidentialVM_VMGuestStateOnlyEncryptedWithPlatformKeyIndicates Confidential VM disk with only VM guest state encrypted
    ConfidentialVM_DiskEncryptedWithPlatformKey
    ConfidentialVM_DiskEncryptedWithPlatformKeyIndicates Confidential VM disk with both OS disk and VM guest state encrypted with a platform managed key
    ConfidentialVM_DiskEncryptedWithCustomerKey
    ConfidentialVM_DiskEncryptedWithCustomerKeyIndicates Confidential VM disk with both OS disk and VM guest state encrypted with a customer managed key
    TRUSTED_LAUNCH
    TrustedLaunchTrusted Launch provides security features such as secure boot and virtual Trusted Platform Module (vTPM)
    CONFIDENTIAL_V_M_VM_GUEST_STATE_ONLY_ENCRYPTED_WITH_PLATFORM_KEY
    ConfidentialVM_VMGuestStateOnlyEncryptedWithPlatformKeyIndicates Confidential VM disk with only VM guest state encrypted
    CONFIDENTIAL_V_M_DISK_ENCRYPTED_WITH_PLATFORM_KEY
    ConfidentialVM_DiskEncryptedWithPlatformKeyIndicates Confidential VM disk with both OS disk and VM guest state encrypted with a platform managed key
    CONFIDENTIAL_V_M_DISK_ENCRYPTED_WITH_CUSTOMER_KEY
    ConfidentialVM_DiskEncryptedWithCustomerKeyIndicates Confidential VM disk with both OS disk and VM guest state encrypted with a customer managed key
    "TrustedLaunch"
    TrustedLaunchTrusted Launch provides security features such as secure boot and virtual Trusted Platform Module (vTPM)
    "ConfidentialVM_VMGuestStateOnlyEncryptedWithPlatformKey"
    ConfidentialVM_VMGuestStateOnlyEncryptedWithPlatformKeyIndicates Confidential VM disk with only VM guest state encrypted
    "ConfidentialVM_DiskEncryptedWithPlatformKey"
    ConfidentialVM_DiskEncryptedWithPlatformKeyIndicates Confidential VM disk with both OS disk and VM guest state encrypted with a platform managed key
    "ConfidentialVM_DiskEncryptedWithCustomerKey"
    ConfidentialVM_DiskEncryptedWithCustomerKeyIndicates Confidential VM disk with both OS disk and VM guest state encrypted with a customer managed key

    DiskSku, DiskSkuArgs

    Name string | DiskStorageAccountTypes
    The sku name.
    name String | DiskStorageAccountTypes
    The sku name.
    name string | DiskStorageAccountTypes
    The sku name.
    name str | DiskStorageAccountTypes
    The sku name.

    DiskSkuResponse, DiskSkuResponseArgs

    Tier string
    The sku tier.
    Name string
    The sku name.
    Tier string
    The sku tier.
    Name string
    The sku name.
    tier String
    The sku tier.
    name String
    The sku name.
    tier string
    The sku tier.
    name string
    The sku name.
    tier str
    The sku tier.
    name str
    The sku name.
    tier String
    The sku tier.
    name String
    The sku name.

    DiskStorageAccountTypes, DiskStorageAccountTypesArgs

    Standard_LRS
    Standard_LRSStandard HDD locally redundant storage. Best for backup, non-critical, and infrequent access.
    Premium_LRS
    Premium_LRSPremium SSD locally redundant storage. Best for production and performance sensitive workloads.
    StandardSSD_LRS
    StandardSSD_LRSStandard SSD locally redundant storage. Best for web servers, lightly used enterprise applications and dev/test.
    UltraSSD_LRS
    UltraSSD_LRSUltra SSD locally redundant storage. Best for IO-intensive workloads such as SAP HANA, top tier databases (for example, SQL, Oracle), and other transaction-heavy workloads.
    Premium_ZRS
    Premium_ZRSPremium SSD zone redundant storage. Best for the production workloads that need storage resiliency against zone failures.
    StandardSSD_ZRS
    StandardSSD_ZRSStandard SSD zone redundant storage. Best for web servers, lightly used enterprise applications and dev/test that need storage resiliency against zone failures.
    PremiumV2_LRS
    PremiumV2_LRSPremium SSD v2 locally redundant storage. Best for production and performance-sensitive workloads that consistently require low latency and high IOPS and throughput.
    DiskStorageAccountTypes_Standard_LRS
    Standard_LRSStandard HDD locally redundant storage. Best for backup, non-critical, and infrequent access.
    DiskStorageAccountTypes_Premium_LRS
    Premium_LRSPremium SSD locally redundant storage. Best for production and performance sensitive workloads.
    DiskStorageAccountTypes_StandardSSD_LRS
    StandardSSD_LRSStandard SSD locally redundant storage. Best for web servers, lightly used enterprise applications and dev/test.
    DiskStorageAccountTypes_UltraSSD_LRS
    UltraSSD_LRSUltra SSD locally redundant storage. Best for IO-intensive workloads such as SAP HANA, top tier databases (for example, SQL, Oracle), and other transaction-heavy workloads.
    DiskStorageAccountTypes_Premium_ZRS
    Premium_ZRSPremium SSD zone redundant storage. Best for the production workloads that need storage resiliency against zone failures.
    DiskStorageAccountTypes_StandardSSD_ZRS
    StandardSSD_ZRSStandard SSD zone redundant storage. Best for web servers, lightly used enterprise applications and dev/test that need storage resiliency against zone failures.
    DiskStorageAccountTypes_PremiumV2_LRS
    PremiumV2_LRSPremium SSD v2 locally redundant storage. Best for production and performance-sensitive workloads that consistently require low latency and high IOPS and throughput.
    Standard_LRS
    Standard_LRSStandard HDD locally redundant storage. Best for backup, non-critical, and infrequent access.
    Premium_LRS
    Premium_LRSPremium SSD locally redundant storage. Best for production and performance sensitive workloads.
    StandardSSD_LRS
    StandardSSD_LRSStandard SSD locally redundant storage. Best for web servers, lightly used enterprise applications and dev/test.
    UltraSSD_LRS
    UltraSSD_LRSUltra SSD locally redundant storage. Best for IO-intensive workloads such as SAP HANA, top tier databases (for example, SQL, Oracle), and other transaction-heavy workloads.
    Premium_ZRS
    Premium_ZRSPremium SSD zone redundant storage. Best for the production workloads that need storage resiliency against zone failures.
    StandardSSD_ZRS
    StandardSSD_ZRSStandard SSD zone redundant storage. Best for web servers, lightly used enterprise applications and dev/test that need storage resiliency against zone failures.
    PremiumV2_LRS
    PremiumV2_LRSPremium SSD v2 locally redundant storage. Best for production and performance-sensitive workloads that consistently require low latency and high IOPS and throughput.
    Standard_LRS
    Standard_LRSStandard HDD locally redundant storage. Best for backup, non-critical, and infrequent access.
    Premium_LRS
    Premium_LRSPremium SSD locally redundant storage. Best for production and performance sensitive workloads.
    StandardSSD_LRS
    StandardSSD_LRSStandard SSD locally redundant storage. Best for web servers, lightly used enterprise applications and dev/test.
    UltraSSD_LRS
    UltraSSD_LRSUltra SSD locally redundant storage. Best for IO-intensive workloads such as SAP HANA, top tier databases (for example, SQL, Oracle), and other transaction-heavy workloads.
    Premium_ZRS
    Premium_ZRSPremium SSD zone redundant storage. Best for the production workloads that need storage resiliency against zone failures.
    StandardSSD_ZRS
    StandardSSD_ZRSStandard SSD zone redundant storage. Best for web servers, lightly used enterprise applications and dev/test that need storage resiliency against zone failures.
    PremiumV2_LRS
    PremiumV2_LRSPremium SSD v2 locally redundant storage. Best for production and performance-sensitive workloads that consistently require low latency and high IOPS and throughput.
    STANDARD_LRS
    Standard_LRSStandard HDD locally redundant storage. Best for backup, non-critical, and infrequent access.
    PREMIUM_LRS
    Premium_LRSPremium SSD locally redundant storage. Best for production and performance sensitive workloads.
    STANDARD_SS_D_LRS
    StandardSSD_LRSStandard SSD locally redundant storage. Best for web servers, lightly used enterprise applications and dev/test.
    ULTRA_SS_D_LRS
    UltraSSD_LRSUltra SSD locally redundant storage. Best for IO-intensive workloads such as SAP HANA, top tier databases (for example, SQL, Oracle), and other transaction-heavy workloads.
    PREMIUM_ZRS
    Premium_ZRSPremium SSD zone redundant storage. Best for the production workloads that need storage resiliency against zone failures.
    STANDARD_SS_D_ZRS
    StandardSSD_ZRSStandard SSD zone redundant storage. Best for web servers, lightly used enterprise applications and dev/test that need storage resiliency against zone failures.
    PREMIUM_V2_LRS
    PremiumV2_LRSPremium SSD v2 locally redundant storage. Best for production and performance-sensitive workloads that consistently require low latency and high IOPS and throughput.
    "Standard_LRS"
    Standard_LRSStandard HDD locally redundant storage. Best for backup, non-critical, and infrequent access.
    "Premium_LRS"
    Premium_LRSPremium SSD locally redundant storage. Best for production and performance sensitive workloads.
    "StandardSSD_LRS"
    StandardSSD_LRSStandard SSD locally redundant storage. Best for web servers, lightly used enterprise applications and dev/test.
    "UltraSSD_LRS"
    UltraSSD_LRSUltra SSD locally redundant storage. Best for IO-intensive workloads such as SAP HANA, top tier databases (for example, SQL, Oracle), and other transaction-heavy workloads.
    "Premium_ZRS"
    Premium_ZRSPremium SSD zone redundant storage. Best for the production workloads that need storage resiliency against zone failures.
    "StandardSSD_ZRS"
    StandardSSD_ZRSStandard SSD zone redundant storage. Best for web servers, lightly used enterprise applications and dev/test that need storage resiliency against zone failures.
    "PremiumV2_LRS"
    PremiumV2_LRSPremium SSD v2 locally redundant storage. Best for production and performance-sensitive workloads that consistently require low latency and high IOPS and throughput.

    Encryption, EncryptionArgs

    DiskEncryptionSetId string
    ResourceId of the disk encryption set to use for enabling encryption at rest.
    Type string | Pulumi.AzureNative.Compute.EncryptionType
    The type of key used to encrypt the data of the disk.
    DiskEncryptionSetId string
    ResourceId of the disk encryption set to use for enabling encryption at rest.
    Type string | EncryptionType
    The type of key used to encrypt the data of the disk.
    diskEncryptionSetId String
    ResourceId of the disk encryption set to use for enabling encryption at rest.
    type String | EncryptionType
    The type of key used to encrypt the data of the disk.
    diskEncryptionSetId string
    ResourceId of the disk encryption set to use for enabling encryption at rest.
    type string | EncryptionType
    The type of key used to encrypt the data of the disk.
    disk_encryption_set_id str
    ResourceId of the disk encryption set to use for enabling encryption at rest.
    type str | EncryptionType
    The type of key used to encrypt the data of the disk.
    diskEncryptionSetId String
    ResourceId of the disk encryption set to use for enabling encryption at rest.
    type String | "EncryptionAtRestWithPlatformKey" | "EncryptionAtRestWithCustomerKey" | "EncryptionAtRestWithPlatformAndCustomerKeys"
    The type of key used to encrypt the data of the disk.

    EncryptionResponse, EncryptionResponseArgs

    DiskEncryptionSetId string
    ResourceId of the disk encryption set to use for enabling encryption at rest.
    Type string
    The type of key used to encrypt the data of the disk.
    DiskEncryptionSetId string
    ResourceId of the disk encryption set to use for enabling encryption at rest.
    Type string
    The type of key used to encrypt the data of the disk.
    diskEncryptionSetId String
    ResourceId of the disk encryption set to use for enabling encryption at rest.
    type String
    The type of key used to encrypt the data of the disk.
    diskEncryptionSetId string
    ResourceId of the disk encryption set to use for enabling encryption at rest.
    type string
    The type of key used to encrypt the data of the disk.
    disk_encryption_set_id str
    ResourceId of the disk encryption set to use for enabling encryption at rest.
    type str
    The type of key used to encrypt the data of the disk.
    diskEncryptionSetId String
    ResourceId of the disk encryption set to use for enabling encryption at rest.
    type String
    The type of key used to encrypt the data of the disk.

    EncryptionSettingsCollection, EncryptionSettingsCollectionArgs

    Enabled bool
    Set this flag to true and provide DiskEncryptionKey and optional KeyEncryptionKey to enable encryption. Set this flag to false and remove DiskEncryptionKey and KeyEncryptionKey to disable encryption. If EncryptionSettings is null in the request object, the existing settings remain unchanged.
    EncryptionSettings List<Pulumi.AzureNative.Compute.Inputs.EncryptionSettingsElement>
    A collection of encryption settings, one for each disk volume.
    EncryptionSettingsVersion string
    Describes what type of encryption is used for the disks. Once this field is set, it cannot be overwritten. '1.0' corresponds to Azure Disk Encryption with AAD app.'1.1' corresponds to Azure Disk Encryption.
    Enabled bool
    Set this flag to true and provide DiskEncryptionKey and optional KeyEncryptionKey to enable encryption. Set this flag to false and remove DiskEncryptionKey and KeyEncryptionKey to disable encryption. If EncryptionSettings is null in the request object, the existing settings remain unchanged.
    EncryptionSettings []EncryptionSettingsElement
    A collection of encryption settings, one for each disk volume.
    EncryptionSettingsVersion string
    Describes what type of encryption is used for the disks. Once this field is set, it cannot be overwritten. '1.0' corresponds to Azure Disk Encryption with AAD app.'1.1' corresponds to Azure Disk Encryption.
    enabled Boolean
    Set this flag to true and provide DiskEncryptionKey and optional KeyEncryptionKey to enable encryption. Set this flag to false and remove DiskEncryptionKey and KeyEncryptionKey to disable encryption. If EncryptionSettings is null in the request object, the existing settings remain unchanged.
    encryptionSettings List<EncryptionSettingsElement>
    A collection of encryption settings, one for each disk volume.
    encryptionSettingsVersion String
    Describes what type of encryption is used for the disks. Once this field is set, it cannot be overwritten. '1.0' corresponds to Azure Disk Encryption with AAD app.'1.1' corresponds to Azure Disk Encryption.
    enabled boolean
    Set this flag to true and provide DiskEncryptionKey and optional KeyEncryptionKey to enable encryption. Set this flag to false and remove DiskEncryptionKey and KeyEncryptionKey to disable encryption. If EncryptionSettings is null in the request object, the existing settings remain unchanged.
    encryptionSettings EncryptionSettingsElement[]
    A collection of encryption settings, one for each disk volume.
    encryptionSettingsVersion string
    Describes what type of encryption is used for the disks. Once this field is set, it cannot be overwritten. '1.0' corresponds to Azure Disk Encryption with AAD app.'1.1' corresponds to Azure Disk Encryption.
    enabled bool
    Set this flag to true and provide DiskEncryptionKey and optional KeyEncryptionKey to enable encryption. Set this flag to false and remove DiskEncryptionKey and KeyEncryptionKey to disable encryption. If EncryptionSettings is null in the request object, the existing settings remain unchanged.
    encryption_settings Sequence[EncryptionSettingsElement]
    A collection of encryption settings, one for each disk volume.
    encryption_settings_version str
    Describes what type of encryption is used for the disks. Once this field is set, it cannot be overwritten. '1.0' corresponds to Azure Disk Encryption with AAD app.'1.1' corresponds to Azure Disk Encryption.
    enabled Boolean
    Set this flag to true and provide DiskEncryptionKey and optional KeyEncryptionKey to enable encryption. Set this flag to false and remove DiskEncryptionKey and KeyEncryptionKey to disable encryption. If EncryptionSettings is null in the request object, the existing settings remain unchanged.
    encryptionSettings List<Property Map>
    A collection of encryption settings, one for each disk volume.
    encryptionSettingsVersion String
    Describes what type of encryption is used for the disks. Once this field is set, it cannot be overwritten. '1.0' corresponds to Azure Disk Encryption with AAD app.'1.1' corresponds to Azure Disk Encryption.

    EncryptionSettingsCollectionResponse, EncryptionSettingsCollectionResponseArgs

    Enabled bool
    Set this flag to true and provide DiskEncryptionKey and optional KeyEncryptionKey to enable encryption. Set this flag to false and remove DiskEncryptionKey and KeyEncryptionKey to disable encryption. If EncryptionSettings is null in the request object, the existing settings remain unchanged.
    EncryptionSettings List<Pulumi.AzureNative.Compute.Inputs.EncryptionSettingsElementResponse>
    A collection of encryption settings, one for each disk volume.
    EncryptionSettingsVersion string
    Describes what type of encryption is used for the disks. Once this field is set, it cannot be overwritten. '1.0' corresponds to Azure Disk Encryption with AAD app.'1.1' corresponds to Azure Disk Encryption.
    Enabled bool
    Set this flag to true and provide DiskEncryptionKey and optional KeyEncryptionKey to enable encryption. Set this flag to false and remove DiskEncryptionKey and KeyEncryptionKey to disable encryption. If EncryptionSettings is null in the request object, the existing settings remain unchanged.
    EncryptionSettings []EncryptionSettingsElementResponse
    A collection of encryption settings, one for each disk volume.
    EncryptionSettingsVersion string
    Describes what type of encryption is used for the disks. Once this field is set, it cannot be overwritten. '1.0' corresponds to Azure Disk Encryption with AAD app.'1.1' corresponds to Azure Disk Encryption.
    enabled Boolean
    Set this flag to true and provide DiskEncryptionKey and optional KeyEncryptionKey to enable encryption. Set this flag to false and remove DiskEncryptionKey and KeyEncryptionKey to disable encryption. If EncryptionSettings is null in the request object, the existing settings remain unchanged.
    encryptionSettings List<EncryptionSettingsElementResponse>
    A collection of encryption settings, one for each disk volume.
    encryptionSettingsVersion String
    Describes what type of encryption is used for the disks. Once this field is set, it cannot be overwritten. '1.0' corresponds to Azure Disk Encryption with AAD app.'1.1' corresponds to Azure Disk Encryption.
    enabled boolean
    Set this flag to true and provide DiskEncryptionKey and optional KeyEncryptionKey to enable encryption. Set this flag to false and remove DiskEncryptionKey and KeyEncryptionKey to disable encryption. If EncryptionSettings is null in the request object, the existing settings remain unchanged.
    encryptionSettings EncryptionSettingsElementResponse[]
    A collection of encryption settings, one for each disk volume.
    encryptionSettingsVersion string
    Describes what type of encryption is used for the disks. Once this field is set, it cannot be overwritten. '1.0' corresponds to Azure Disk Encryption with AAD app.'1.1' corresponds to Azure Disk Encryption.
    enabled bool
    Set this flag to true and provide DiskEncryptionKey and optional KeyEncryptionKey to enable encryption. Set this flag to false and remove DiskEncryptionKey and KeyEncryptionKey to disable encryption. If EncryptionSettings is null in the request object, the existing settings remain unchanged.
    encryption_settings Sequence[EncryptionSettingsElementResponse]
    A collection of encryption settings, one for each disk volume.
    encryption_settings_version str
    Describes what type of encryption is used for the disks. Once this field is set, it cannot be overwritten. '1.0' corresponds to Azure Disk Encryption with AAD app.'1.1' corresponds to Azure Disk Encryption.
    enabled Boolean
    Set this flag to true and provide DiskEncryptionKey and optional KeyEncryptionKey to enable encryption. Set this flag to false and remove DiskEncryptionKey and KeyEncryptionKey to disable encryption. If EncryptionSettings is null in the request object, the existing settings remain unchanged.
    encryptionSettings List<Property Map>
    A collection of encryption settings, one for each disk volume.
    encryptionSettingsVersion String
    Describes what type of encryption is used for the disks. Once this field is set, it cannot be overwritten. '1.0' corresponds to Azure Disk Encryption with AAD app.'1.1' corresponds to Azure Disk Encryption.

    EncryptionSettingsElement, EncryptionSettingsElementArgs

    DiskEncryptionKey Pulumi.AzureNative.Compute.Inputs.KeyVaultAndSecretReference
    Key Vault Secret Url and vault id of the disk encryption key
    KeyEncryptionKey Pulumi.AzureNative.Compute.Inputs.KeyVaultAndKeyReference
    Key Vault Key Url and vault id of the key encryption key. KeyEncryptionKey is optional and when provided is used to unwrap the disk encryption key.
    DiskEncryptionKey KeyVaultAndSecretReference
    Key Vault Secret Url and vault id of the disk encryption key
    KeyEncryptionKey KeyVaultAndKeyReference
    Key Vault Key Url and vault id of the key encryption key. KeyEncryptionKey is optional and when provided is used to unwrap the disk encryption key.
    diskEncryptionKey KeyVaultAndSecretReference
    Key Vault Secret Url and vault id of the disk encryption key
    keyEncryptionKey KeyVaultAndKeyReference
    Key Vault Key Url and vault id of the key encryption key. KeyEncryptionKey is optional and when provided is used to unwrap the disk encryption key.
    diskEncryptionKey KeyVaultAndSecretReference
    Key Vault Secret Url and vault id of the disk encryption key
    keyEncryptionKey KeyVaultAndKeyReference
    Key Vault Key Url and vault id of the key encryption key. KeyEncryptionKey is optional and when provided is used to unwrap the disk encryption key.
    disk_encryption_key KeyVaultAndSecretReference
    Key Vault Secret Url and vault id of the disk encryption key
    key_encryption_key KeyVaultAndKeyReference
    Key Vault Key Url and vault id of the key encryption key. KeyEncryptionKey is optional and when provided is used to unwrap the disk encryption key.
    diskEncryptionKey Property Map
    Key Vault Secret Url and vault id of the disk encryption key
    keyEncryptionKey Property Map
    Key Vault Key Url and vault id of the key encryption key. KeyEncryptionKey is optional and when provided is used to unwrap the disk encryption key.

    EncryptionSettingsElementResponse, EncryptionSettingsElementResponseArgs

    DiskEncryptionKey Pulumi.AzureNative.Compute.Inputs.KeyVaultAndSecretReferenceResponse
    Key Vault Secret Url and vault id of the disk encryption key
    KeyEncryptionKey Pulumi.AzureNative.Compute.Inputs.KeyVaultAndKeyReferenceResponse
    Key Vault Key Url and vault id of the key encryption key. KeyEncryptionKey is optional and when provided is used to unwrap the disk encryption key.
    DiskEncryptionKey KeyVaultAndSecretReferenceResponse
    Key Vault Secret Url and vault id of the disk encryption key
    KeyEncryptionKey KeyVaultAndKeyReferenceResponse
    Key Vault Key Url and vault id of the key encryption key. KeyEncryptionKey is optional and when provided is used to unwrap the disk encryption key.
    diskEncryptionKey KeyVaultAndSecretReferenceResponse
    Key Vault Secret Url and vault id of the disk encryption key
    keyEncryptionKey KeyVaultAndKeyReferenceResponse
    Key Vault Key Url and vault id of the key encryption key. KeyEncryptionKey is optional and when provided is used to unwrap the disk encryption key.
    diskEncryptionKey KeyVaultAndSecretReferenceResponse
    Key Vault Secret Url and vault id of the disk encryption key
    keyEncryptionKey KeyVaultAndKeyReferenceResponse
    Key Vault Key Url and vault id of the key encryption key. KeyEncryptionKey is optional and when provided is used to unwrap the disk encryption key.
    disk_encryption_key KeyVaultAndSecretReferenceResponse
    Key Vault Secret Url and vault id of the disk encryption key
    key_encryption_key KeyVaultAndKeyReferenceResponse
    Key Vault Key Url and vault id of the key encryption key. KeyEncryptionKey is optional and when provided is used to unwrap the disk encryption key.
    diskEncryptionKey Property Map
    Key Vault Secret Url and vault id of the disk encryption key
    keyEncryptionKey Property Map
    Key Vault Key Url and vault id of the key encryption key. KeyEncryptionKey is optional and when provided is used to unwrap the disk encryption key.

    EncryptionType, EncryptionTypeArgs

    EncryptionAtRestWithPlatformKey
    EncryptionAtRestWithPlatformKeyDisk is encrypted at rest with Platform managed key. It is the default encryption type. This is not a valid encryption type for disk encryption sets.
    EncryptionAtRestWithCustomerKey
    EncryptionAtRestWithCustomerKeyDisk is encrypted at rest with Customer managed key that can be changed and revoked by a customer.
    EncryptionAtRestWithPlatformAndCustomerKeys
    EncryptionAtRestWithPlatformAndCustomerKeysDisk is encrypted at rest with 2 layers of encryption. One of the keys is Customer managed and the other key is Platform managed.
    EncryptionTypeEncryptionAtRestWithPlatformKey
    EncryptionAtRestWithPlatformKeyDisk is encrypted at rest with Platform managed key. It is the default encryption type. This is not a valid encryption type for disk encryption sets.
    EncryptionTypeEncryptionAtRestWithCustomerKey
    EncryptionAtRestWithCustomerKeyDisk is encrypted at rest with Customer managed key that can be changed and revoked by a customer.
    EncryptionTypeEncryptionAtRestWithPlatformAndCustomerKeys
    EncryptionAtRestWithPlatformAndCustomerKeysDisk is encrypted at rest with 2 layers of encryption. One of the keys is Customer managed and the other key is Platform managed.
    EncryptionAtRestWithPlatformKey
    EncryptionAtRestWithPlatformKeyDisk is encrypted at rest with Platform managed key. It is the default encryption type. This is not a valid encryption type for disk encryption sets.
    EncryptionAtRestWithCustomerKey
    EncryptionAtRestWithCustomerKeyDisk is encrypted at rest with Customer managed key that can be changed and revoked by a customer.
    EncryptionAtRestWithPlatformAndCustomerKeys
    EncryptionAtRestWithPlatformAndCustomerKeysDisk is encrypted at rest with 2 layers of encryption. One of the keys is Customer managed and the other key is Platform managed.
    EncryptionAtRestWithPlatformKey
    EncryptionAtRestWithPlatformKeyDisk is encrypted at rest with Platform managed key. It is the default encryption type. This is not a valid encryption type for disk encryption sets.
    EncryptionAtRestWithCustomerKey
    EncryptionAtRestWithCustomerKeyDisk is encrypted at rest with Customer managed key that can be changed and revoked by a customer.
    EncryptionAtRestWithPlatformAndCustomerKeys
    EncryptionAtRestWithPlatformAndCustomerKeysDisk is encrypted at rest with 2 layers of encryption. One of the keys is Customer managed and the other key is Platform managed.
    ENCRYPTION_AT_REST_WITH_PLATFORM_KEY
    EncryptionAtRestWithPlatformKeyDisk is encrypted at rest with Platform managed key. It is the default encryption type. This is not a valid encryption type for disk encryption sets.
    ENCRYPTION_AT_REST_WITH_CUSTOMER_KEY
    EncryptionAtRestWithCustomerKeyDisk is encrypted at rest with Customer managed key that can be changed and revoked by a customer.
    ENCRYPTION_AT_REST_WITH_PLATFORM_AND_CUSTOMER_KEYS
    EncryptionAtRestWithPlatformAndCustomerKeysDisk is encrypted at rest with 2 layers of encryption. One of the keys is Customer managed and the other key is Platform managed.
    "EncryptionAtRestWithPlatformKey"
    EncryptionAtRestWithPlatformKeyDisk is encrypted at rest with Platform managed key. It is the default encryption type. This is not a valid encryption type for disk encryption sets.
    "EncryptionAtRestWithCustomerKey"
    EncryptionAtRestWithCustomerKeyDisk is encrypted at rest with Customer managed key that can be changed and revoked by a customer.
    "EncryptionAtRestWithPlatformAndCustomerKeys"
    EncryptionAtRestWithPlatformAndCustomerKeysDisk is encrypted at rest with 2 layers of encryption. One of the keys is Customer managed and the other key is Platform managed.

    ExtendedLocation, ExtendedLocationArgs

    Name string
    The name of the extended location.
    Type string | Pulumi.AzureNative.Compute.ExtendedLocationTypes
    The type of the extended location.
    Name string
    The name of the extended location.
    Type string | ExtendedLocationTypes
    The type of the extended location.
    name String
    The name of the extended location.
    type String | ExtendedLocationTypes
    The type of the extended location.
    name string
    The name of the extended location.
    type string | ExtendedLocationTypes
    The type of the extended location.
    name str
    The name of the extended location.
    type str | ExtendedLocationTypes
    The type of the extended location.
    name String
    The name of the extended location.
    type String | "EdgeZone"
    The type of the extended location.

    ExtendedLocationResponse, ExtendedLocationResponseArgs

    Name string
    The name of the extended location.
    Type string
    The type of the extended location.
    Name string
    The name of the extended location.
    Type string
    The type of the extended location.
    name String
    The name of the extended location.
    type String
    The type of the extended location.
    name string
    The name of the extended location.
    type string
    The type of the extended location.
    name str
    The name of the extended location.
    type str
    The type of the extended location.
    name String
    The name of the extended location.
    type String
    The type of the extended location.

    ExtendedLocationTypes, ExtendedLocationTypesArgs

    EdgeZone
    EdgeZone
    ExtendedLocationTypesEdgeZone
    EdgeZone
    EdgeZone
    EdgeZone
    EdgeZone
    EdgeZone
    EDGE_ZONE
    EdgeZone
    "EdgeZone"
    EdgeZone

    HyperVGeneration, HyperVGenerationArgs

    V1
    V1
    V2
    V2
    HyperVGenerationV1
    V1
    HyperVGenerationV2
    V2
    V1
    V1
    V2
    V2
    V1
    V1
    V2
    V2
    V1
    V1
    V2
    V2
    "V1"
    V1
    "V2"
    V2

    ImageDiskReference, ImageDiskReferenceArgs

    CommunityGalleryImageId string
    A relative uri containing a community Azure Compute Gallery image reference.
    Id string
    A relative uri containing either a Platform Image Repository, user image, or Azure Compute Gallery image reference.
    Lun int
    If the disk is created from an image's data disk, this is an index that indicates which of the data disks in the image to use. For OS disks, this field is null.
    SharedGalleryImageId string
    A relative uri containing a direct shared Azure Compute Gallery image reference.
    CommunityGalleryImageId string
    A relative uri containing a community Azure Compute Gallery image reference.
    Id string
    A relative uri containing either a Platform Image Repository, user image, or Azure Compute Gallery image reference.
    Lun int
    If the disk is created from an image's data disk, this is an index that indicates which of the data disks in the image to use. For OS disks, this field is null.
    SharedGalleryImageId string
    A relative uri containing a direct shared Azure Compute Gallery image reference.
    communityGalleryImageId String
    A relative uri containing a community Azure Compute Gallery image reference.
    id String
    A relative uri containing either a Platform Image Repository, user image, or Azure Compute Gallery image reference.
    lun Integer
    If the disk is created from an image's data disk, this is an index that indicates which of the data disks in the image to use. For OS disks, this field is null.
    sharedGalleryImageId String
    A relative uri containing a direct shared Azure Compute Gallery image reference.
    communityGalleryImageId string
    A relative uri containing a community Azure Compute Gallery image reference.
    id string
    A relative uri containing either a Platform Image Repository, user image, or Azure Compute Gallery image reference.
    lun number
    If the disk is created from an image's data disk, this is an index that indicates which of the data disks in the image to use. For OS disks, this field is null.
    sharedGalleryImageId string
    A relative uri containing a direct shared Azure Compute Gallery image reference.
    community_gallery_image_id str
    A relative uri containing a community Azure Compute Gallery image reference.
    id str
    A relative uri containing either a Platform Image Repository, user image, or Azure Compute Gallery image reference.
    lun int
    If the disk is created from an image's data disk, this is an index that indicates which of the data disks in the image to use. For OS disks, this field is null.
    shared_gallery_image_id str
    A relative uri containing a direct shared Azure Compute Gallery image reference.
    communityGalleryImageId String
    A relative uri containing a community Azure Compute Gallery image reference.
    id String
    A relative uri containing either a Platform Image Repository, user image, or Azure Compute Gallery image reference.
    lun Number
    If the disk is created from an image's data disk, this is an index that indicates which of the data disks in the image to use. For OS disks, this field is null.
    sharedGalleryImageId String
    A relative uri containing a direct shared Azure Compute Gallery image reference.

    ImageDiskReferenceResponse, ImageDiskReferenceResponseArgs

    CommunityGalleryImageId string
    A relative uri containing a community Azure Compute Gallery image reference.
    Id string
    A relative uri containing either a Platform Image Repository, user image, or Azure Compute Gallery image reference.
    Lun int
    If the disk is created from an image's data disk, this is an index that indicates which of the data disks in the image to use. For