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

com.pulumi.azurenative.compute.Disk Maven / Gradle / Ivy

There is a newer version: 2.62.0
Show newest version
// *** WARNING: this file was generated by pulumi-java-gen. ***
// *** Do not edit by hand unless you're certain you know what you are doing! ***

package com.pulumi.azurenative.compute;

import com.pulumi.azurenative.Utilities;
import com.pulumi.azurenative.compute.DiskArgs;
import com.pulumi.azurenative.compute.outputs.CreationDataResponse;
import com.pulumi.azurenative.compute.outputs.DiskSecurityProfileResponse;
import com.pulumi.azurenative.compute.outputs.DiskSkuResponse;
import com.pulumi.azurenative.compute.outputs.EncryptionResponse;
import com.pulumi.azurenative.compute.outputs.EncryptionSettingsCollectionResponse;
import com.pulumi.azurenative.compute.outputs.ExtendedLocationResponse;
import com.pulumi.azurenative.compute.outputs.PropertyUpdatesInProgressResponse;
import com.pulumi.azurenative.compute.outputs.PurchasePlanResponse;
import com.pulumi.azurenative.compute.outputs.ShareInfoElementResponse;
import com.pulumi.azurenative.compute.outputs.SupportedCapabilitiesResponse;
import com.pulumi.core.Alias;
import com.pulumi.core.Output;
import com.pulumi.core.annotations.Export;
import com.pulumi.core.annotations.ResourceType;
import com.pulumi.core.internal.Codegen;
import java.lang.Boolean;
import java.lang.Double;
import java.lang.Integer;
import java.lang.String;
import java.util.List;
import java.util.Map;
import java.util.Optional;
import javax.annotation.Nullable;

