Class Image


  • public class Image
    extends com.pulumi.resources.CustomResource
    The source user image virtual hard disk. The virtual hard disk will be copied before being attached to the virtual machine. If SourceImage is provided, the destination virtual hard drive must not exist. Azure REST API version: 2023-03-01. Prior API version in Azure Native 1.x: 2020-12-01. Other available API versions: 2023-07-01, 2023-09-01. ## Example Usage ### Create a virtual machine image from a blob with DiskEncryptionSet resource. ```java package generated_program; import com.pulumi.Context; import com.pulumi.Pulumi; import com.pulumi.core.Output; import com.pulumi.azurenative.compute.Image; import com.pulumi.azurenative.compute.ImageArgs; 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 image = new Image("image", ImageArgs.builder() .imageName("myImage") .location("West US") .resourceGroupName("myResourceGroup") .storageProfile(Map.of("osDisk", Map.ofEntries( Map.entry("blobUri", "https://mystorageaccount.blob.core.windows.net/osimages/osimage.vhd"), Map.entry("diskEncryptionSet", Map.of("id", "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSets/{existing-diskEncryptionSet-name}")), Map.entry("osState", "Generalized"), Map.entry("osType", "Linux") ))) .build()); } } ``` ### Create a virtual machine image from a blob. ```java package generated_program; import com.pulumi.Context; import com.pulumi.Pulumi; import com.pulumi.core.Output; import com.pulumi.azurenative.compute.Image; import com.pulumi.azurenative.compute.ImageArgs; 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 image = new Image("image", ImageArgs.builder() .imageName("myImage") .location("West US") .resourceGroupName("myResourceGroup") .storageProfile(Map.ofEntries( Map.entry("osDisk", Map.ofEntries( Map.entry("blobUri", "https://mystorageaccount.blob.core.windows.net/osimages/osimage.vhd"), Map.entry("osState", "Generalized"), Map.entry("osType", "Linux") )), Map.entry("zoneResilient", true) )) .build()); } } ``` ### Create a virtual machine image from a managed disk with DiskEncryptionSet resource. ```java package generated_program; import com.pulumi.Context; import com.pulumi.Pulumi; import com.pulumi.core.Output; import com.pulumi.azurenative.compute.Image; import com.pulumi.azurenative.compute.ImageArgs; 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 image = new Image("image", ImageArgs.builder() .imageName("myImage") .location("West US") .resourceGroupName("myResourceGroup") .storageProfile(Map.of("osDisk", Map.ofEntries( Map.entry("diskEncryptionSet", Map.of("id", "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSets/{existing-diskEncryptionSet-name}")), Map.entry("osState", "Generalized"), Map.entry("osType", "Linux"), Map.entry("snapshot", Map.of("id", "subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/snapshots/mySnapshot")) ))) .build()); } } ``` ### Create a virtual machine image from a managed disk. ```java package generated_program; import com.pulumi.Context; import com.pulumi.Pulumi; import com.pulumi.core.Output; import com.pulumi.azurenative.compute.Image; import com.pulumi.azurenative.compute.ImageArgs; 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 image = new Image("image", ImageArgs.builder() .imageName("myImage") .location("West US") .resourceGroupName("myResourceGroup") .storageProfile(Map.ofEntries( Map.entry("osDisk", Map.ofEntries( Map.entry("managedDisk", Map.of("id", "subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/disks/myManagedDisk")), Map.entry("osState", "Generalized"), Map.entry("osType", "Linux") )), Map.entry("zoneResilient", true) )) .build()); } } ``` ### Create a virtual machine image from a snapshot with DiskEncryptionSet resource. ```java package generated_program; import com.pulumi.Context; import com.pulumi.Pulumi; import com.pulumi.core.Output; import com.pulumi.azurenative.compute.Image; import com.pulumi.azurenative.compute.ImageArgs; 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 image = new Image("image", ImageArgs.builder() .imageName("myImage") .location("West US") .resourceGroupName("myResourceGroup") .storageProfile(Map.of("osDisk", Map.ofEntries( Map.entry("diskEncryptionSet", Map.of("id", "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSets/{existing-diskEncryptionSet-name}")), Map.entry("managedDisk", Map.of("id", "subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/disks/myManagedDisk")), Map.entry("osState", "Generalized"), Map.entry("osType", "Linux") ))) .build()); } } ``` ### Create a virtual machine image from a snapshot. ```java package generated_program; import com.pulumi.Context; import com.pulumi.Pulumi; import com.pulumi.core.Output; import com.pulumi.azurenative.compute.Image; import com.pulumi.azurenative.compute.ImageArgs; 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 image = new Image("image", ImageArgs.builder() .imageName("myImage") .location("West US") .resourceGroupName("myResourceGroup") .storageProfile(Map.ofEntries( Map.entry("osDisk", Map.ofEntries( Map.entry("osState", "Generalized"), Map.entry("osType", "Linux"), Map.entry("snapshot", Map.of("id", "subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/snapshots/mySnapshot")) )), Map.entry("zoneResilient", false) )) .build()); } } ``` ### Create a virtual machine image from an existing virtual machine. ```java package generated_program; import com.pulumi.Context; import com.pulumi.Pulumi; import com.pulumi.core.Output; import com.pulumi.azurenative.compute.Image; import com.pulumi.azurenative.compute.ImageArgs; 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 image = new Image("image", ImageArgs.builder() .imageName("myImage") .location("West US") .resourceGroupName("myResourceGroup") .sourceVirtualMachine(Map.of("id", "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM")) .build()); } } ``` ### Create a virtual machine image that includes a data disk from a blob. ```java package generated_program; import com.pulumi.Context; import com.pulumi.Pulumi; import com.pulumi.core.Output; import com.pulumi.azurenative.compute.Image; import com.pulumi.azurenative.compute.ImageArgs; 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 image = new Image("image", ImageArgs.builder() .imageName("myImage") .location("West US") .resourceGroupName("myResourceGroup") .storageProfile(Map.ofEntries( Map.entry("dataDisks", Map.ofEntries( Map.entry("blobUri", "https://mystorageaccount.blob.core.windows.net/dataimages/dataimage.vhd"), Map.entry("lun", 1) )), Map.entry("osDisk", Map.ofEntries( Map.entry("blobUri", "https://mystorageaccount.blob.core.windows.net/osimages/osimage.vhd"), Map.entry("osState", "Generalized"), Map.entry("osType", "Linux") )), Map.entry("zoneResilient", false) )) .build()); } } ``` ### Create a virtual machine image that includes a data disk from a managed disk. ```java package generated_program; import com.pulumi.Context; import com.pulumi.Pulumi; import com.pulumi.core.Output; import com.pulumi.azurenative.compute.Image; import com.pulumi.azurenative.compute.ImageArgs; 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 image = new Image("image", ImageArgs.builder() .imageName("myImage") .location("West US") .resourceGroupName("myResourceGroup") .storageProfile(Map.ofEntries( Map.entry("dataDisks", Map.ofEntries( Map.entry("lun", 1), Map.entry("managedDisk", Map.of("id", "subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/disks/myManagedDisk2")) )), Map.entry("osDisk", Map.ofEntries( Map.entry("managedDisk", Map.of("id", "subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/disks/myManagedDisk")), Map.entry("osState", "Generalized"), Map.entry("osType", "Linux") )), Map.entry("zoneResilient", false) )) .build()); } } ``` ### Create a virtual machine image that includes a data disk from a snapshot. ```java package generated_program; import com.pulumi.Context; import com.pulumi.Pulumi; import com.pulumi.core.Output; import com.pulumi.azurenative.compute.Image; import com.pulumi.azurenative.compute.ImageArgs; 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 image = new Image("image", ImageArgs.builder() .imageName("myImage") .location("West US") .resourceGroupName("myResourceGroup") .storageProfile(Map.ofEntries( Map.entry("dataDisks", Map.ofEntries( Map.entry("lun", 1), Map.entry("snapshot", Map.of("id", "subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/snapshots/mySnapshot2")) )), Map.entry("osDisk", Map.ofEntries( Map.entry("osState", "Generalized"), Map.entry("osType", "Linux"), Map.entry("snapshot", Map.of("id", "subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/snapshots/mySnapshot")) )), Map.entry("zoneResilient", true) )) .build()); } } ``` ## Import An existing resource can be imported using its type token, name, and identifier, e.g. ```sh $ pulumi import azure-native:compute:Image myImage /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/images/{imageName} ```
    • Nested Class Summary

      • Nested classes/interfaces inherited from class com.pulumi.resources.CustomResource

        com.pulumi.resources.CustomResource.CustomResourceInternal
      • Nested classes/interfaces inherited from class com.pulumi.resources.Resource

        com.pulumi.resources.Resource.LazyField<T extends java.lang.Object>, com.pulumi.resources.Resource.LazyFields, com.pulumi.resources.Resource.ResourceInternal
    • Field Summary

      • Fields inherited from class com.pulumi.resources.Resource

        childResources, remote
    • Constructor Summary

      Constructors 
      Constructor Description
      Image​(java.lang.String name)  
      Image​(java.lang.String name, ImageArgs args)  
      Image​(java.lang.String name, ImageArgs args, com.pulumi.resources.CustomResourceOptions options)  
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      com.pulumi.core.Output<java.util.Optional<ExtendedLocationResponse>> extendedLocation()  
      static Image get​(java.lang.String name, com.pulumi.core.Output<java.lang.String> id, com.pulumi.resources.CustomResourceOptions options)
      Get an existing Host resource's state with the given name, ID, and optional extra properties used to qualify the lookup.
      com.pulumi.core.Output<java.util.Optional<java.lang.String>> hyperVGeneration()  
      com.pulumi.core.Output<java.lang.String> location()  
      com.pulumi.core.Output<java.lang.String> name()  
      com.pulumi.core.Output<java.lang.String> provisioningState()  
      com.pulumi.core.Output<java.util.Optional<SubResourceResponse>> sourceVirtualMachine()  
      com.pulumi.core.Output<java.util.Optional<ImageStorageProfileResponse>> storageProfile()  
      com.pulumi.core.Output<java.util.Optional<java.util.Map<java.lang.String,​java.lang.String>>> tags()  
      com.pulumi.core.Output<java.lang.String> type()  
      • Methods inherited from class com.pulumi.resources.CustomResource

        getId, id, idFuture
      • Methods inherited from class com.pulumi.resources.Resource

        getChildResources, getResourceName, getResourceType, getUrn, pulumiChildResources, pulumiResourceName, pulumiResourceType, urn
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • Image

        public Image​(java.lang.String name)
        Parameters:
        name - The _unique_ name of the resulting resource.
      • Image

        public Image​(java.lang.String name,
                     ImageArgs args)
        Parameters:
        name - The _unique_ name of the resulting resource.
        args - The arguments to use to populate this resource's properties.
      • Image

        public Image​(java.lang.String name,
                     ImageArgs args,
                     @Nullable
                     com.pulumi.resources.CustomResourceOptions options)
        Parameters:
        name - The _unique_ name of the resulting resource.
        args - The arguments to use to populate this resource's properties.
        options - A bag of options that control this resource's behavior.
    • Method Detail

      • extendedLocation

        public com.pulumi.core.Output<java.util.Optional<ExtendedLocationResponse>> extendedLocation()
        Returns:
        The extended location of the Image.
      • hyperVGeneration

        public com.pulumi.core.Output<java.util.Optional<java.lang.String>> hyperVGeneration()
        Returns:
        Specifies the HyperVGenerationType of the VirtualMachine created from the image. From API Version 2019-03-01 if the image source is a blob, then we need the user to specify the value, if the source is managed resource like disk or snapshot, we may require the user to specify the property if we cannot deduce it from the source managed resource.
      • location

        public com.pulumi.core.Output<java.lang.String> location()
        Returns:
        Resource location
      • name

        public com.pulumi.core.Output<java.lang.String> name()
        Returns:
        Resource name
      • provisioningState

        public com.pulumi.core.Output<java.lang.String> provisioningState()
        Returns:
        The provisioning state.
      • sourceVirtualMachine

        public com.pulumi.core.Output<java.util.Optional<SubResourceResponse>> sourceVirtualMachine()
        Returns:
        The source virtual machine from which Image is created.
      • storageProfile

        public com.pulumi.core.Output<java.util.Optional<ImageStorageProfileResponse>> storageProfile()
        Returns:
        Specifies the storage settings for the virtual machine disks.
      • tags

        public com.pulumi.core.Output<java.util.Optional<java.util.Map<java.lang.String,​java.lang.String>>> tags()
        Returns:
        Resource tags
      • type

        public com.pulumi.core.Output<java.lang.String> type()
        Returns:
        Resource type
      • get

        public static Image get​(java.lang.String name,
                                com.pulumi.core.Output<java.lang.String> id,
                                @Nullable
                                com.pulumi.resources.CustomResourceOptions options)
        Get an existing Host resource's state with the given name, ID, and optional extra properties used to qualify the lookup.
        Parameters:
        name - The _unique_ name of the resulting resource.
        id - The _unique_ provider ID of the resource to lookup.
        options - Optional settings to control the behavior of the CustomResource.