/**
 * Disk resource.
 * Azure REST API version: 2022-07-02. Prior API version in Azure Native 1.x: 2020-12-01
 * 
 * ## Example Usage
 * ### Create a confidential VM supported disk encrypted with customer managed key
 * 
 * ```java
 * 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 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(Map.ofEntries(
 *                 Map.entry("createOption", "FromImage"),
 *                 Map.entry("imageReference", Map.of("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(Map.ofEntries(
 *                 Map.entry("secureVMDiskEncryptionSetId", "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSets/{diskEncryptionSetName}"),
 *                 Map.entry("securityType", "ConfidentialVM_DiskEncryptedWithCustomerKey")
 *             ))
 *             .build());
 * 
 *     }
 * }
 * 
 * ```
 * ### Create a managed disk and associate with disk access resource.
 * 
 * ```java
 * 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 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(Map.of("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")
 *             .build());
 * 
 *     }
 * }
 * 
 * ```
 * ### Create a managed disk and associate with disk encryption set.
 * 
 * ```java
 * 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 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(Map.of("createOption", "Empty"))
 *             .diskName("myDisk")
 *             .diskSizeGB(200)
 *             .encryption(Map.of("diskEncryptionSetId", "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSets/{existing-diskEncryptionSet-name}"))
 *             .location("West US")
 *             .resourceGroupName("myResourceGroup")
 *             .build());
 * 
 *     }
 * }
 * 
 * ```
 * ### Create a managed disk by copying a snapshot.
 * 
 * ```java
 * 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 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(Map.ofEntries(
 *                 Map.entry("createOption", "Copy"),
 *                 Map.entry("sourceResourceId", "subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/snapshots/mySnapshot")
 *             ))
 *             .diskName("myDisk")
 *             .location("West US")
 *             .resourceGroupName("myResourceGroup")
 *             .build());
 * 
 *     }
 * }
 * 
 * ```
 * ### Create a managed disk by importing an unmanaged blob from a different subscription.
 * 
 * ```java
 * 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 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(Map.ofEntries(
 *                 Map.entry("createOption", "Import"),
 *                 Map.entry("sourceUri", "https://mystorageaccount.blob.core.windows.net/osimages/osimage.vhd"),
 *                 Map.entry("storageAccountId", "subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Storage/storageAccounts/myStorageAccount")
 *             ))
 *             .diskName("myDisk")
 *             .location("West US")
 *             .resourceGroupName("myResourceGroup")
 *             .build());
 * 
 *     }
 * }
 * 
 * ```
 * ### Create a managed disk by importing an unmanaged blob from the same subscription.
 * 
 * ```java
 * 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 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(Map.ofEntries(
 *                 Map.entry("createOption", "Import"),
 *                 Map.entry("sourceUri", "https://mystorageaccount.blob.core.windows.net/osimages/osimage.vhd")
 *             ))
 *             .diskName("myDisk")
 *             .location("West US")
 *             .resourceGroupName("myResourceGroup")
 *             .build());
 * 
 *     }
 * }
 * 
 * ```
 * ### Create a managed disk from ImportSecure create option
 * 
 * ```java
 * 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 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(Map.ofEntries(
 *                 Map.entry("createOption", "ImportSecure"),
 *                 Map.entry("securityDataUri", "https://mystorageaccount.blob.core.windows.net/osimages/vmgs.vhd"),
 *                 Map.entry("sourceUri", "https://mystorageaccount.blob.core.windows.net/osimages/osimage.vhd"),
 *                 Map.entry("storageAccountId", "subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Storage/storageAccounts/myStorageAccount")
 *             ))
 *             .diskName("myDisk")
 *             .location("West US")
 *             .osType("Windows")
 *             .resourceGroupName("myResourceGroup")
 *             .securityProfile(Map.of("securityType", "ConfidentialVM_VMGuestStateOnlyEncryptedWithPlatformKey"))
 *             .build());
 * 
 *     }
 * }
 * 
 * ```
 * ### Create a managed disk from UploadPreparedSecure create option
 * 
 * ```java
 * 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 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(Map.ofEntries(
 *                 Map.entry("createOption", "UploadPreparedSecure"),
 *                 Map.entry("uploadSizeBytes", 10737418752)
 *             ))
 *             .diskName("myDisk")
 *             .location("West US")
 *             .osType("Windows")
 *             .resourceGroupName("myResourceGroup")
 *             .securityProfile(Map.of("securityType", "TrustedLaunch"))
 *             .build());
 * 
 *     }
 * }
 * 
 * ```
 * ### Create a managed disk from a platform image.
 * 
 * ```java
 * 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 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(Map.ofEntries(
 *                 Map.entry("createOption", "FromImage"),
 *                 Map.entry("imageReference", Map.of("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")
 *             .build());
 * 
 *     }
 * }
 * 
 * ```
 * ### Create a managed disk from an Azure Compute Gallery community image.
 * 
 * ```java
 * 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 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(Map.ofEntries(
 *                 Map.entry("createOption", "FromImage"),
 *                 Map.entry("galleryImageReference", Map.of("communityGalleryImageId", "/CommunityGalleries/{communityGalleryPublicGalleryName}/Images/{imageName}/Versions/1.0.0"))
 *             ))
 *             .diskName("myDisk")
 *             .location("West US")
 *             .osType("Windows")
 *             .resourceGroupName("myResourceGroup")
 *             .build());
 * 
 *     }
 * }
 * 
 * ```
 * ### Create a managed disk from an Azure Compute Gallery direct shared image.
 * 
 * ```java
 * 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 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(Map.ofEntries(
 *                 Map.entry("createOption", "FromImage"),
 *                 Map.entry("galleryImageReference", Map.of("sharedGalleryImageId", "/SharedGalleries/{sharedGalleryUniqueName}/Images/{imageName}/Versions/1.0.0"))
 *             ))
 *             .diskName("myDisk")
 *             .location("West US")
 *             .osType("Windows")
 *             .resourceGroupName("myResourceGroup")
 *             .build());
 * 
 *     }
 * }
 * 
 * ```
 * ### Create a managed disk from an Azure Compute Gallery image.
 * 
 * ```java
 * 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 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(Map.ofEntries(
 *                 Map.entry("createOption", "FromImage"),
 *                 Map.entry("galleryImageReference", Map.of("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")
 *             .build());
 * 
 *     }
 * }
 * 
 * ```
 * ### Create a managed disk from an existing managed disk in the same or different subscription.
 * 
 * ```java
 * 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 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(Map.ofEntries(
 *                 Map.entry("createOption", "Copy"),
 *                 Map.entry("sourceResourceId", "subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/disks/myDisk1")
 *             ))
 *             .diskName("myDisk2")
 *             .location("West US")
 *             .resourceGroupName("myResourceGroup")
 *             .build());
 * 
 *     }
 * }
 * 
 * ```
 * ### Create a managed disk with dataAccessAuthMode
 * 
 * ```java
 * 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 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(Map.of("createOption", "Empty"))
 *             .dataAccessAuthMode("AzureActiveDirectory")
 *             .diskName("myDisk")
 *             .diskSizeGB(200)
 *             .location("West US")
 *             .resourceGroupName("myResourceGroup")
 *             .build());
 * 
 *     }
 * }
 * 
 * ```
 * ### Create a managed disk with optimizedForFrequentAttach.
 * 
 * ```java
 * 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 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(Map.of("createOption", "Empty"))
 *             .diskName("myDisk")
 *             .diskSizeGB(200)
 *             .location("West US")
 *             .optimizedForFrequentAttach(true)
 *             .resourceGroupName("myResourceGroup")
 *             .build());
 * 
 *     }
 * }
 * 
 * ```
 * ### Create a managed disk with performancePlus.
 * 
 * ```java
 * 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 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(Map.ofEntries(
 *                 Map.entry("createOption", "Upload"),
 *                 Map.entry("performancePlus", true)
 *             ))
 *             .diskName("myDisk")
 *             .location("West US")
 *             .resourceGroupName("myResourceGroup")
 *             .build());
 * 
 *     }
 * }
 * 
 * ```
 * ### Create a managed disk with premium v2 account type.
 * 
 * ```java
 * 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 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(Map.of("createOption", "Empty"))
 *             .diskIOPSReadWrite(125)
 *             .diskMBpsReadWrite(3000)
 *             .diskName("myPremiumV2Disk")
 *             .diskSizeGB(200)
 *             .location("West US")
 *             .resourceGroupName("myResourceGroup")
 *             .sku(Map.of("name", "PremiumV2_LRS"))
 *             .build());
 * 
 *     }
 * }
 * 
 * ```
 * ### Create a managed disk with security profile
 * 
 * ```java
 * 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 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(Map.ofEntries(
 *                 Map.entry("createOption", "FromImage"),
 *                 Map.entry("imageReference", Map.of("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(Map.of("securityType", "TrustedLaunch"))
 *             .build());
 * 
 *     }
 * }
 * 
 * ```
 * ### Create a managed disk with ssd zrs account type.
 * 
 * ```java
 * 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 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(Map.of("createOption", "Empty"))
 *             .diskName("myDisk")
 *             .diskSizeGB(200)
 *             .location("West US")
 *             .resourceGroupName("myResourceGroup")
 *             .sku(Map.of("name", "Premium_ZRS"))
 *             .build());
 * 
 *     }
 * }
 * 
 * ```
 * ### Create a managed disk with ultra account type with readOnly property set.
 * 
 * ```java
 * 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 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(Map.ofEntries(
 *                 Map.entry("createOption", "Empty"),
 *                 Map.entry("logicalSectorSize", 4096)
 *             ))
 *             .diskIOPSReadWrite(125)
 *             .diskMBpsReadWrite(3000)
 *             .diskName("myUltraReadOnlyDisk")
 *             .diskSizeGB(200)
 *             .encryption(Map.of("type", "EncryptionAtRestWithPlatformKey"))
 *             .location("West US")
 *             .resourceGroupName("myResourceGroup")
 *             .sku(Map.of("name", "UltraSSD_LRS"))
 *             .build());
 * 
 *     }
 * }
 * 
 * ```
 * ### Create a managed upload disk.
 * 
 * ```java
 * 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 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(Map.ofEntries(
 *                 Map.entry("createOption", "Upload"),
 *                 Map.entry("uploadSizeBytes", 10737418752)
 *             ))
 *             .diskName("myDisk")
 *             .location("West US")
 *             .resourceGroupName("myResourceGroup")
 *             .build());
 * 
 *     }
 * }
 * 
 * ```
 * ### Create an empty managed disk in extended location.
 * 
 * ```java
 * 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 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(Map.of("createOption", "Empty"))
 *             .diskName("myDisk")
 *             .diskSizeGB(200)
 *             .extendedLocation(Map.ofEntries(
 *                 Map.entry("name", "{edge-zone-id}"),
 *                 Map.entry("type", "EdgeZone")
 *             ))
 *             .location("West US")
 *             .resourceGroupName("myResourceGroup")
 *             .build());
 * 
 *     }
 * }
 * 
 * ```
 * ### Create an empty managed disk.
 * 
 * ```java
 * 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 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(Map.of("createOption", "Empty"))
 *             .diskName("myDisk")
 *             .diskSizeGB(200)
 *             .location("West US")
 *             .resourceGroupName("myResourceGroup")
 *             .build());
 * 
 *     }
 * }
 * 
 * ```
 * ### Create an ultra managed disk with logicalSectorSize 512E
 * 
 * ```java
 * 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 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(Map.ofEntries(
 *                 Map.entry("createOption", "Empty"),
 *                 Map.entry("logicalSectorSize", 512)
 *             ))
 *             .diskName("myDisk")
 *             .diskSizeGB(200)
 *             .location("West US")
 *             .resourceGroupName("myResourceGroup")
 *             .sku(Map.of("name", "UltraSSD_LRS"))
 *             .build());
 * 
 *     }
 * }
 * 
 * ```
 * 
 * ## Import
 * 
 * An existing resource can be imported using its type token, name, and identifier, e.g.
 * 
 * ```sh
 * $ pulumi import azure-native:compute:Disk myDisk /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/disks/{diskName} 
 * ```
 * 
 */
@ResourceType(type="azure-native:compute:Disk")
public class Disk extends com.pulumi.resources.CustomResource {
    /**
     * 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.
     * 
     */
    @Export(name="burstingEnabled", refs={Boolean.class}, tree="[0]")
    private Output burstingEnabled;

    /**
     * @return 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.
     * 
     */
    public Output> burstingEnabled() {
        return Codegen.optional(this.burstingEnabled);
    }
    /**
     * Latest time when bursting was last enabled on a disk.
     * 
     */
    @Export(name="burstingEnabledTime", refs={String.class}, tree="[0]")
    private Output burstingEnabledTime;

    /**
     * @return Latest time when bursting was last enabled on a disk.
     * 
     */
    public Output burstingEnabledTime() {
        return this.burstingEnabledTime;
    }
    /**
     * Percentage complete for the background copy when a resource is created via the CopyStart operation.
     * 
     */
    @Export(name="completionPercent", refs={Double.class}, tree="[0]")
    private Output completionPercent;

    /**
     * @return Percentage complete for the background copy when a resource is created via the CopyStart operation.
     * 
     */
    public Output> completionPercent() {
        return Codegen.optional(this.completionPercent);
    }
    /**
     * Disk source information. CreationData information cannot be changed after the disk has been created.
     * 
     */
    @Export(name="creationData", refs={CreationDataResponse.class}, tree="[0]")
    private Output creationData;

    /**
     * @return Disk source information. CreationData information cannot be changed after the disk has been created.
     * 
     */
    public Output creationData() {
        return this.creationData;
    }
    /**
     * Additional authentication requirements when exporting or uploading to a disk or snapshot.
     * 
     */
    @Export(name="dataAccessAuthMode", refs={String.class}, tree="[0]")
    private Output dataAccessAuthMode;

    /**
     * @return Additional authentication requirements when exporting or uploading to a disk or snapshot.
     * 
     */
    public Output> dataAccessAuthMode() {
        return Codegen.optional(this.dataAccessAuthMode);
    }
    /**
     * ARM id of the DiskAccess resource for using private endpoints on disks.
     * 
     */
    @Export(name="diskAccessId", refs={String.class}, tree="[0]")
    private Output diskAccessId;

    /**
     * @return ARM id of the DiskAccess resource for using private endpoints on disks.
     * 
     */
    public Output> diskAccessId() {
        return Codegen.optional(this.diskAccessId);
    }
    /**
     * 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.
     * 
     */
    @Export(name="diskIOPSReadOnly", refs={Double.class}, tree="[0]")
    private Output diskIOPSReadOnly;

    /**
     * @return 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.
     * 
     */
    public Output> diskIOPSReadOnly() {
        return Codegen.optional(this.diskIOPSReadOnly);
    }
    /**
     * The number of IOPS allowed for this disk; only settable for UltraSSD disks. One operation can transfer between 4k and 256k bytes.
     * 
     */
    @Export(name="diskIOPSReadWrite", refs={Double.class}, tree="[0]")
    private Output diskIOPSReadWrite;

    /**
     * @return The number of IOPS allowed for this disk; only settable for UltraSSD disks. One operation can transfer between 4k and 256k bytes.
     * 
     */
    public Output> diskIOPSReadWrite() {
        return Codegen.optional(this.diskIOPSReadWrite);
    }
    /**
     * 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.
     * 
     */
    @Export(name="diskMBpsReadOnly", refs={Double.class}, tree="[0]")
    private Output diskMBpsReadOnly;

    /**
     * @return 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.
     * 
     */
    public Output> diskMBpsReadOnly() {
        return Codegen.optional(this.diskMBpsReadOnly);
    }
    /**
     * 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.
     * 
     */
    @Export(name="diskMBpsReadWrite", refs={Double.class}, tree="[0]")
    private Output diskMBpsReadWrite;

    /**
     * @return 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.
     * 
     */
    public Output> diskMBpsReadWrite() {
        return Codegen.optional(this.diskMBpsReadWrite);
    }
    /**
     * The size of the disk in bytes. This field is read only.
     * 
     */
    @Export(name="diskSizeBytes", refs={Double.class}, tree="[0]")
    private Output diskSizeBytes;

    /**
     * @return The size of the disk in bytes. This field is read only.
     * 
     */
    public Output diskSizeBytes() {
        return this.diskSizeBytes;
    }
    /**
     * 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.
     * 
     */
    @Export(name="diskSizeGB", refs={Integer.class}, tree="[0]")
    private Output diskSizeGB;

    /**
     * @return 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.
     * 
     */
    public Output> diskSizeGB() {
        return Codegen.optional(this.diskSizeGB);
    }
    /**
     * The state of the disk.
     * 
     */
    @Export(name="diskState", refs={String.class}, tree="[0]")
    private Output diskState;

    /**
     * @return The state of the disk.
     * 
     */
    public Output diskState() {
        return this.diskState;
    }
    /**
     * Encryption property can be used to encrypt data at rest with customer managed keys or platform managed keys.
     * 
     */
    @Export(name="encryption", refs={EncryptionResponse.class}, tree="[0]")
    private Output encryption;

    /**
     * @return Encryption property can be used to encrypt data at rest with customer managed keys or platform managed keys.
     * 
     */
    public Output> encryption() {
        return Codegen.optional(this.encryption);
    }
    /**
     * Encryption settings collection used for Azure Disk Encryption, can contain multiple encryption settings per disk or snapshot.
     * 
     */
    @Export(name="encryptionSettingsCollection", refs={EncryptionSettingsCollectionResponse.class}, tree="[0]")
    private Output encryptionSettingsCollection;

    /**
     * @return Encryption settings collection used for Azure Disk Encryption, can contain multiple encryption settings per disk or snapshot.
     * 
     */
    public Output> encryptionSettingsCollection() {
        return Codegen.optional(this.encryptionSettingsCollection);
    }
    /**
     * The extended location where the disk will be created. Extended location cannot be changed.
     * 
     */
    @Export(name="extendedLocation", refs={ExtendedLocationResponse.class}, tree="[0]")
    private Output extendedLocation;

    /**
     * @return The extended location where the disk will be created. Extended location cannot be changed.
     * 
     */
    public Output> extendedLocation() {
        return Codegen.optional(this.extendedLocation);
    }
    /**
     * The hypervisor generation of the Virtual Machine. Applicable to OS disks only.
     * 
     */
    @Export(name="hyperVGeneration", refs={String.class}, tree="[0]")
    private Output hyperVGeneration;

    /**
     * @return The hypervisor generation of the Virtual Machine. Applicable to OS disks only.
     * 
     */
    public Output> hyperVGeneration() {
        return Codegen.optional(this.hyperVGeneration);
    }
    /**
     * Resource location
     * 
     */
    @Export(name="location", refs={String.class}, tree="[0]")
    private Output location;

    /**
     * @return Resource location
     * 
     */
    public Output location() {
        return this.location;
    }
    /**
     * A relative URI containing the ID of the VM that has the disk attached.
     * 
     */
    @Export(name="managedBy", refs={String.class}, tree="[0]")
    private Output managedBy;

    /**
     * @return A relative URI containing the ID of the VM that has the disk attached.
     * 
     */
    public Output managedBy() {
        return this.managedBy;
    }
    /**
     * 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.
     * 
     */
    @Export(name="managedByExtended", refs={List.class,String.class}, tree="[0,1]")
    private Output> managedByExtended;

    /**
     * @return 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.
     * 
     */
    public Output> managedByExtended() {
        return this.managedByExtended;
    }
    /**
     * 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.
     * 
     */
    @Export(name="maxShares", refs={Integer.class}, tree="[0]")
    private Output maxShares;

    /**
     * @return 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.
     * 
     */
    public Output> maxShares() {
        return Codegen.optional(this.maxShares);
    }
    /**
     * Resource name
     * 
     */
    @Export(name="name", refs={String.class}, tree="[0]")
    private Output name;

    /**
     * @return Resource name
     * 
     */
    public Output name() {
        return this.name;
    }
    /**
     * Policy for accessing the disk via network.
     * 
     */
    @Export(name="networkAccessPolicy", refs={String.class}, tree="[0]")
    private Output networkAccessPolicy;

    /**
     * @return Policy for accessing the disk via network.
     * 
     */
    public Output> networkAccessPolicy() {
        return Codegen.optional(this.networkAccessPolicy);
    }
    /**
     * 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.
     * 
     */
    @Export(name="optimizedForFrequentAttach", refs={Boolean.class}, tree="[0]")
    private Output optimizedForFrequentAttach;

    /**
     * @return 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.
     * 
     */
    public Output> optimizedForFrequentAttach() {
        return Codegen.optional(this.optimizedForFrequentAttach);
    }
    /**
     * The Operating System type.
     * 
     */
    @Export(name="osType", refs={String.class}, tree="[0]")
    private Output osType;

    /**
     * @return The Operating System type.
     * 
     */
    public Output> osType() {
        return Codegen.optional(this.osType);
    }
    /**
     * Properties of the disk for which update is pending.
     * 
     */
    @Export(name="propertyUpdatesInProgress", refs={PropertyUpdatesInProgressResponse.class}, tree="[0]")
    private Output propertyUpdatesInProgress;

    /**
     * @return Properties of the disk for which update is pending.
     * 
     */
    public Output propertyUpdatesInProgress() {
        return this.propertyUpdatesInProgress;
    }
    /**
     * The disk provisioning state.
     * 
     */
    @Export(name="provisioningState", refs={String.class}, tree="[0]")
    private Output provisioningState;

    /**
     * @return The disk provisioning state.
     * 
     */
    public Output provisioningState() {
        return this.provisioningState;
    }
    /**
     * Policy for controlling export on the disk.
     * 
     */
    @Export(name="publicNetworkAccess", refs={String.class}, tree="[0]")
    private Output publicNetworkAccess;

    /**
     * @return Policy for controlling export on the disk.
     * 
     */
    public Output> publicNetworkAccess() {
        return Codegen.optional(this.publicNetworkAccess);
    }
    /**
     * Purchase plan information for the the image from which the OS disk was created. E.g. - {name: 2019-Datacenter, publisher: MicrosoftWindowsServer, product: WindowsServer}
     * 
     */
    @Export(name="purchasePlan", refs={PurchasePlanResponse.class}, tree="[0]")
    private Output purchasePlan;

    /**
     * @return Purchase plan information for the the image from which the OS disk was created. E.g. - {name: 2019-Datacenter, publisher: MicrosoftWindowsServer, product: WindowsServer}
     * 
     */
    public Output> purchasePlan() {
        return Codegen.optional(this.purchasePlan);
    }
    /**
     * Contains the security related information for the resource.
     * 
     */
    @Export(name="securityProfile", refs={DiskSecurityProfileResponse.class}, tree="[0]")
    private Output securityProfile;

    /**
     * @return Contains the security related information for the resource.
     * 
     */
    public Output> securityProfile() {
        return Codegen.optional(this.securityProfile);
    }
    /**
     * 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.
     * 
     */
    @Export(name="shareInfo", refs={List.class,ShareInfoElementResponse.class}, tree="[0,1]")
    private Output> shareInfo;

    /**
     * @return 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.
     * 
     */
    public Output> shareInfo() {
        return this.shareInfo;
    }
    /**
     * The disks sku name. Can be Standard_LRS, Premium_LRS, StandardSSD_LRS, UltraSSD_LRS, Premium_ZRS, StandardSSD_ZRS, or PremiumV2_LRS.
     * 
     */
    @Export(name="sku", refs={DiskSkuResponse.class}, tree="[0]")
    private Output sku;

    /**
     * @return The disks sku name. Can be Standard_LRS, Premium_LRS, StandardSSD_LRS, UltraSSD_LRS, Premium_ZRS, StandardSSD_ZRS, or PremiumV2_LRS.
     * 
     */
    public Output> sku() {
        return Codegen.optional(this.sku);
    }
    /**
     * List of supported capabilities for the image from which the OS disk was created.
     * 
     */
    @Export(name="supportedCapabilities", refs={SupportedCapabilitiesResponse.class}, tree="[0]")
    private Output supportedCapabilities;

    /**
     * @return List of supported capabilities for the image from which the OS disk was created.
     * 
     */
    public Output> supportedCapabilities() {
        return Codegen.optional(this.supportedCapabilities);
    }
    /**
     * Indicates the OS on a disk supports hibernation.
     * 
     */
    @Export(name="supportsHibernation", refs={Boolean.class}, tree="[0]")
    private Output supportsHibernation;

    /**
     * @return Indicates the OS on a disk supports hibernation.
     * 
     */
    public Output> supportsHibernation() {
        return Codegen.optional(this.supportsHibernation);
    }
    /**
     * Resource tags
     * 
     */
    @Export(name="tags", refs={Map.class,String.class}, tree="[0,1,1]")
    private Output> tags;

    /**
     * @return Resource tags
     * 
     */
    public Output>> tags() {
        return Codegen.optional(this.tags);
    }
    /**
     * 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.
     * 
     */
    @Export(name="tier", refs={String.class}, tree="[0]")
    private Output tier;

    /**
     * @return 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.
     * 
     */
    public Output> tier() {
        return Codegen.optional(this.tier);
    }
    /**
     * The time when the disk was created.
     * 
     */
    @Export(name="timeCreated", refs={String.class}, tree="[0]")
    private Output timeCreated;

    /**
     * @return The time when the disk was created.
     * 
     */
    public Output timeCreated() {
        return this.timeCreated;
    }
    /**
     * Resource type
     * 
     */
    @Export(name="type", refs={String.class}, tree="[0]")
    private Output type;

    /**
     * @return Resource type
     * 
     */
    public Output type() {
        return this.type;
    }
    /**
     * Unique Guid identifying the resource.
     * 
     */
    @Export(name="uniqueId", refs={String.class}, tree="[0]")
    private Output uniqueId;

    /**
     * @return Unique Guid identifying the resource.
     * 
     */
    public Output uniqueId() {
        return this.uniqueId;
    }
    /**
     * The Logical zone list for Disk.
     * 
     */
    @Export(name="zones", refs={List.class,String.class}, tree="[0,1]")
    private Output> zones;

    /**
     * @return The Logical zone list for Disk.
     * 
     */
    public Output>> zones() {
        return Codegen.optional(this.zones);
    }

    /**
     *
     * @param name The _unique_ name of the resulting resource.
     */
    public Disk(String name) {
        this(name, DiskArgs.Empty);
    }
    /**
     *
     * @param name The _unique_ name of the resulting resource.
     * @param args The arguments to use to populate this resource's properties.
     */
    public Disk(String name, DiskArgs args) {
        this(name, args, null);
    }
    /**
     *
     * @param name The _unique_ name of the resulting resource.
     * @param args The arguments to use to populate this resource's properties.
     * @param options A bag of options that control this resource's behavior.
     */
    public Disk(String name, DiskArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) {
        super("azure-native:compute:Disk", name, args == null ? DiskArgs.Empty : args, makeResourceOptions(options, Codegen.empty()));
    }

    private Disk(String name, Output id, @Nullable com.pulumi.resources.CustomResourceOptions options) {
        super("azure-native:compute:Disk", name, null, makeResourceOptions(options, id));
    }

    private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) {
        var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder()
            .version(Utilities.getVersion())
            .aliases(List.of(
                Output.of(Alias.builder().type("azure-native:compute/v20160430preview:Disk").build()),
                Output.of(Alias.builder().type("azure-native:compute/v20170330:Disk").build()),
                Output.of(Alias.builder().type("azure-native:compute/v20180401:Disk").build()),
                Output.of(Alias.builder().type("azure-native:compute/v20180601:Disk").build()),
                Output.of(Alias.builder().type("azure-native:compute/v20180930:Disk").build()),
                Output.of(Alias.builder().type("azure-native:compute/v20190301:Disk").build()),
                Output.of(Alias.builder().type("azure-native:compute/v20190701:Disk").build()),
                Output.of(Alias.builder().type("azure-native:compute/v20191101:Disk").build()),
                Output.of(Alias.builder().type("azure-native:compute/v20200501:Disk").build()),
                Output.of(Alias.builder().type("azure-native:compute/v20200630:Disk").build()),
                Output.of(Alias.builder().type("azure-native:compute/v20200930:Disk").build()),
                Output.of(Alias.builder().type("azure-native:compute/v20201201:Disk").build()),
                Output.of(Alias.builder().type("azure-native:compute/v20210401:Disk").build()),
                Output.of(Alias.builder().type("azure-native:compute/v20210801:Disk").build()),
                Output.of(Alias.builder().type("azure-native:compute/v20211201:Disk").build()),
                Output.of(Alias.builder().type("azure-native:compute/v20220302:Disk").build()),
                Output.of(Alias.builder().type("azure-native:compute/v20220702:Disk").build()),
                Output.of(Alias.builder().type("azure-native:compute/v20230102:Disk").build())
            ))
            .build();
        return com.pulumi.resources.CustomResourceOptions.merge(defaultOptions, options, id);
    }

    /**
     * Get an existing Host resource's state with the given name, ID, and optional extra
     * properties used to qualify the lookup.
     *
     * @param name The _unique_ name of the resulting resource.
     * @param id The _unique_ provider ID of the resource to lookup.
     * @param options Optional settings to control the behavior of the CustomResource.
     */
    public static Disk get(String name, Output id, @Nullable com.pulumi.resources.CustomResourceOptions options) {
        return new Disk(name, id, options);
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy